Release Notes
Note:
The download files for this Inkscape version are provided for historical reasons only. As most of them do not have a checksum or valid/secure GPG signature, be very careful if you download or install them on your computer.
Inkscape 0.40
In brief
This release has been slow in coming, but it was worth the wait: Inkscape 0.40 brings a huge amount of new features, usability enhancements, documentation, and bugfixes. The three most important new features are:
-
Layers
are almost complete in this version; this fills a major gap in functionality, making Inkscape usable for complex artwork.
-
The
Potrace
bitmap tracer is incorporated into Inkscape - now vectorizing bitmaps is easy and interactive. A matching command, "Create bitmap copy", converts from any object to bitmap.
-
The
text-on-path
implementation is complete and very flexible. Both the text and the path remain fully editable and transformable.
Many other improvements deserve a brief mention:
-
Features
: new document templates, improved freehand and calligraphy tools, randomized stars, POV export, some clipboard integration, experimental flowText implementation, new command-line options, better PNG and EPS export, and more.
-
Usability
: new file dialogs, current style for new objects, select under & drag selected with Alt, loads of new statusbar tips, new shape controls, better default gradients, and more.
-
Documentation
: 3 new tutorials (Shapes, Tracing, Calligraphy), many translations added and updated.
-
Bugfixes
: too many to mention (in total, 228 bugs closed in the tracker since 0.39), including several important SVG compatibility fixes.
New functionality
-
Support for
layers
is the most important new feature which is almost complete in this version:
-
The active group selector in the statusbar has revealed its true identity as the
quick layer selector
, complete with toggle buttons for locking and hiding the current layer. Unfortunately a proper layer dialog didn't make it into the release (we've taken long enough already), but we're going to rectify this in 0.41 by implementing a complete traditional layers dialog.
-
The new
Layer menu
has commands for creating, renaming, and deleting layers, as well as for moving the current layer up or down in the z-order of sibling layers (changing the z-order of an object moves it only within its parent group or layer, as before). Again, more commands will be added in 0.41.
-
Hiding
and
locking
of objects and layers is fully implemented. Hiding is done via the
display
CSS property, so objects hidden in Inkscape will be hidden in any compliant SVG renderer. Locking prevents an object from being selected using any of the tools. If you select an object through other means (for example, with the Find dialog or the XML editor), you can change it as usual. Hiding or locking groups or layers applies to all objects within them.
-
Layers are implemented as SVG
groups
(the
<g>
element) with
inkscape:groupmode="layer"
. Selection and other commands will treat them as layers rather than groups. The possibility (introduced in 0.39) to temporarily enter any group as if it were a layer remains; such a temporary layer is then shown in the layer selector and behaves the same as a normal layer with respect to selection commands. Normal (non-temporary) layers can also be nested within one another.
-
All the
drawing tools
as well as Paste refuse to create new objects if the current layer is locked or hidden, with an appropriate statusbar message.
-
The
Ctrl+A
(Select All),
Tab
, and
Shift+Tab
selection shortcuts by default work only in the current layer (not going into either parent or children layers) and ignore locked and hidden objects. This can be changed in Preferences (the Selecting tab).
-
The
Find
dialog can optionally limit the search to the current layer and include locked and hidden objects in the search (they are excluded by default).
-
Selecting
an object makes that object's layer
current
. This behavior is somewhat experimental (most other vector editors do not do this), but in our testing so far, it is very convenient. Just by selecting an object you immediately get into its "local context" (i.e. its layer or sublayer) where you can add objects, select all within the layer, lock or hide the layer (e.g. to reach another layer beneath it), etc.
-
Text on path
: Inkscape now provides a complete implementation of SVG
<textPath>
element. Select a text object and a path, shape, or offset and do the Text > Put on Path command to make the text follow the path. Both text and path remain fully editable (including kerns and letterspacing in text). Several texts can be put to one path. When you move the path, its attached texts move with it; however, you can move the text away from its path or transform it without losing the link. The Text > Put on Path command converts a text-on-path into regular text.
-
Inkscape can do
bitmap tracing
(Shift+Alt+B) from the GUI. The only tracer included with the program so far is Potrace (
http://potrace.sf.net
) but we may add other tracers in the future. Potrace works very well for black-and-white images; in its dialog, several tracing options (brightness threshold, edge detection, quantization) are available, as well as an interactive preview. See the new Tracing tutorial in Help > Tutorials for details.
-
The new command,
Make a Bitmap Copy
(Alt+B), exports a bitmap of the selected objects (with all other objects hidden), saves it as a PNG file in the same directory as the document, and imports it back into the document.
-
The resolution or size of the created bitmaps can be set in
preferences.xml
(no GUI yet). In
<group id="createbitmap">
, specifying
minsize=
gives the minimum size of the generated bitmap in pixels (regardless of the object size), while
resolution=
sets the constant resolution (different pixel size for different object sizes).
-
Optionally, the exported bitmap can be processed by an
external filter
before it is imported. One such filter included with Inkscape is
inkscape-shadow.sh
in
share/extensions/
which makes a grayscale
blurred shadow
for an object (requires Imagemagick). See
inkscape-shadow.README
for details.
-
An SVG document can be exported in
POV format
for the POV-Ray raytracer (
http://www.povray.org
). Each shape or text is exported as a prism; color and transparency are preserved, stroke is ignored. An example file,
share/examples/istest.pov
, demonstrates how to import an Inkscape-exported POV and set up camera, lights, textures, etc. for rendering.
-
The new
Randomization
control for the Star tool lets you set the amount of random displacement of the star's tips and (for rounded stars) curve handles. (Alternatively accessible via Alt+dragging a star handle on canvas.) A little randomization makes a star less regular, more humane, often funny; strong randomization is an exciting way to obtain a variety of crazily unpredictable shapes. Unleash your imagination!
-
The old limits for the number of
star tips
(was 32) and
spiral turns
(was 20) have been increased to
1024
.
-
The new command,
Vacuum Defs
in File menu, removes unused stuff from the document's
<defs>
.
-
The new command,
Remove Manual Kerns
in Text menu lets you quickly clear a text object (including text on path) of any horizontal or vertical kerns you've set by hand.
-
The
pencil
tool now draws more smoothly.
-
The
calligraphic pen
tool received a number of improvements that make it capable of some real calligraphy (see the new Calligraphy tutorial for details):
-
The new
Thinning
control tells how the width of the stroke depends on velocity. It can take values from -1 to 1; the value of 0 gives a constant width pen, values greater than 0 make fast strokes thinner, values less than 0 make fast strokes broader.
-
The new
Fixation
control defines how much the pen angle depends on the stroke direction. At 0, the pen is always perpendicular to the stroke (this gives uniform stroke width); at 1, the pen is fixed at the angle set in the Angle control (this gives maximum width contrast depending on stroke direction, just as with a real flat calligraphic pen). (Previously, this parameter was set to 0 and not changeable, so Angle had no effect whatsoever.)
-
You can adjust width and angle of the pen from the keyboard (
left/right
arrow keys for width,
up/down
for angle). These shortcuts work even while you draw a stroke.
-
Inkscape finally makes some use of the
system clipboard
(more clipboard integration to follow):
-
Copying text objects
into the system clipboard (Ctrl+C), as well as
pasting into the text object
being edited (Ctrl+V in Text tool), now work.
-
In dropper tool, you can
copy the color under cursor
to the system clipboard by
Ctrl+C
.
-
New documents
created when you start Inkscape or use File > New are now based on
templates
. If you want your new documents to have different initial zoom, window size, page background or border, metadata, etc., just save a document with the desired settings (it may contain some objects, too) in your
share/templates
directory (typically
/usr/local/inkscape/share/templates
on Linux,
$
INKSCAPE_DIR
\share\templates
on Windows). The file named
default.svg
in that directory will be the default new document on program start; other documents will be listed in the New submenu of the File menu. Inkscape comes with several example templates with different page sizes and other settings.
-
The Align dialog (renamed Layout) can now
align and distribute nodes
both horizontally and vertically when Inkscape has the Node tool active and some path nodes are selected.
-
The Object Properties dialog has facilities for editing
per-object metadata
: freeform Label (
inkscape:label
) as well as Title and Description (not enabled yet). The generally evil and not properly working anyway "Printable" checkbox is removed, as well as the disfunctional "Active". The "Hide" and "Lock" checkboxes are fully functional, allowing you to set sensitivity and visibility on a per-object basis.
-
There's a preliminary implementation of
flowing text
from SVG 1.2 (the
<flowRoot>
and friends, see
http://www.w3.org/TR/SVG12/flow.html
). This allows you to put text into a shape so that the lines are wrapped automatically when you change the text or the shape. Chained shapes (text which did not fit into one shape is continued in the next one) and exclusion shapes (text flows around an exclusion shape) are possible. There's a very basic UI allowing you to add flowed text to the selection available in the right click menu; editing the text and exclusion shapes still require manual editing of your SVG with the XML editor (see
share/examples/flowtext.svg
for an example). The next version will have complete flowing text support with a more convenient UI.
Note that flowing text is not compatible with SVG 1.1 renderers
; you'll have to convert it to path if you want to view your SVG outside of Inkscape.
-
There is preliminary support for
plug-ins
(loadable libraries) currently used by the new GIMP gradient plug-in that loads GIMP gradients into Inkscape. Currently plug-ins can be used for import and export into Inkscape, and integrate fully into the dialogs and menus along with other extensions.
-
Improvements in
command-line PNG export
allow you to easily script exporting parts from complex documents and to better integrate GUI editing with command-line use:
-
You can now specify the
background opacity
(
--export-background-opacity
or
-y
).
-
If no background color (
-b
) or background opacity (
-y
) specified, the
values from the document
(
sodipodi:namedview
) are used.
-
You can now export an area corresponding to a single object by specifying the
ID of the object
with the
--export-id
or
-i
switch, for example:
inkscape -e mypath.png -i path966 mydoc.svg
-
When exporting with
-i
, you can add
--export-use-hints
or
-t
to tell Inkscape to use the
filename and DPI export hints
stored for that object when it was last exported from the GUI. For example,
inkscape -i path966 -t mydoc.svg
will export path966 to the PNG file with the same filename and resolution as you used for exporting it from within Inkscape, so you don't need to specify them on the command line.
-
With
-i
, you can also specify
-j
(
--export-id-only
) which tells Inkscape to
show only the specified object
in the export and hide all others (even if they overlay the specified object).
Interface and usability
-
New
open/save/import dialogs
(based on GTK 2.4 but better) have a preview pane, displaying SVG and bitmap files, and a bookmarks pane allowing you to remember your project directories and visit them with a single click. The dialogs are now the same across all platforms.
-
All object-creating tools can use the
current style
for new objects. The current style is the style that you last applied to an object (when changing its fill, stroke, transparency, etc). For example, after you paint some object black, new shapes you create will be black too.
-
Alternatively, a tool can use its own style for new objects, which is not affected by document editing. The Preferences dialog lets you choose between using the current style (shape tools by default) and the tool's own style (text, pen, pencil, and calligraphy by default) for any tool, as well as to set the style of a tool from current selection.
-
The "Apply to" list in the Fill & Stroke dialog is removed; this dialog now always sets the style of the selection.
-
Statusbar improvements
:
-
Each
knot
(control handle, node, node handle, etc.) displays a
tip
in the statusbar when hovered over by the mouse, explaining the function of the knot and its applicable keyboard modifiers.
-
Pressing
Alt
,
Ctrl
, or
Shift
explains the tool-specific functions of these modifiers in the statusbar.
-
Most statusbar messages use
bold face
to highlight key words and phrases for faster perception and better understanding.
-
Additional details and tips are added to many messages, and terminology is made consistent.
-
XML editor
improvements:
-
There is now a
statusbar
at the bottom of the XML editor which provides tips and warning messages as you edit the tree.
-
Selecting an attribute moves keyboard focus to the attribute entry pane; pressing
Ctrl+Enter
in that pane sets the new value.
-
The editing areas for attribute values and text nodes now
autowrap
their contents, making it much easier to review and edit long values.
-
More convenient
shapes
(now documented in painstaking detail in the new Shapes tutorial):
-
The Rounded and Randomized fields in the
star
controls panel are precise, but not very convenient. Now you can round a star interactively by Shift+dragging a star handle on the canvas, or adjust a star's randomization level by Alt+dragging a handle. Correspondingly, Shift+click on a handle zeroes roundedness, Alt+click removes randomization; additionally, Ctrl+click removes any skew straightening the star's tips.
-
With
spirals
, dragging the outer handle now rolls/unrolls the spiral from the outside, similar to the inner handle. To roll/unroll with fixed radius, drag the outer handle with Alt; to scale or rotate the spiral, drag it with Shift. Alt+dragging the inner handle adjusts the spiral divergence; Alt+click zeroes divergence; Shift+click on the inner handle zeroes inner radius (moves the handle to the center).
-
Rectangles
now have two resize handles in the opposite corners (in addition to the rounding handles in the third corner). Dragging the resize handles with Ctrl snaps the rect so that either its width, height, or proportion is preserved. Shift+clicking a rounding handle removes rounding; Ctrl+clicking makes rounding radii equal.
-
Ellipses
have two additional handles at the top and left extremities for resizing the ellipse around its center. Drag them with Ctrl or Ctrl+click them to make a circle. Shift+click the arc/segment handles to make the ellipse whole.
-
The controls panels for the
shape tools
(Rectangle, Arc, Star, Spiral) display either
New:
or
Change:
labels depending on whether their controls will apply to a newly created object or to the currently selected object(s) of the corresponding type.
-
Double-clicking a tool button
calls up the Preferences dialog open on the page of that tool.
-
The Preferences dialog remembers and reopens the page that was active the last time you used it.
-
The box selection cue is now the default on new installations.
-
For easier navigation with the grid, every fifth grid line is shown darker by default (changeable in Document Preferences).
-
Debugging output can now be redirected from console to the new
Messages window
(open via a command in the View menu). This redirection is on by default on Windows.
-
Select Under
: in Selector,
clicking with Alt
selects the object at cursor which is below (in z-order) the currently selected object at cursor; if the bottom object is reached, Alt+click again selects the top object. Thus, several Alt+clicks will cycle selection through the z-order stack at the click point. Combining Alt with Ctrl ("select in groups") and Shift ("add to selection") works, too. Note that on Linux, many window managers steal Alt+click by default; reconfigure your WM so you can use Alt+click in Inkscape.
-
Drag Selected
: in Selector,
dragging with Alt
moves the currently selected object(s) no matter where you start the drag, unlike regular drag that first selects the object under cursor. This is convenient for dragging objects that are behind other objects in z-order. On Linux, you may need to disable dragging the window with Alt in your WM if you want to use "drag selected".
-
When you switch an object to gradient fill or stroke, the
new gradient
is created with that object's previous fill or stroke color going from 1 to 0 opacity (instead of the hardcoded black-to-white fully opaque gradient as before). New objects
do not share
gradients now, except when you switch to gradient multiple selected objects with the same fill color (you can also explicitly set two or more objects to use the same gradient by selecting it in the list in the Fill and Stroke dialog, or by pasting style from one object to another). Newly created gradients are automatically garbage-collected when no longer used; however, when you edit a gradient in the Gradient Editor, it becomes sticky and can only be removed, when not in use, by the Vacuum Defs command.
-
The
master opacity
slider is moved from Object Properties to Fill and Stroke and can now work on multiple selected objects. It is now more convenient to adjust the transparency of objects with gradients or patterns, as well as groups (the equivalent of "group transparency" in Illustrator) and clones.
-
The four preferences that control whether or not to scale stroke widths, scale rectangle corners, transform gradient fills, and transform pattern fills with the object, are now represented by
four toggle buttons
in the Selector controls panel for easy access.
-
If a node has
straight line
path segments on one or both sides, Ctrl+Alt+dragging that node in the node tool moves it along the direction(s) of these straight line(s) and their perpendiculars. This is an easy way to change the length of a straight line without changing its angle.
-
The Text & Font dialog takes less space and is a bit more convenient to use.
Documentation, translations, examples
-
Three
new tutorials
added:
-
The
Shapes
tutorial has detailed descriptions of shape tools and shape types, as well as many examples and creative tips.
-
The
Calligraphy
tutorial describes in detail the capabilities of the improved Calligraphy pen tool. A brief history of the art, parameters of the tool, useful tips, and many examples from simple strokes to complete lettering projects.
-
The
Tracing
tutorial explains all the options and parameters of the Potrace interface for bitmap tracing, with tips and examples.
-
Updated the "Elements and Principles of Design" tutorial with new graphics and used latest features of Inkscape.
-
Updated the "Tips and Tricks" and "Basic" tutorials with several new sections.
-
Added Norwegian Nynorsk and Slovak interface translations.
-
Updated Brazilian Portuguese, French, German, Hungarian, Japanese, Russian, Slovenian and Spanish interface translations.
-
Added Norwegian Nynorsk translation of "Basic Tutorial".
-
Several new example files added to
share/examples
.
Important bugfixes
-
SVG compatibility:
-
fill-opacity
and
stroke-opacity
CSS properties are no longer ignored when used with a pattern or gradient fill.
-
Gradients with sharp color boundaries now work properly.
-
Several fixes to marker orientation.
-
rotate(angle,cx,cy)
syntax now works in
transform
attributes.
-
The
display
CSS property is supported (used for objects and layers visibility). Note that this way of controlling visibility is compatible with any conformant SVG renderers but not with Sodipodi which (in CVS version) uses its own extension attribute for visibility.
-
Gradients no longer behave weird when a path with gradient fill is transformed. Now gradients either transform with the object or remain unmoved, depending on the user setting (toggle button in selector controls). This setting affects grouped objects too.
-
Fixed several crashes and attempts to open error dialogs (which also result in crashes when Inkscape is run without X) in command-line operations.
-
RDF metadata is no longer written in Plain SVG format.
-
RDF keyword lists are stored more properly.
-
Though we don't yet properly support
<switch>
, it is now treated as a simple group instead of being silently ignored. This allows Inkscape to open SVG files exported from Adobe Illustrator.
-
Zoom with ctrl+mousewheel now works correctly.
-
The Select All command works much faster when there are many objects.
-
Several crashes that happened on copying objects with gradients or patterns are fixed.
-
Exporting text to PS
/EPS
without converting to curves now works reliably (including text-on-path and flowing text).
Internal progress
-
Text code has undergone a major rewrite. Each text object now holds instances of two classes:
flow_src
is homologic to the source XML tree, while
flow_res
represents the visible text flow separated into paragraphs and lines. The complex algorithm converting from
flow_src
to
flow_res
lets us use the same API for all kinds of text objects - regular text, text on path, flowed text. The monstrous
SPText
is now much smaller and simpler. The
SPChars
layer is eliminated. As one of the results, text rendering is accelerated by at least 10%.
-
Adopting the Boehm garbage collector (libgc) allowed us to simplify code in many places, and permitted more data to be shared without copying.
-
Gradient code is much simplified: gradients don't have to be in a special order in
<defs>
to work (thanks to the order-independent
URIReference
), no attempts are made to reuse orphan gradients (they are garbage-collected anyway), several old bugs are fixed.
-
Gradients that use
object
BoundingBox
units are converted to
user
SpaceOnUse
when the object is transformed. This makes it possible to transform the gradient by the same matrix and thus ensure that the gradient remains in sync with its object. New gradients are created with
user
SpaceOnUse
units.
Known issues
-
If an object has a gradient fill and a
fill-opacity
property less than 1.0 in its style, previously Inkscape ignored the
fill-opacity
. This was wrong. Now it correctly combines them, i.e. makes the gradient (more) transparent if the object using it has a
fill-opacity
less than 1.0. If you find out that 0.40 renders your gradients more transparent than before, simply remove
fill-opacity
from the
style=
of the objects that use semi-transparent gradients to fix them. In new files,
fill-opacity
is removed automatically when you apply a gradient.
-
There are two pretty serious bugs on Windows (bugs 1073459 and 1070816 in the tracker) that were reported late and could not be fixed for the release. It has been conjectured that the source of at least one of the problems is not in Inkscape but in a library we use. We're working to resolve these problems; an updated Windows build will be available as soon as they are fixed.
-
The layer selector at the bottom of the window is very limited. A "proper" layers dialog is slated for our next release.
-
You cannot put text on a rectangle or use markers with a rectangle without converting it to path first. This will be fixed in a future version.
-
Extensions that rely on external programs do not work on Windows.
-
Inkscape users running Suse 9.x may find installing either from source or the supplied RPM difficult. First, start by installing the updated GNOME 2.6 from the Suse supplementary GNOME download location. Then you will need third party gtkmm2 2.4 RPMs to support Inkscape 0.40+. The gtkmm2 packages shipped with Suse 9.1 and 9.2 are only gtkmm2 2.2.x versions, but Inkscape requires gtkmm2 2.4+. Resolving the dependencies can be a bit difficult, however using the updated gtkmm2 2.4.x RPMs from
http://ftp.gwdg.de/pub/linux/suse/apt/SuSE/9.1-i386/RPMS.usr-local-bin/
will work fine. In addition, Inkscape uses libsigc++2. You are recommended to install the libsigc++2-2.0.6 RPM from the same repo.
Optionally, you can install apt and the let it resolve your dependencies automatically. You can also try one of our semi-static builds that only require gtk 2.4 but not gtkmm, sigc++, or libgc.