Code

Merging in the changes from the 0.47 release branch. Also updating version numbers...
authorTed Gould <ted@gould.cx>
Sun, 29 Nov 2009 20:01:26 +0000 (14:01 -0600)
committerTed Gould <ted@gould.cx>
Sun, 29 Nov 2009 20:01:26 +0000 (14:01 -0600)
1  2 
CMakeLists.txt
NEWS
build-lx.xml
build.xml
configure.ac
packaging/win32/inkscape.nsi

diff --cc CMakeLists.txt
index 1b8053a02a69f32d3de9f522616b5c1fe82b7341,9e2cdab29266188813450716c404334b793eece8..c92c1e25ddfdba66dde7bb15f3d0623688cca2a7
@@@ -1,6 -1,6 +1,6 @@@
  PROJECT(inkscape)
  
- SET(INKSCAPE_VERSION 0.46+devel)
 -SET(INKSCAPE_VERSION 0.47)
++SET(INKSCAPE_VERSION 0.47+devel)
  SET(PROJECT_NAME inkscape)
  CMAKE_MINIMUM_REQUIRED(VERSION 2.4.6)
  SET(CMAKE_INCLUDE_CURRENT_DIR TRUE)
diff --cc NEWS
index e919c7486853c88c9c31a818cb97c62b8a712a14,59c7140564d69817798b0dfd648461855616aa24..043d2c10ffd78f8b7fb147e179676353d08987e8
--- 1/NEWS
--- 2/NEWS
+++ b/NEWS
@@@ -1,1 -1,1483 +1,1 @@@
- Inkscape 0.47 pre-release.  More here later.
 -Inkscape 0.47
 -
 -Inkscape 0.47 brings a host of important improvements all across the program:
 -
 -  • Timed autosave: no more lost work
 -
 -  • Spiro splines: an exciting new way to work with paths, fully supported in
 -    Pen, Pencil, and Node tools
 -
 -  • Auto smooth nodes: a new type of node that keeps the path as smooth as
 -    possible as you move it or its neighbors
 -
 -  • New modes in Tweak tool: pushing and jittering whole objects, scaling/
 -    rotating objects, deleting and duplicating using the "soft brush"
 -
 -  • Reworked, much more usable snapping system and a Snapping toolbar
 -
 -  • New path effects, including sketch, hatching, envelope deformation; effects
 -    can be stacked and assigned to groups
 -
 -  • A huge collection of preset filters in the new Filters menu
 -
 -  • New cairo-based PS and EPS export: improved quality, more features
 -    supported, fallback rasterization for filters and transparency
 -
 -  • Spell checker for text objects in a document
 -
 -  • Many new extensions: restacking, calendar, printing marks, cartesian and
 -    polar grids, interpolating attributes
 -
 -  • Optimized SVG code options, now with their own Preferences page
 -
 -  • Many other improvements, usability tweaks, memleak stops, and misc bugfixes
 -
 -Refactoring effort
 -
 -The focus of the 0.47 release was to clean up legacy code and push forward the
 -migration to clean object-oriented C++. The goal of this effort was to increase
 -reliability and maintainability of Inkscape. In the long run, it will mean
 -fewer bugs and more new features, because it will be easier to develop and find
 -bugs in Inkscape.
 -
 -Migration to lib2geom
 -
 -Many parts of the code have been changed to use the 2geom library for
 -geometrical calculations instead of the old libnr and livarot libraries.
 -
 -Preferences
 -
 -Instead of global functions directly manipulating an XML document, the
 -preferences API is now exposed through the Inkscape::Preferences singleton. It
 -abstracts away the way the preferences are stored in memory. In the future it
 -may allow for different user settings storage backends (like GConf or the
 -upcoming dconf on GNOME desktops or .plist files on OS X). Previously, Inkscape
 -directly manipulated an internal XML document.
 -
 -The Preferences directory has been moved on Linux (and Mac OS X) from ~
 -/.inkscape to ~/.config/inkscape to better conform to Linux desktop standards.
 -
 -Tools
 -
 -Node tool
 -
 -  • In previous versions of Inkscape, no visual feedback was given back to the
 -    user when hovering over paths when using the Node tool. In this update,
 -    hovering over a path with the Node tool now results in a highlighted path
 -    outline being displayed. Note: the duration and color of the new path
 -    outline feature can be configured in the Tools > Node section of the
 -    Inkscape Preferences dialog.
 -
 -  • The Node tool can now edit clipping paths and masks of objects on canvas,
 -    without releasing them. If the selected object has a clipping path and
 -    mask, the corresponding buttons on the controls bar of the tool will be
 -    enabled; pressing these buttons will display the editable paths or handles
 -    of the clippath or mask. A clipping path is stroked green, a mask is
 -    stroked blue (the same colors as those used for them in Outline mode).
 -
 -  • Snapping has been improved (more details in Snapping below).
 -
 -  • When dragging a node handle with Ctrl pressed, it now snaps not only to the
 -    15 degree increments starting from 0 and to the original handle direction,
 -    but also to the direction of the opposite handle (if it exists) or of the
 -    opposite line segment (if it is a straight line).
 -
 -  • The behavior of the buttons/shortcuts that make a node smooth or cusp has
 -    been improved:
 -      □ If a node is already a cusp (diamond shaped), pressing Shift+C again on
 -        it will retract both its handles. As this works for any number of
 -        selected nodes, you can always retract all handles in all nodes by
 -        selecting all nodes and pressing Shift+C twice.
 -      □ If a non-smooth node is next to a straight line segment, pressing
 -        Shift+S once makes it half-smooth: it now has one handle aligned with
 -        that line segment. Another press of Shift+S will expand the second
 -        handle as well turning it into a full smooth node. If a node is between
 -        two curve segments, Shift+S will expand both handles as before.
 -
 -  • Auto smooth nodes: this is a new node type, similar to the one Xara Xtreme
 -    has. An auto node is a smooth node which automatically adjusts (rotates and
 -    stretches) its handles when this node or its neighbors are moved. This
 -    adjustment (same as what you get when you convert node type to Smooth, but
 -    continuous) keeps the curve at this node as smooth as possible. It feels a
 -    bit like Spiro paths (see below); although not as smooth as a Spiro, auto
 -    nodes may often be preferable as they work without applying any path
 -    effect. Whenever you manually adjust the handles of an auto node or drag
 -    the adjacent curve, the node loses its auto state and becomes simply
 -    smooth; for this reason, it is recommended to edit smooth nodes with the
 -    node handles hidden via a toggle button on the Node tool controls bar. Auto
 -    nodes are represented by little circles, as opposed to smooth/symmetric
 -    nodes (squares) and cusp nodes (diamonds). To convert selected node(s) to
 -    auto, press Shift+A or use the corresponding node type button on the
 -    controls bar.
 -
 -Tweak tool
 -
 -Several new modes are added to the Tweak tool for transforming, duplicating,
 -and deleting selected objects using the same "soft brush" metaphor that the
 -path editing and coloring modes use. Using these new modes, it is easy to
 -"sculpt" scatterings of small objects, such as clone tilings, into complex and
 -naturalistic textures.
 -
 -  • Push mode moves those selected objects that are under the brush in the
 -    direction in which you move the brush. This is similar to the Push path
 -    mode, except that the Move mode affects entire objects and not parts of the
 -    paths under the brush.
 -
 -  • Attract/Repel Objects mode moves those selected objects that are under the
 -    brush towards the cursor (default) or away from cursor (with Shift
 -    pressed). This is similar to the Attract/repel path mode, except that the
 -    Move in/out mode affects entire objects and not parts of the paths under
 -    cursor.
 -
 -  • Jitter mode moves those selected objects that are under the brush in random
 -    directions and by random amounts, but the overall amount of movement
 -    depends on Force, pen pressure (if you're using a tablet pen), on the
 -    closeness of the object to the center of brush, and on how long you apply
 -    the brush.
 -
 -  • Scale mode scales those selected objects that are under the brush down (by
 -    default) or up (with Shift pressed). The speed of scaling depends on Force,
 -    pen pressure (if you're using a tablet pen), on the closeness of the object
 -    to the center of brush, and on how long you apply the brush.
 -
 -  • Rotate mode rotates those selected objects that are under the brush
 -    clockwise (by default) or counterclockwise (with Shift pressed). The speed
 -    of rotation depends on Force, pen pressure (if you're using a tablet pen),
 -    on the closeness of the object to the center of brush, and on how long you
 -    apply the brush.
 -
 -  • Duplicate/delete mode randomly duplicates those selected objects that are
 -    under the brush (by default) or deletes them (with Shift pressed). The
 -    chance of an object to be duplicated and deleted depends on Force, pen
 -    pressure (if you're using a tablet pen), on the closeness of the object to
 -    the center of brush, and on how long you apply the brush. Like with the
 -    regular Duplicate command, duplicating with Tweak tool places the copies
 -    right over the originals, and you may need to use the Jitter mode to ruffle
 -    them apart. The duplicates created by the tool are automatically added to
 -    selection if the originals objects were in selection (e.g. if you're
 -    tweaking a group of objects, they are duplicated within that group and are
 -    not by themselves selected).
 -
 -  • Blur mode blurs the selected objects under the brush more (by default) or
 -    less (with Shift pressed). The amount of blur added or removed depends on
 -    Force, pen pressure (if you're using a tablet pen), on the closeness of the
 -    object to the center of brush, and on how long you apply the brush.
 -
 -Also, the existing path editing modes of the tool have been rearranged: now
 -Shrink and Grow are one mode (shrinks by default, grows with Shift), and
 -Attract and Repel are one mode (attracts by default, repels with Shift). Here
 -is a complete list of modes and shortcuts of the Tweak tool:
 -
 -Shift+m, Shift+0                move mode
 -Shift+i, Shift+1        attract/repel objects mode
 -Shift+z, Shift+2        jitter mode
 -Shift+<, Shift+>, Shift+3       scale mode
 -Shift+[, Shift+], Shift+4       rotate mode
 -Shift+d, Shift+5        duplicate/delete mode
 -Shift+p, Shift+6        push path mode
 -Shift+s, Shift+7        shrink/grow path mode
 -Shift+a, Shift+8        attract/repel path mode
 -Shift+r, Shift+9        roughen mode
 -Shift+c         paint mode
 -Shift+j         color jitter mode
 -Shift+b         blur mode
 -
 -In Paint mode, painting with Shift inverts the color you're applying (e.g. when
 -painting with yellow, Shift will switch the applied color to blue).
 -
 -Calligraphy tool
 -
 -  • The tool's settings can now be set from a preset (see the drop-down list in
 -    the controls bar). Several presets are provided that imitate various
 -    drawing implements and styles.
 -
 -  • When drawing with Alt pressed, Inkscape subtracts the new path you are
 -    creating from the selected path. With Shift, it unions the new path with
 -    the selected path. This allows you to quickly patch or erase defects in a
 -    stroke you have drawn, without leaving the tool.
 -
 -  • The behavior of the tool when tracking a guide (drawing with Ctrl) has been
 -    improved:
 -
 -      □ The initial "jerk" when you start drawing is suppressed.
 -
 -      □ The undesired flipping of the stroke to the other side of the guide
 -        path, when drawing along closed paths, is fixed.
 -
 -      □ If you lose connection with your guide path, the tool tries to continue
 -        moving in the same direction as if by inertia, so as to minimize the
 -        tearoff jerk.
 -
 -Paint Bucket tool
 -
 -  • Paint Bucket is now more tightly integrated with potrace. As a result,
 -    memory and CPU usage on each fill operation have been reduced
 -    significantly.
 -
 -Eraser Tool
 -
 -A new tool, Eraser, has been added to the main toolbox. Its shortcut is Shift+E
 -. It has two main modes, selectable by toggle buttons on its controls bar:
 -
 -  • Delete Objects mode: any shape touched by dragging is deleted completely.
 -    This is analogous to "touch selection" in Selector followed by Del.
 -  • Cut mode: dragging subtracts, using a boolean Subtract operation, parts of
 -    paths it touches. On the controls bar, you can adjust the Width of the
 -    trace left by the tool. If nothing is selected, it acts on all objects in
 -    the current layer, whether selected or not; if there's a selection, its
 -    action is limited to selection. This mode is similar to Alt+drag in
 -    Calligraphic tool.
 -
 -Pen and Pencil
 -
 -New modes
 -
 -Apart from the regular Bezier mode, these drawing tools now provide several new
 -modes:
 -
 -  • Spiro mode: This mode automatically applies the new Spiro Splines path
 -    effect (see the section on new effects) to any newly drawn path. As
 -    mentioned below, it is not yet possible to preview a spiro before it is
 -    finished. This mode is available in both Pen and Pencil tools.
 -
 -  • Polyline mode (Pen only): This mode makes it easy to draw many straight
 -    line segments by disallowing any curves, even when you accidentally drag
 -    with the mouse instead of clicking.
 -
 -  • Paraxial mode (Pen only): create straight line segments that are parallel
 -    to one of the coordinate axes. This works similar to the Polyline mode with
 -    Ctrl. Normally, each next line segment is drawn perpendicular to the
 -    previous one, but the direction of the line segment being drawn can be
 -    toggled by pressing Shift. If you click on the start anchor, the path gets
 -    closed with an L-shaped segment (its direction of which can also be flipped
 -    with Shift).
 -
 -Stroke shapes
 -
 -As a first step towards this blueprint, it is now possible to automatically
 -apply predefined vector shapes to path strokes in Pen and Pencil tools. The
 -choice of shapes in the drop-down list on the controls bar includes:
 -
 -  • Triangle in and Triangle out: tapering out in both directions
 -
 -  • Ellipse: smooth elliptic shape stretching along path
 -
 -  • From clipboard: any path you had previously selected and copied to
 -    clipboard
 -
 -To adjust the width of the stroke, open the Path Effect Editor, choose "Pattern
 -along path" effect, and edit its Width parameter. It is measured in units of
 -the original size of the applied shape; the triangles and ellipse are all 10px
 -in size, and the clipboard size can be any size. The default value of Width is
 -1.00, which means the triangle/elliptic strokes will be 10px wide and the
 -from-clipboard stroke will be as wide as the copied object was tall.
 -
 -Pencil smoothing
 -
 -In Pencil tool, the controls bar now provides the Smoothing parameter,
 -changeable in the range from 1 to 100, which controls how much smoothing is
 -applied to the freehand lines you draw. Small Smoothing values produce rough
 -lines with many nodes; large values give smooth lines with few nodes.
 -Previously, this control was only available in Inkscape Preferences.
 -
 -Pencil sketch mode
 -
 -The sketch mode is still experimental. In essence, it enables the artist to
 -draw many strokes, which Inkscape then averages into a single path. It tries to
 -mimic sketching with a real pencil and paper, taking the 'visual average' of
 -many strokes and condensing it into one stroke.
 -
 -Pick the pencil tool, press Alt, and sketch away; release Alt to finalize the
 -result. After each stroke (a stroke starts when the mouse button is pressed
 -down, and ends when it is released), the resulting path will be an average of
 -the old result and the newly drawn stroke. In Inkscape's Pencil tool
 -preferences, one can choose to either average between all drawn strokes (so
 -that all stroke have the same weight), or just the new stroke and the old
 -result (so that later strokes have greater weight).
 -
 -Currently, going back and forth between A and B in one stroke does not give the
 -expected result; it will result in a long path going back and forth, instead of
 -the visually expected path going from A to B just once. We are working on this
 -(difficult!) issue. For best results, draw strokes only from A to B (and not
 -from B to A).
 -
 -Text tool
 -
 -  • When editing multiline or flowed text, the PgUp and PgDn keys now work to
 -    move the cursor by one screen (i.e. by as many lines as fit into the screen
 -    at current zoom).
 -
 -  • The usability of the font family drop-down list in the Text tool controls
 -    bar has been improved: it no longer steals focus, all keyboard shortcuts
 -    work as designed (Alt+X to access the family control, Alt+down to open the
 -    drop-down list with font previews, arrows to move in the list, Enter to set
 -    chosen font) and the completion feature works (start typing a family name
 -    and a pop-up list with possible completions appears).
 -
 -    A remaining problem that may be fixed in a future version is that the first
 -    opening of the drop-down list of family names may be slow (several seconds)
 -    if you have many fonts installed (the delay is Inkscape generating the
 -    previews for all fonts). Subsequent openings of the list are much faster.
 -
 -Connector tool
 -
 -  • Connectors are now drawn to the edges of shapes, rather than to the
 -    bounding box of shapes.
 -  • The routing buffer around shapes is now altered in the correct direction
 -    when the user changes this via the spacing control fon the connector
 -    toolbar.
 -  • A bug has been fixed where the spinboxes on the connector toolbar did not
 -    properly respond to single clicks of their up and down arrows.
 -
 -Path effects
 -
 -Path Effects stacking
 -
 -More than one Path Effect can be assigned to an object. A new UI was created to
 -control the stack in the Path Effects Editor (Shift+Ctrl+7): the Effect list
 -shows the stack of effects for the selected object; below, buttons allow you to
 -move a selected effect in the stack up or down or remove it from stack.
 -
 -The stack works from top to bottom, i.e. the topmost listed effect is applied
 -first, the second one works on the result of the first, and so on until the
 -bottom effect which produces the final visible result. A new effect that you
 -choose in the "Apply new effect" list and created by the Add button gets added
 -to the end of the current stack.
 -
 -Path Effects for groups
 -
 -Path effects can now be assigned to a group. In most cases, the effect is
 -applied recursively to the member paths, but for Bend Path and Envelope
 -Deformation the result that the distortion applies to the group as a whole.
 -
 -  • You can, as usual, enter the group by double-clicking on it, and edit the
 -    paths there watching the transformed result update live.
 -
 -  • Path effects can be assigned to groups of groups, applying recursively to
 -    all grouped paths.
 -
 -  • The Convert Object to Path command (Ctrl+Shift+C), when applied to a group
 -    with effects applied, removes these effects from group and converts all its
 -    member paths to effect-less paths looking exactly as before.
 -
 -Misc new features
 -
 -  • The Paste Path Effect command in Path menu can now assign the path effect
 -    of the clipboard's path to any number of paths, going recursively into
 -    groups if necessary.
 -
 -  • A new command, Remove Path Effect in Path menu, removes any path effects
 -    from all selected objects, going recursively into groups if necessary.
 -
 -  • Path effects can now be assigned to the sides of a 3D box (use Ctrl+click
 -    to select individual sides) without breaking its 3D functionality.
 -
 -  • The Pen and Pencil tools now correctly work with paths with effects: you
 -    can continue such a path or add a new subpath to it by drawing with Shift,
 -    while preserving the effects applied to it.
 -
 -  • Path parameters of effects can now link to existing shapes or texts. For
 -    example, now it is possible to use a text as the pattern for the Pattern
 -    Along Path effect, or shape a path with the Envelope Deformation where one
 -    of the envelope sides is text! Since the effect links to the text, not
 -    copies it, the result will update live if you edit the text.
 -
 -  • Lib2geom now has an implementation for EllipticalArc. For Inkscape, this
 -    means that it is now possible to directly copy-paste ellipse shapes to path
 -    parameters (e.g. 'pattern' in Pattern along Path), without the need to
 -    convert the ellipse to path first.
 -
 -
 -New effects
 -
 -  • Sketch: Simulates hand-drawn lines. A set of parameters lets you tune the
 -    effect. They are all summarized in this picture.
 -
 -    [300px-SketchExemple]
 -
 -  • Hatches: Fills the shape with rough, randomized hatches, simulating a quick
 -    hand drawing. It is configurable through numeric parameters as well as
 -    on-screen handles visible in Node tool.
 -
 -    [300px-Hatches-lpe].
 -
 -  • von Koch: This effect creates fractal pictures. A collection of
 -    transformations (rotations, rescalings, etc...) is recursively applied to
 -    the input path. The transforms are derived from a "reference" path (a line
 -    segment) and a "generating" path (basically a collection of segments): the
 -    transforms are those needed to move the reference segment onto each segment
 -    of the generating path (components in the generating path having more than
 -    one segment might be used to define shearing/mirroring transforms). A
 -    famous example is the von Koch's snowflake.
 -
 -    [300px-VonKochExample]
 -
 -    Warning: the complexity of the output path grows exponentially fast with
 -    the number of generations. As a guardrail, an editable complexity bound is
 -    provided, above which the effect is disabled.
 -
 -  • Knot: Creates a knot from a flat self-intersecting curve: at each crossing,
 -    one strand is interrupted to make it look like it's going under the other.
 -    The "sign" of each crossing (first strand interrupted, second interrupted,
 -    or no interruptions) can be set independently by clicking the on-screen
 -    handle which can be dragged from one crossing to the other.
 -
 -    [300px-KnotExample]
 -
 -    Warning: as far as possible, the lpe tries to keep the modifications of
 -    crossing signs unchanged under small deformations. For large or topology
 -    changing deformations however, some or all crossings might jump back to
 -    their default orientation.
 -
 -  • Spiro splines are a novel way of defining curvilinear paths developed by
 -    Raph Levien. It takes some getting used to, but for certain tasks (such as
 -    lettershape design) Spiros have a clear advantage over Bezier curves.
 -    Recently, Spiro support was added to the FontForge font editor; now it is
 -    available in Inkscape too, which means you can use all the convenient
 -    Inkscape path tools (moving and transforming groups of nodes, node
 -    sculpting, etc.) on Spiro paths.
 -
 -    A Spiro path is defined by a sequence of points, but unlike a regular path
 -    with Bezier curves, all Spiro points lie on the path and there are no
 -    off-path handles. The curvature of the path is defined entirely by the
 -    positions of the points and their types. The path behaves very similar to a
 -    springy rod which is forced to pass through the given points and which uses
 -    the minimum possible curvature to satisfy the requirement. As such, it
 -    feels quite natural and the resulting path is very smooth - not just
 -    superficially smooth (i.e. having no cusps), but smooth at a deeper level,
 -    which you can achieve with Beziers only after a lot of laborious tweaking.
 -
 -    To create a Spiro path, select any path and assign the "Spiro spline" path
 -    effect to it. There are no parameters. Each node of your path becomes a
 -    point of a Spiro path, depending on the type of node:
 -
 -      □ Smooth nodes (those with two collinear Bezier handles; use Shift+S to
 -        make a node smooth) become smooth curve points of the Spiro path. Note
 -        that the length or direction of the Bezier handles of the source path
 -        is ignored; the only thing that matters is their collinearity.
 -
 -      □ Cusp nodes of the source path become corner points of the Spiro path,
 -        like free hinges on the springy rod. Between two corner points, the
 -        path is always a straight line. To make a node cusp, retract its Bezier
 -        handles by Ctrl+click, or press Shift+C and move one of the handles so
 -        they are no longer collinear.
 -
 -      □ Half-smooth nodes - those with one Bezier handle collinear with a
 -        straight line segment on the other hand - become "left" or "right"
 -        points on the Spiro path which behave exactly the same: they sit
 -        between a straight line and a curve and enforce that these two segments
 -        join smoothly without a cusp. To create such a node, make sure one of
 -        the segments is a line (select its ends and press Shift+L), then
 -        Ctrl+drag the remaining handle to make it snap to the direction of the
 -        straight line segment on the other side, or press Shift+S to lock it to
 -        that direction.
 -
 -    Note that what matters is the actual collinearity of a node's handles,
 -    regardless of the node type that the node has in the Node tool; for
 -    example, if a node designated as cusp (diamond-shaped) has collinear
 -    handles, it will become a smooth curve point of the Spiro path.
 -
 -    Some configurations of points do not converge and produce wild loops and
 -    spirals instead of a smooth curve. According to Raph, "The spline solver in
 -    this release is _not_ numerically robust. When you start drawing random
 -    points, you'll quickly run into divergence. However, "sensible" plates
 -    based on real fonts usually converge." Avoid too sharp changes in direction
 -    between points to prevent divergence. Hopefully, the robustness of the
 -    algorithm will be improved in future releases.
 -
 -    For now, to edit Spiro paths viewing the result in real time, you have to
 -    use the Node tool; it is recommended to turn off the red highlight of the
 -    source path. The Pen tool does not yet allow you to preview a Spiro as you
 -    draw, although you can paste the Spiro effect on the path and see the
 -    result as soon as the path is finalized.
 -
 -    You can always use the Node tool to continue a Spiro path by duplicating
 -    and dragging away its end nodes. Also, when you have a Spiro path selected,
 -    you can add a new subpath to it with Pen or Pencil if you start drawing
 -    with Shift.
 -
 -  • Construct Grid: Draws a grid using the first three nodes of a path. The
 -    center node defines the origin. The other two nodes define the direction
 -    and length of the two adjacent sides of the first cell. If a path has more
 -    than three nodes, the other nodes are ignored. One can select the number of
 -    cells in the two orthogonal directions.
 -
 -  • Envelope Deformation: Allows you to deform an object (or a group of object)
 -    by deforming its sides. Modifications are done by deforming the four path
 -    parameters: Top, Bottom, Left and Right; for each, you can edit it with
 -    Node tool, copy, paste, or link to an existing path in the document.
 -
 -  • Ruler: Draws ruler marks along the path; you can set distance between the
 -    marks, their length for major and minor marks, the major/minor ratio, and
 -    other parameters.
 -
 -  • Interpolate Subpaths: Creates a given number of interpolated paths between
 -    the (first) two subpaths of a path (the subpaths after the second subpath
 -    are ignored). The interpolations are spread along an editable trajectory
 -    path.
 -
 -    [InterpolateSubpathsExample]
 -
 -
 -Notable effect bugfixes and changes
 -
 -We try to refrain from changing the behavior of existing path effects, because
 -it will change appearance in old files when opened in a new version of Inkscape
 -(but not in any other SVG viewer or editor). However, when an effect is really
 -broken, we have to fix it:
 -
 -  • Pattern Along Path:
 -      □ The pattern used to be stretched across discontinuities (separate
 -        subpaths). This has been fixed; now it treats a discontinuous path as a
 -        group of continuous paths and applies the effect separately to each.
 -      □ Successive copies of the pattern can now be fused into continuous paths
 -        (using the new "fuse nearby ends" feature) so that "filling" the result
 -        works as expected.
 -
 -  • Bend Path:
 -      □ Closed input paths would sometimes result in unclosed output paths.
 -        This has been fixed.
 -
 -Import/Export
 -
 -PostScript and EPS import
 -
 -Inkscape's PS and EPS import now uses Ghostscript instead of pstoedit. If you
 -need to open files of these types, install Ghostscript and make sure the
 -directory with the ps2pdf utility from Ghostscript installation is in your
 -PATH. On importing a file, you will see a preferences dialog, similar to PDF
 -import; for multipage PS files, this dialog allows you to select which page to
 -open.
 -
 -PDF import
 -
 -  • A new checkbox on the PDF import dialog, Replace PDF fonts with
 -    closest-named installed fonts (on by default) attempts to replace all font
 -    names in the imported PDF with the most similar names of those fonts
 -    installed on your system. For example, if the PDF uses the font
 -    "TimesNewRomanPSMT" and you have "Times New Roman" installed, that font
 -    will be used, which will likely give you a more correct appearance than the
 -    unknown font "TimesNewRomanPSMT" that will be displayed as the default sans
 -    serif font. This is a temporary fix necessary because Inkscape cannot yet
 -    extract the fonts from the PDF files it imports nor can it embed them into
 -    SVG; when it gets these capabilities, such font name conversion will become
 -    unnecessary because all fonts will be preserved.
 -
 -  • Importing PDF files now works from the command line. For example,
 -
 -inkscape file.pdf --export-plain-svg=file.svg
 -
 -    will take the first page of the PDF and use the default import options, and
 -    save the result to SVG. If you try to import PDF without an --export
 -    command, it will show the import options dialog as before and open the file
 -    in the UI.
 -
 -PDF, PostScript, and EPS export
 -
 -The new Cairo-based PS and EPS exporter provides much better support for
 -various vector features, including clipping paths, patterns, and non-ASCII
 -characters. Those features that are not supported by the targeted format become
 -embedded bitmaps that preserve the appearance. In particular:
 -
 -  • transparency is always rasterized in PS or EPS but not PDF, as PDF supports
 -    vector transparency;
 -
 -  • filters, such as blur, are by default rasterized in all three formats (PS,
 -    EPS, PDF). This can be turned off by unchecking the "Rasterize filter
 -    effects" option in the UI or adding the --export-ignore-filters option via
 -    the command line. In this case, filtered objects are rendered as vectors
 -    without filters and without rasterization.
 -
 -  • The resolution for rasterizing the filters can be set in the UI in the
 -    "Resolution for rasterization (dpi)" parameter or on the command line by
 -    --export-dpi parameter (same as used for exporting SVG documents to
 -    bitmaps). The default is 90 dpi. The rendering quality of filters for
 -    rasterization, as well as for bitmap export, is always the best possible
 -    regardless of what you have set in the Filters tab of Preferences (which
 -    only affects on-screen rendering). For example,
 -
 -inkscape --export-pdf=out.pdf --export-dpi=300 file.svg
 -
 -    will export file.svg to out.pdf, rasterizing any filtered objects in it at
 -    300 dpi. (If there are no filtered objects, the --export-dpi has no
 -    effect.)
 -
 -All of PS, EPS, and PDF export formats uniformly support the export area
 -options (page or drawing) and the new export-id option:
 -
 -  • You can now export a single object from a complex document (for example, a
 -    single layer) if you specify the ID of that object in the "Limit export to
 -    the object with ID" field in the GUI or via the --export-id=ID option on
 -    the command line. The export will show only that object (all others will
 -    not be exported). The BoundingBox (page size) of the exported PS/EPS/PDF
 -    file will correspond to the bounding box of that object. You can override
 -    this with "Export area is page" (GUI) or --export-area-page (command line)
 -    option which forces the output to have the size of the SVG document's page
 -    (this may not be possible with EPS, see below).
 -
 -  • The "Export area is page" (GUI) or --export-area-page (command line) option
 -    forces the output to have the size of the SVG document's page. This is the
 -    default for PS and PDF but not for EPS.
 -
 -      □ Note, the specification of the EPS format does not allow a bounding box
 -        to extend beyond the content. This is enforced by the Cairo graphics
 -        library which means that when --export-area-page is used with EPS
 -        export, the page bounding box will be trimmed inwards (but never
 -        expanded outwards) to the bounding box of the content if it is smaller.
 -        If you want a file which has a %BoundingBox different from the bounding
 -        box of its content, you can use PS or PDF export formats instead of
 -        EPS, or add a white background rectangle with the required size to
 -        source document before exporting to EPS.
 -
 -      □ The --export-bbox-page command line parameter has been removed; use
 -        --export-area-page instead.
 -
 -      □ The --export-area-page option was renamed from --export-area-canvas for
 -        consistency with the use of the terms page and canvas in the GUI.
 -
 -  • The "Export area is drawing" (GUI) or --export-area-drawing (command line)
 -    option forces the output to have the size of the exported objects' bounding
 -    box, regardless of page size. If no --export-id is specified, this means
 -    the bounding box of the entire drawing; with --export-id, this means the
 -    bounding box of the exported object only. This is the default for EPS. Note
 -    that checking "Export area is page" or using --export-area-page overrides
 -    this setting for PS and PDF output.
 -
 -  • The --export-embed-fonts option is removed. Inkscape now always embeds and
 -    subsets all fonts used in the document when exporting PS, EPS, or PDF.
 -
 -UniConvertor-based import and export
 -
 -Inkscape can now use UniConvertor to import files of the following types:
 -
 -  • Corel DRAW versions 7 to X4 document files (CDR)
 -  • Corel DRAW versions 7 to X4 Template files (CDT)
 -  • Corel DRAW Presentation Exchange files (CMX)
 -  • Corel DRAW Compressed Exchange files (CCX)
 -  • sK1 files (SK1)
 -  • Computer Graphics Metafiles (CGM)
 -  • Windows Metafiles (WMF)
 -  • HPGL (AutoCAD) Plot files (PLT) (requires UniConvertor 1.1.4)
 -
 -Inkscape can now use UniConvertor to export files of the following types:
 -
 -  • Windows Metafiles (WMF)
 -  • sK1 files (SK1)
 -  • HPGL (AutoCAD) Plot files (PLT) (requires UniConvertor 1.1.4)
 -
 -Text objects are not supported as of UniConvertor 1.1.4.
 -
 -On Windows, UniConvertor is included with Inkscape distribution and does not
 -require separate installation.
 -
 -HPGL export
 -
 -In addition to the HPGL export via UniConvertor listed above, Inkscape can now
 -export to HPGL (Hewlett-Packard Graphics Language) via an internal routine that
 -is geared towards various cutters/plotters.
 -
 -JavaFX export
 -
 -Inkscape can export drawings to JavaFX format (.fx file extension).
 -
 -DXF import and export
 -
 -  • DXF export for desktop cutting plotters is much faster than in previous
 -    versions. A new option was added to provide support for RoboMaster desktop
 -    cutting software. Also, polylines and polysplines are now supported.
 -
 -  • DXF import is new. It supports a number of the simpler DXF shapes: line,
 -    Bezier spline, ellipse, circular arc, text.
 -
 -PNG export
 -
 -  • PNG export has been updated to include metadata if present in the source
 -    SVG. This includes the Author, Copyright, Creation Time, Description, and
 -    Title fields. PNG metadata can be viewed using the ImageMagick identify
 -    command.
 -
 -  • Export filenames that are relative (e.g. ../file.png or simply file.png)
 -    are now resolved relative to the document's location. This applies to the
 -    filenames you type in the Export dialog as well as those stored in export
 -    hints in the document itself (and used by the "Batch export" checkbutton as
 -    well as in command line export with --export-use-hints). However, export
 -    filenames specified directly on the command line are not resolved, which in
 -    effect means they work, as before, from the current working directory from
 -    which you run the export command.
 -
 -OCAL (Open Clip Art Library) Export
 -
 -  • Export to Openclipart.org has been disabled for 0.47 as it had become
 -    non-functional and needs to be re-written.
 -
 -Autosave
 -
 -The new autosave feature allow for automatic timed backups as work goes on.
 -Saved versions are put in a designated directory and do not overwrite the
 -original SVG file nor each other.
 -
 -In Inkscape Preferences (Ctrl+Shift+P), Save tab, you can enable this feature
 -and specify various options:
 -
 -  • the time interval between backups, in minutes;
 -
 -  • the directory where you want the backups to be stored;
 -
 -  • and the maximum number of saved backups (if this number is exceeded, old
 -    backups will start to be deleted).
 -
 -Extensions
 -
 -  • The former Effects menu is renamed to Extensions. This is less confusing
 -    and better reflects the content of the menu: a collection of extensions,
 -    written mostly in Python, which perform various tasks with or without
 -    selection.
 -
 -New and improved extensions
 -
 -  • The new Arrange > Restack extension restacks (changes the z-order of)
 -    selected objects, with options including: left to right, top to bottom (or
 -    vice versa), radial outward or inward, or at an arbitrary angle. You can
 -    also specify what point of an object is used to calculate its position for
 -    restacking.
 -
 -  • The new Generate from Path > Extrude extension is similar to the old
 -    Extrude effect, which has been renamed Motion. The new effect requires two
 -    paths and draws connection lines or polygons between their nodes. If you
 -    want more dense extrusion, add more nodes to the paths. All the extrusion
 -    polygons are separate (grouped) objects, so they can be easily painted by
 -    the Tweak tool to get nicely shaded ribbons, 3D letters, and the like.
 -
 -  • The new Generate from Path > Scatter extension spreads copies of pattern
 -    along arbitrary "skeleton" paths. The pattern must be the topmost object in
 -    the selection. Groups of paths, shapes, clones are allowed.
 -
 -  • The improved Modify Path > Add Nodes extension now allows segments to be
 -    divided into a given number of subsegments.
 -
 -  • The new Modify Path > Convert to Dashes extension takes the dash pattern of
 -    the stroke and explicitly cuts the curve to duplicate this pattern. This
 -    can be used to allow desktop cutting plotters, which don't understand
 -    dashed stroke style, to cut dashed paths. You can also achieve interesting
 -    effects with smoothly varying dash length if you edit the resulting path
 -    with Node Sculpting technique (Alt+drag with Node tool).
 -
 -  • The new Render > Add printing marks extension adds printing marks and color
 -    bars required by print bureaus. You can either manually define margins by
 -    which cut marks are created.
 -
 -  • The new Render > 3D Polyhedron extension draws 2D projections of 3D
 -    polyhedrons and other 3D shapes. You can choose one of a number of
 -    predefined shapes (cube, octahedron, truncated dodecahedron and others) or
 -    load a shape definition from an OBJ file. The shape can be rotated around
 -    any of the three axes by arbitrary amount; you can also define various
 -    style options such as color of the faces and stroke width, and enable
 -    shading with adjustable light source position.
 -
 -  • The new Render > Alphabet Soup extension is a vector rework of Matt
 -    Chrisholm's script. Alphabet Soup randomly mashes glyph elements together
 -    to make exotic-looking text.
 -
 -  • The new Render > Cartesian Grid extension plots Cartesian (square) grids
 -    that do not fill the page, but offer three levels of division, logarithmic
 -    scales (with clutter-reduction and arbitrary base) and customizable line
 -    width. All like elements (e.g. x-axis subminor divisions) are put into
 -    subgroups together. A proper border is also drawn, with an independent line
 -    width.
 -
 -  • The new Render > Polar Grid extension plots a polar coordinate grid, with
 -    options for arbitrary-base logarithmic subdivisions, clutter-reduction
 -    around the origin, circumferential labels and custom line widths.
 -
 -  • The new Render > Draw from Triangle extension takes a triangle drawn as a
 -    path (only the first three nodes of a path are counted) and allows to draw
 -    many triangle-related geometrical objects such as circumcircles, excentral
 -    triangles, etc. It also lets you specify custom trilinear coordinates and
 -    triangle centre functions, as well as compute basic triangle properties
 -    such as area and semiperimeter.
 -
 -  • The new Render > Guides Creator extension quickly creates horizontal and
 -    vertical guides for subdividing the canvas. You can choose the divisions
 -    from None, 1/2, 1/3 ... to 1/10.
 -
 -  • The new Render > Calendar extension draws a calendar for a given year with
 -    localizable month/weekday names, colors, and many other options.
 -
 -  • The new Render > Foldable Box extension creates foldouts for paper boxes.
 -
 -  • The new Text > Convert to Braille extension recodes English (or just Latin
 -    letters) text to Braille code. It is not intended to create a real Braille
 -    text for visually impaired people, just an accurate graphical
 -    representation of Braille text to be used in illustrations.
 -
 -  • The new Modify Path > Interpolate Attribute in a Group extension takes a
 -    group of objects and assigns to its members interpolated values of an
 -    attribute of your choice, such as width, height, opacity, etc.
 -
 -  • The new Web > JavaScript extensions allow you to set various interactive
 -    JavaScript attributes, such as onclick or onfocus, on SVG elements.
 -    Inkscape does not support them on rendering but you might need them for
 -    other SVG viewers such as Firefox.
 -
 -Extension API changes
 -
 -  • While the "Live preview" checkbox is useful for most effects, for some it
 -    just does not make sense. Now, you can add the attribute needs-live-preview
 -    ="false" in the effect element in the .inx file of the effect to suppress
 -    this checkbox for your effect.
 -
 -  • Parameters passed to extensions (via the <param> element) now can have a
 -    boolean attribute, gui-hidden, to indicate that the parameter should not be
 -    represented in the GUI. If all parameters are marked as hidden, no GUI is
 -    presented for such extension.
 -
 -  • All .inx files are now properly formatted XML files with their own
 -    namespace of: http://www.inkscape.org/namespace/inkscape/extension and a
 -    Relax NG schema to define it. More information can be found on the
 -    Extensions page.
 -
 -Filters
 -
 -The Filter Editor (former Filter Effects) and Remove Filters commands are moved
 -from the Object menu to the new Filters top-level menu, which also contains a
 -collection of preset filters.
 -
 -Preset filters
 -
 -The Filter Editor is powerful, but can be quite cumbersome. You can now apply
 -complex preset filters to selected objects with a single command by choosing it
 -from the new Filters top-level menu. Submenus categorize the filters by
 -function or appearance. To view a sampler of all preset filters, open
 -filters.svg document from Inkscape's examples (share/examples in the Inkscape
 -tree).
 -
 -Most filters apply immediately after selecting the command; some present a
 -dialog where you can adjust some of the parameters before applying the filter
 -(such filters have "..." at the end of the command in the menu).
 -
 -By default, if the selected object already has some filter applied, the chosen
 -filter will be merged with the existing filter for combined effect. However you
 -can also overlay several filters to an object while keeping them separated:
 -simply press Ctrl+G after applying any filter and then apply another one; the
 -filters will then display separately in the Filters Editor.
 -
 -You can easily add your own filters to these menus. Simply place any SVG file
 -with the filters to the filters subdirectory of your config directory (~
 -/.config/Inkscape/ on Linux) and the filters will be picked up from it when you
 -start Inkscape. By default, they will be placed in the Personal submenu under
 -Effects > Filters. If you want to control this, add the following attributes to
 -the filter element:
 -
 -inkscape:label         is the command label
 -inkscape:menu          is the submenu to place the command into
 -inkscape:menu-tooltip  is the tooltip (displayed in the statusbar
 -                       as you select the command)
 -
 -No Filters rendering mode
 -
 -In order to facilitate editing documents that use lots of SVG filter effects,
 -filter effects can now be disabled for a particular document window by
 -selecting View > Display mode > No Filters from the menu. This provides an
 -intermediate step between Normal and Outline view modes.
 -
 -The Toggle View command in the Display Mode submenu (Ctrl+keypad 5) toggles
 -between all 3 modes in a loop: Normal, No filters, Outline.
 -
 -Filter quality setting
 -
 -In addition to the Blur Quality setting, Inkscape now has a general Filter
 -Effects Quality setting on the Filters tab of Inkscape Preferences. It affects
 -all filters and gives you an opportunity to seek optimum balance between speed
 -and accuracy when rendering filters.
 -
 -  • Best quality is the quality used when exporting.
 -  • Better quality uses fast methods for transforming images, which
 -    occasionally shows up as jagged edges. Full rendering resolution is used.
 -  • Anything below that also uses low resolution rendering for filters.
 -
 -For exporting images, the best quality is used regardless of this setting.
 -
 -SVG support
 -
 -Optimized CSS properties
 -
 -  • As a file size optimization, Inkscape does not write into SVG some of the
 -    stroke properties if the object has stroke:none and some of the fill
 -    properties when it has fill:none. The only situation where this might
 -    affect you is if you remove stroke from an object and then turn it back on
 -    - the object will get the default stroke instead of the same it had before.
 -
 -    Also, in manually-edited SVG where a parent group has no stroke but sets
 -    some stroke properties to be inherited by its descendants, you will need to
 -    set stroke property to other than none on the group, and suppress
 -    inheritance with stroke:none on those children that don't need it.
 -
 -    Specifically, if stroke:none, the following properties do not get written
 -    to SVG:
 -
 -stroke-width
 -stroke-linecap
 -stroke-linejoin
 -stroke-miterlimit
 -stroke-opacity
 -stroke-dasharray
 -stroke-dashoffset
 -
 -    Note that this does not include marker properties, which means you can
 -    still have markers on a path without visible stroke.
 -
 -    If fill:none, the following properties do not get written to SVG:
 -
 -fill-opacity
 -fill-rule
 -
 -  • The opacity property is not written if it has the default value of 1 (this
 -    property is not inherited, so the change should have no side effects).
 -
 -  • The marker-start, marker-mid, and marker-end properties are not written if
 -    the marker property is already present with the same value.
 -
 -Optimized path data
 -
 -In this version, the size of the path data written in the d= attribute of path
 -elements is reduced by about 10%. Inkscape generates the shortest possible path
 -strings by avoiding repeated operators and using relative coordinates (when it
 -helps).
 -
 -This is controlled by the options on the SVG output page of Inkscape
 -Preferences dialog. Also, you can change the following attributes in group id=
 -"svgoutput" in your preferences.xml file:
 -
 -  • allowrelativecoordinates (default 1) to switch relative coordinates on (1)
 -    or off (0)
 -  • forcerepeatcommands (default 0) to force repeating operators (1) or allow
 -    use of the more compact representation without repeated operators (0)
 -
 -
 -Horizontal and vertical path segments
 -
 -If an SVG contains paths with shorthands for horizontal and vertical path
 -segments ('H' or 'V'), then Inkscape will try to maintain those shorthands if
 -possible, so the saved file will also contain them.
 -
 -<script> tag preserved
 -
 -While Inkscape does not yet support SVG scripting via the <script> element,
 -this element is now preserved after editing the file in Inkscape.
 -
 -Initial SVG Fonts support
 -
 -As a SoC 2008 project, JucaBlues implemented initial parsing and rendering of
 -SVG Fonts. You can design fonts within Inkscape, but using them to render text
 -on the canvas is not yet supported. We are waiting for libpango to implement
 -proper support of the user-fonts feature.
 -
 -Currently, the main benefit of this feature is to improve the font design
 -workflow when working with FontForge: You can save SVG files with fonts
 -embedded and import them into Fontforge, and you only need one file per font
 -instead of one file per glyph.
 -
 -An SVG font is a mapping of chunks of SVG drawing to characters. When a certain
 -character is used in a string, its respective glyph is rendered. If no glyph is
 -declared for a certain character, then there is a default "missing glyph" that
 -is rendered. You can set the drawing that defines this missing glyph; this is
 -done by clicking on the Missing Glyph: From Selection... button at the top of
 -the dialog.
 -
 -Here's an example of a font design workflow:
 -
 - 1. Open the SVG Font dialog by _Text > SVG Fonts_.
 - 2. Click New under the font list. Select the new font in list; you can rename
 -    it by clicking on its name and typing a new name. You will see a set of
 -    black squares in the text preview area. This is the preview text being
 -    rendered. It only uses the default missing glyph (which is initially
 -    defined as a black square) because no specific glyphs were defined yet.
 - 3. Draw something that you want to use for the missing glyph
 - 4. Click Missing Glyph: From selection...
 - 5. Draw a glyph for the "a" character (character matching is case sensitive)
 - 6. On the Glyphs tab, click Add glyph
 - 7. Type "a" in the Matching String column (at the moment, handling of the
 -    glyph-name attribute is not implemented)
 - 8. With the row selected, click Get curves from selection...
 - 9. Now, you will see the "a" glyph in the preview rendering if the preview
 -    text contains it. You can edit the preview text as needed to view different
 -    characters.
 -
 -Repeat steps 5 through 9 for every glyph you wish to add to your font, then
 -save the SVG file and open it in FontForge for further editing.
 -
 -SVG Test Suite Compliance
 -
 -As a result of last year's GSoC, there is now a rendering test framework along
 -with a number of tests (found in the SVN repository here). These tests can be
 -run reasonably easily on any system (you don't need to be able to compile
 -Inkscape) and include a large part of the  W3C SVG Test Suite. See this page or
 -this page for up-to-date rendering results. Also see TestingInkscape for
 -information on running and creating rendering tests.
 -
 -
 -Editing Aids
 -
 -Grids
 -
 -  • The dotted rectangular grid now shows small crosses at the intersection
 -    points of emphasis lines.
 -
 -Guides
 -
 -  • Guides can now be rotated using the mouse. Each guide has an anchor
 -    (visible as a little circle) around which it can rotate.
 -
 -      □ Drag a guide anywhere to move it.
 -      □ Shift+drag to rotate a guide about its anchor (additionally press Ctrl
 -        to constrain the rotation angle to multiples of 15 degrees).
 -      □ Ctrl+drag to move the anchor along the guide.
 -      □ Press Del while hovering the mouse over the guide to delete it.
 -
 -  • There is now an option in the Preferences dialog (Tools page) to treat
 -    groups as single objects during conversion to guides (as opposed to
 -    converting each object inside the group separately).
 -
 -Snapping
 -
 -Inkscape's snapping code has undergone major changes to make it more reliable
 -and easier to use. Snapping to objects now invokes routines from the 2geom
 -library, which is actively maintained and less error-prone than the old livarot
 -library.
 -
 -There is a new snapping toolbar to control the snapping options and modes. Use
 -_View > Show/Hide > Snap_ controls bar to show or hide this toolbar. The
 -toolbar contains toggle buttons for various snapping modes (snap nodes, snap to
 -paths, etc.) as well as a master snapping toggle that disables and reenables
 -all activated modes.
 -
 -Also, to control some of the snapping features, a Snapping tab has been created
 -in the Inkscape Preferences dialog. The new features found on this tab are:
 -
 -  • Snap indicator: When snapping has occurred, an indicator is displayed at
 -    that specific position. For now that indicator is just a cross that
 -    disappears after a second. In the future the shape of the indicator will be
 -    related to the type of target that has been snapped to.
 -  • Snap delay: Inkscape now optionally waits some time after the mouse pointer
 -    has stopped moving before it tries to snap. This makes Inkscape much more
 -    responsive on complex documents and allows moving objects in a straight
 -    line over a grid, amongst others.
 -  • Inkscape can be forced to only try snapping the (source) node that is
 -    closest to the mouse pointer, à la Corel DRAW. When this mode is enabled, a
 -    snap indicator will shortly be shown at that node. This will give you
 -    maximum control of the snapping which is useful for complex drawings with
 -    many nodes.
 -  • When multiple snap solutions are found, Inkscape can either prefer the
 -    closest transformation (when the weight slider is set to 0; this is the old
 -    mode), or prefer the moved object's node that was initially the closest to
 -    the pointer (when the slider is set to 1). The way Inkscape calculates the
 -    preferred snap has been improved too, which should lead to more predictable
 -    snapping.
 -
 -Other improvements are:
 -
 -  • The Node tool now snaps to any unselected node (both cusp and smooth)
 -    within the path that's being edited, and nodes of other paths. It also
 -    snaps to the path itself, but only to the stationary segments in between
 -    two unselected nodes, not to the segment being currently reshaped. It is
 -    now also possible to snap while moving nodes along a vertical or horizontal
 -    constraint.
 -  • In the Document Properties dialog, the checkbox for "always snap" has been
 -    replaced by a pair of radiobuttons; this should eliminate most of the
 -    confusion surrounding this option.
 -  • Holding the Shift key now also disables snapping while dragging node
 -    handles and while creating single dots.
 -  • During constrained drawing (using Ctrl), Inkscape will now only snap to the
 -    points on the constrained line.
 -  • In the Selector tool, snapping while skewing or moving with a constraint
 -    (with Ctrl) has been improved.
 -  • Also in the Selector tool, while moving, Inkscape will now snap the
 -    bounding box of each selected item individually instead of the selection as
 -    a whole
 -
 -Inkscape can consider the following objects for snapping, depending on the
 -toggles in the Snapping toolbar:
 -
 -  • Clipping paths and masks
 -  • Midpoints of line segments
 -  • Midpoints of bounding box edges
 -  • Page border
 -  • Intersections of any kind of paths
 -  • Smooth nodes
 -  • Cusp nodes
 -  • Each of the handle points (when creating new shapes)
 -  • Radius handles of rectangles
 -  • Single dots
 -
 -Other features
 -
 -Spell checker
 -
 -There's now a built-in spell checker. Press Ctrl+Alt+K or choose Text > Check
 -spelling to check all visible text objects in your document (they need not be
 -selected) in turn, going top-to-bottom and left-to-right. Once a misspelled
 -word is found, a red frame around it is displayed, and the object with the
 -misspelling is selected; if you are in Text tool, it also places the text
 -cursor at the beginning of the misspelled word.
 -
 -In the dialog, you can choose one of the listed suggestions and Accept it (this
 -button is disabled unless you choose something in the list); Ignore the word
 -for the rest of this session; or Add the word to the local dictionary.
 -
 -Also, since the dialog does not lock Inkscape's window, you can simply edit the
 -word with Text tool. Once you edit it to something acceptable to the speller,
 -it will automatically turn off the red frame and continue checking the
 -document.
 -
 -On Linux, you need to install Aspell and its dictionaries for the languages you
 -want to check. On Windows, for now, only the English dictionary is included
 -with Inkscape builds.
 -
 -Desktop integration improvements
 -
 -  • Clipboard is system-wide: you can now copy/paste objects between different
 -    Inkscape instances as well as between Inkscape and other applications
 -    (which must be able to handle SVG on the clipboard to use this).
 -
 -  • Open Recent menu now integrates with Windows recent documents management as
 -    well as freedesktop.org recent document lists (used by Gnome, KDE and
 -    Xfce). The list can be cleared from the Preferences dialog (the Interface
 -    tab).
 -
 -  • Themable Icons: all icons used in Inkscape are now themable using the
 -    standard freedesktop.org theming mechanism. The list of names used is
 -    available here.
 -
 -Shell mode
 -
 -If you run inkscape with --shell, it will enter a shell mode. In this mode, you
 -type in commands at the prompt and Inkscape executes them, without you having
 -to run a new copy of Inkscape for each command. This feature is mostly useful
 -for scripting and server uses: it adds no new capabilities but allows you to
 -improve the speed and memory requirements of any script that repeatedly calls
 -Inkscape to perform command line tasks (such as export or conversions). Each
 -command in shell mode must be a complete valid Inkscape command line but
 -without the Inkscape program name, for example:
 -
 -$ inkscape --shell
 -Inkscape 0.47 interactive shell mode. Type 'quit' to quit.
 ->file.svg --export-pdf=file.pdf
 ->otherfile.svg --export-png=bitmap.png
 -Background RRGGBBAA: ffffff00
 -Area 0:0:744.094:1052.36 exported to 744 x 1052 pixels (90 dpi)
 -Bitmap saved as: bitmap.png
 ->quit
 -
 -Gesture-based stroke width adjustment
 -
 -Similar to editing the fill or stroke colors by dragging away from the color
 -swatch in the status bar (added in 0.46), this version allows you to drag away
 -from the stroke width value displayed there to change the stroke width of
 -selection. Dragging above the 45-degree line from the swatch increases the
 -width (up to four times the original width), dragging below it decreases the
 -width (down to zero). With this feature, quick yet precise stroke width
 -adjustments are possible without opening any dialogs or menus.
 -
 -Tool switching by input device
 -
 -Tablets and other input devices that report separate hardware (e.g. pen tip and
 -eraser on the two ends of the pen) are now recognized and current tool can be
 -set to change (to Calligraphic Pen or Eraser) in response to the physical tool
 -being used.
 -
 -Layers
 -
 -  • The Layers dialog now can hide or show all layers other than the current:
 -    click on the layer name with right mouse button to get the pop-up menu. The
 -    Solo feature allows you to quickly switch between working layers and check
 -    their content in isolation.
 -
 -  • A new command, Duplicate Layer, has been added to the Layers menu to
 -    duplicate an existing layer with all of its objects (even hidden or locked)
 -    and any sub-layers.
 -
 -  • The Add Layer dialog can be opened with Ctrl+Shift+N (N for new).
 -
 -  • Layer names can now be non-unique within the document.
 -
 -  • Several layer handling inconsistencies have been fixed.
 -
 -Editing bitmaps in an external editor
 -
 -Linked (but not embedded) bitmaps can be edited in an external application.
 -Right-click an image and choose Edit externally...
 -
 -An image will reload when its linked file changes on disk. Both the external
 -editor application to use and the reload behavior are configurable on the
 -Bitmaps page of the Inkscape Preferences dialog.
 -
 -Command for relinking clones
 -
 -A new command, Relink Clone to Copied in Edit > Clone, allows you to relink any
 -clone to a different original object without changing its other properties.
 -Just copy (Ctrl+C) the object you want to be the new original, select any
 -number of clones, and choose the Relink command. Now all selected clones are
 -linked to the copied object.
 -
 -Note that this may cause the clone to move if the new original and the old
 -original objects are in different positions.
 -
 -Automatic relinking of clones on Duplicate
 -
 -If you turn on the When duplicating original+clones: Relink duplicated clones
 -option on the Clones tab of Inkscape Preferences (default is off), duplicating
 -a selection containing both a clone and its original (possibly in groups) will
 -relink the duplicated clone to the duplicated original instead of the old
 -original.
 -
 -Pattern editing
 -
 -When editing pattern fills:
 -
 -  • The pattern origin and scale handles now snap.
 -  • The pattern scaling can now be different in X and Y direction. Press Ctrl
 -    to have a fixed 1:1 ratio scaling (old behavior).
 -  • The handles are now positioned at the corners of the unit cell, instead of
 -    only a quarter of that cell as before. So, now a rectangle filled with
 -    pattern will have all of the pattern handles in the corners, making it
 -    harder to manipulate them. However, the handles can be dragged outside the
 -    rectangle by moving the pattern's origin handle.
 -
 -Transform dialog: spacing out option
 -
 -Previously, the Apply to each object separately checkbox had no effect for the
 -Move tab of the Transform dialog (Ctrl+Shift+M). Now, if several objects are
 -selected, this checkbox is on, and "Relative move" is on, each object is
 -shifted relative to the closest selected object on the left (for X) or below
 -(for Y).
 -
 -For example, if you have a horizontal row of objects and you move them
 -relatively by x = 5 px with "Apply to each object separately" on, the leftmost
 -object will shift by 5px, the next one to the right by 10px, and so on; the
 -rightmost selected object is displaced by 5*n px where n is the number of
 -selected objects. As a result, the distance in each pair of adjacent objects
 -will increase by 5px and the whole row will be spaced out, much like a
 -letterspacing adjustment spaces out a text string. Moving these objects by X=
 --5px will, conversely, squeeze them tighter together: the leftmost will move by
 --5px, the next one by -10px, and so on. For Y, the effect is the same except
 -that the move starts from the object closest to the bottom (i.e. with smallest
 -Y coordinate).
 -
 -When determining the order of shifting objects, for X, the left edges of their
 -bounding boxes are sorted horizontally, and for Y, the bottoms of their
 -bounding boxes are sorted vertically. The order of selecting the objects or
 -their z-order do not matter.
 -
 -Converting text to path produces a group
 -
 -Converting a text or flowed text to path (Ctrl+Shift+C) now produces a group of
 -paths, one path for each glyph of text, instead of a single monolithic path as
 -before. Apart from easier manipulation, an additional advantage is that if your
 -text contained styled spans (i.e. fragments with different color, opacity, or
 -other properties), these styles will be preserved by the corresponding glyph
 -paths after the conversion. You can still easily get a single path out of such
 -a group by selecting it and doing Combine (Ctrl+K).
 -
 -Combine works on groups
 -
 -The Combine command now works transparently on groups, i.e. combines paths
 -inside selected groups at any level of grouping.
 -
 -Exclusion works on multiple paths
 -
 -The Exclusion boolean operation can now operate on an arbitrary number of
 -paths.
 -
 -No more Whiteboard
 -
 -The configure flag for Whiteboard has been removed since the feature was
 -non-functional. This menu item will no longer exist in the releases until it is
 -properly fixed to avoid any confusion.
 -
 -Save As directory
 -
 -On the Save tab in Inkscape Preferences, an option was added to change the
 -behavior to our old behavior. When this option is on, the "Save as..." dialog
 -will always open in the directory where the currently open document is. When
 -it's off, it will open in the directory where you last saved a file using that
 -dialog..
 -
 -Packaging Improvements
 -
 -Packaging for OSX and Windows has been worked on heavily and greatly improved
 -during this release cycle. Inkscape also now has a Portable version available
 -for Windows.
 -
 -User interface
 -
 -Inkscape Preferences dialog
 -
 -  • This dialog has been rearranged for more logical grouping of options. New
 -    pages have been added: Bitmaps (options for the new update-on-file-change
 -    and external editor features), UI (options for toolbar icon sizes), SVG
 -    Output (options for SVG formatting, introduced in 0.46 and now editable
 -    from the dialog as well), and Save (save directory and autosave options).
 -
 -Bitmap Copy resolution
 -
 -  • A new option on the Bitmaps tab, Resolution for Create Bitmap Copy, allows
 -    you to set the resolution of the bitmap created by the corresponding
 -    command (by default bound to Alt+B). The default value of 90 dpi forces the
 -    resulting bitmap to align with the default 1px-spaced grid on the canvas.
 -
 -Zoom correction factor
 -
 -  • The Interface tab has an adjustable ruler for Zoom correction factor. Move
 -    the slider until the ruler's on-screen size matches its true size. This is
 -    used as a reference point for the 100% (original size) zoom command.
 -
 -Interface language choice
 -
 -  • The application's interface language can be set from the preferences
 -    dialog, Interface tab. You'll have to restart Inkscape for this choice to
 -    take effect.
 -
 -Toolbars
 -
 -  • On the Interface tab, the toolbar icon sizes for the three main toolbars
 -    are now separately configurable and to a few different sizes. This allows
 -    for a more compact user interface.
 -  • The vertical toolbox has been converted to a standard GtkToolbar, which
 -    fixed the problem of it pushing the main window taller. Tools that don't
 -    fit automatically go into a popup menu.
 -  • When torn off, toolbars now keep the size they last had in the main window.
 -    They can be resized by docking, resizing the main window, and then
 -    undocking again.
 -  • Some controls (such as the Width in Calligraphic/Tweak/Eraser tools,
 -    Tremor, Wiggle, and Mass in Calligraphic, Threshold in Paintbucket,
 -    Tolerance in Pencil) are converted from numeric editable fields into
 -    draggable sliders, with labels and values (usually in the range 0..100)
 -    displayed on top. As these values don't usually require high precision,
 -    this makes adjusting them much easier and faster.
 -
 -Clone/original visualization
 -
 -When you press Shift+D to find and select the original of the selected clone,
 -Inkscape draws a dashed blue line between the centers of the bounding boxes of
 -the clone and the original. This line disappears after one second.
 -
 -File dialogs
 -
 -  • The Windows builds of Inkscape now have Windows-native file dialogs to keep
 -    consistency with other Windows applications.
 -  • Two new entries in the File type list, All Bitmaps and All Vectors, allow
 -    you to limit the listing to bitmap or vector formats only.
 -
 -Document Properties dialog
 -
 -  • New Color Management tab. In this new tab, you can declare multiple ICC
 -    color profiles for the current document.
 -  • New Script tab. ?
 -
 -Object Properties dialog
 -
 -  • New Title and Description fields. The Title attribute is intended to be
 -    used as tooltip. [sas]
 -  • New Interactivity section to add JavaScript calls.
 -
 -Miscellaneous
 -
 -  • The confusing icons on buttons in the controls bar of the Dropper tool
 -    (pick/assign opacity) are replaced by text labels.
 -  • Hovering over a swatch now shows the name of the swatch in the status bar.
 -    This makes it easier for tablet users to identify a swatch by name, as
 -    holding a stylus still enough for the tooltip to show up may be difficult.
 -  • In the Align and Distribute dialog, there is an option to treat all
 -    selected objects as a group when aligning. This spares the trouble of
 -    manually grouping them, aligning, and ungrouping afterwards.
 -
 -Notable bug fixes
 -
 -  • Several memory leaks are stopped, reducing the memory consumption during
 -    long editing sessions considerably. Closing the last window with a document
 -    now frees memory used by that document immediately.
 -
 -  • Copy/paste between Inkscape and other programs, as well as between
 -    different Inkscape instances, finally works as expected.
 -
 -  • No more ID clashes on import and paste: previously, importing or pasting
 -    SVG objects might sometimes distort their colors, because the imported
 -    objects referred to gradients with the same IDs as those that already exist
 -    in the document but look different. Now, IDs of all gradients in the pasted
 -    document are checked for clashes with those in the host document, and if
 -    necessary changed with all their users updated correspondingly, so such
 -    unexpected color changes will never happen.
 -
 -  • The visual bounding box (which is the default bounding box type used by
 -    Inkscape) of an object with a filter applied now includes the expanded area
 -    of the filter. For single blur filter (such as the blur you apply with a
 -    slider in the Fill and Stroke dialog), this expands the bounding box by
 -    2.4*radius; although theoretically, blur is infinite, this is the distance
 -    at which the opacity of the object drops below the perceptibility threshold
 -    of our renderer. For all other filters, the area is expanded by the
 -    relative amounts you specify on the "Filter general settings" tab of the
 -    Filter Editor dialog.
 -
 -    Only visual bounding box is affected; if you use geometric bounding box,
 -    you will notice no change in most cases. However, the Export Bitmap dialog
 -    always uses the visual bounding box for selection of the export area; this
 -    means that you can now export a blurred object to bitmap without any
 -    clipping of the blur.
 -
 -  • Bounding box calculation does not include the invisible objects, bug #
 -    252547.
 -
 -  • Various fixes to PS and PDF rendering of objects involving masks, patterns,
 -    and/or bitmaps: bug #208217, bug #217212 and others.
 -
 -  • File dialogs (Open, Save, Save as) now remember the last visited directory.
 -
 -  • The --vacuum-defs command line parameter erroneously deleted markers which
 -    are in use.
 -
 -  • No more garbage lines in Outline mode.
 -
 -  • No more artifacts left by the circle cursor in Tweak tool.
 -
 -  • The Bend Path and Pattern along Path path effects now work correctly with
 -    closed paths.
 -
 -  • Several viewBox related bugs fixed:
 -
 -      □ Documents with viewBox are now editable without transformation defects.
 -        In particular this affected documents created with e.g. pstoedit. bug #
 -        168370
 -      □ Resizing the page adjusts viewBox bug #167682.
 -      □ preserveAspectRatio parsing code was fixed bug #166885.
 -
 -  • Several fixes allow Inkscape to correctly render and edit SVG files that
 -    use currentColor in objects' style (this includes files created by
 -    gnuplot).
 -
 -  • Inkscape is now able to handle paths with only 'movetos', i.e. "M 0,0 M 1,1
 -    M 2,2". These kind of paths can be used to only show markers on a path
 -    without the rest of the path visible.
 -
 -  • Open paths (as opposed to closed) are now correctly drawn when start and
 -    end points are equal (SVG test suite paths-data-10-t.svg).
 -
 -  • The shorthand 'marker' property is now correctly interpreted (SVG test
 -    suite painting-marker-03-f.svg).
 -
 -  • Coordinates and lengths specified in percentages are now correctly
 -    interpreted (SVG test suite coords-units-02-b.svg).
 -
 -  • Horizontally scrolling the canvas with a tilt wheel (present on several
 -    Logitech mice such as the LX5) in the Bezier tool will no longer finish the
 -    path being drawn.
 -
 -
 -Known issues
 -
 -  • First time opening of the drop-down list with font families in Text tool
 -    may be slow, especially if you have many fonts installed. Subsequent
 -    accesses of this list are fast.
 -
 -
 -For information on prior releases, please see:
 -    http://wiki.inkscape.org/wiki/index.php/Inkscape
++Inkscape 0.48 pre-release.  More here later.
diff --cc build-lx.xml
index 5f33638eb10ea2f4b2f65c63fb32ec76b6e52a3e,81261a7a0744fbdd0353e10e75168f0bf589d665..8841fe3a9aa1c23a453d9712042909e1749bd234
@@@ -39,7 -39,7 +39,7 @@@
      </description>
  
    <!-- set global properties for this build -->
-   <property name="version"       value="0.46+devel"/>
 -  <property name="version"       value="0.47"/>
++  <property name="version"       value="0.47+devel"/>
    <property name="src"           location="src"/>
    <property name="lib"           location="lib"/>
    <property name="build"         location="build"/>
diff --cc build.xml
index 16443dfc2000f9a678bafdd391ed5628631cafd0,06f8b58abfd849249853cb401a705fd56cd8287a..c32e22b1743d0b8fa280fc56f5d89dd6da585084
+++ b/build.xml
@@@ -42,7 -42,7 +42,7 @@@
      </description>
  
    <!-- set global properties for this build -->
-   <property name="version"       value="0.46+devel"/>
 -  <property name="version"       value="0.47"/>
++  <property name="version"       value="0.47+devel"/>
    <property name="src"           location="src"/>
    <property name="lib"           location="lib"/>
    <property name="build"         location="build"/>
diff --cc configure.ac
index fbfa2e5df6e0a3aa898443042112daeea23f1805,c5a7fc444013047053214a0f8b33512f7ddb1b93..e34da61c5b0be609c20fddaef542ad56ca0e3d23
@@@ -7,7 -7,7 +7,7 @@@ AC_PREREQ(2.53
  # `dpkg --compare-versions'.  (ii) We don't always know what the next
  # version is going to be called until about the time we release it
  # (whereas we always know what the previous version was called).
- AC_INIT(inkscape, 0.46+devel)
 -AC_INIT(inkscape, 0.47)
++AC_INIT(inkscape, 0.47+devel)
  
  AC_CANONICAL_HOST
  AC_CONFIG_SRCDIR([src/main.cpp])
index 9b840f550fea3c92328e312985b73b72a9aa0b16,6150a00f2f596c7708a282f2c8f11e8f2f56b462..651ba3cb2ac33da07e00e4dff66f5f694b24a311
@@@ -7,8 -7,9 +7,9 @@@
  ; DEFINES
  ; #######################################
  !define PRODUCT_NAME "Inkscape"
- !define PRODUCT_VERSION "0.46+devel"
- !define PRODUCT_REVISION 1
 -!define PRODUCT_VERSION "0.47"
++!define PRODUCT_VERSION "0.47+devel"
+ !define PRODUCT_REVISION 3
+ !define PRODUCT_VERSION_4 "0.47.0.3"
  !define PRODUCT_DIR_REGKEY "Software\Microsoft\Windows\CurrentVersion\App Paths\inkscape.exe"
  !define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
  ;!define DUMMYINSTALL ; Define this to make it build quickly, not including any of the files or code in the sections, for quick testing of features of the installer and development thereof.