The Inkscape 0.92 release
The 0.92 release was accompanied by a detailed set of release notes on the Inkscape wiki. The project has long required developers who check in new features to document those features in the upcoming release-notes page, an admirable practice that other free-software projects would do well to consider. If anything, the wiki page for a new release can veer toward being overly detailed but, on the other hand, there is never a last-minute scramble to write release notes from memory and risk accidentally leaving out something important.
As one would expect, the release itself is available to download for Linux, Mac OS X, and Windows. In addition to the usual packaging options, there is also a self-contained snap bundle available courtesy of Ted Gould (who is a member of both the Inkscape and snap teams). Ubuntu, of course, has built-in support for snap packages; installing the update requires only downloading the bundle. But the snap framework is available for other distributions as well; it may be a simpler way to test out the new release than waiting for a distribution repository update.
Perhaps ironically, the only peculiarity I encountered with the snap package of Inkscape 0.92 is that, when it is run on Ubuntu, it does not pick up the user's GTK+ 2 theme. This is, evidently, a choice that Gould made when creating the package, so that the application would look correct on non-Ubuntu systems. Once Inkscape is ported to GTK+ 3, it will cease to be an issue. Still, theme-sensitive Ubuntu users may prefer to fetch the release through the project's personal package archive (PPA) instead.
New user-visible features
Regardless of what package format you choose, the new Inkscape
release sports a lot of user-visible changes. The most substantial is
a type of new image element known as a
mesh
gradient. Part of the SVG specification, mesh gradients are fields
of smoothly graduated colors that are defined on a deformable
lattice.
The traditional gradients most users are accustomed to are defined on rectangles or ellipses, perhaps with transitions between multiple colors. Mesh gradients are an extension of that same concept; the difference is that the gradient lattice can be twisted around and reshaped arbitrarily, fitting into almost any shape — with as many straight segments, curves, and corners as desired. In addition to being fun to mess around with, mesh gradients are beneficial because they enable artists to create compact SVG documents that still exhibit complex coloration. A well-made mesh gradient element could replace dozens of layers of primitive gradients.
Text objects also gain a powerful new ability in this release: users now have full access to stylistic alternates and glyph variants in OpenType fonts. The variants include well-known examples like smart fractions, discretionary ligatures, and small capitals that are all defined in CSS, but OpenType allows fonts to include arbitrary features. Making use of them in software is still something of an ongoing battle even in the proprietary software world; Inkscape allowing users to access all of a font's OpenType features is a significant move in the right direction.
Also on the font front, whenever the user converts a text object into paths, the ARIA accessibility label (which contains the accompanying text) is now preserved, so users with any form of vision impairment will still be able to access the underlying text.
There are two new tools of interest that concern how Inkscape users
manipulate objects in a drawing, even though neither tool is used to
draw on the canvas. Each might take a bit of explanation. The first
is the "Objects" dialog, which provides a way to access the tree of
XML objects within the SVG file. An SVG drawing can easily
include hundreds of image and text objects, many of which will be
difficult if not impossible to select on the screen with a mouse.
In the past, Inkscape has provided some workarounds for this issue, such as using control keys to rotate through the objects located under the mouse until the right one is selected. But this dialog will be far simpler, for some users at least. Furthermore, having a full-featured dialog box makes it possible to interact with objects immediately. Need to change the color or opacity of an object? Simply type in the desired value. The dialog can also be used to individually lock or hide objects on the page.
The ability to access all of the SVG objects opens up some new possibilities as well. Users can assign meaningful names to every object, layer, or group, thus making those names accessible for other users in the future or to other software tools. For example, a designer can create a page full of icons in one Inkscape document, then run a script to select and export each of them as PNGs in a variety of sizes.
The other new feature is the "Selection sets" dialog, which allows the user to, in essence, define virtual groups of objects in the drawing. But, unlike the existing "group objects" feature, adding objects to a selection set does not permanently bind them together (nor does it change the z-axis ordering of the objects on the canvas). You can easily select the entire set by clicking on its name in the Selection sets dialog, but you can still move and edit the objects individually as needed. Here again, the main benefit is that large, complex documents become easier to work with.
Some smaller features worth pointing out in the new release include
the ability to lock guide lines in place, the ability to set the
document background to a checkerboard pattern (as opposed to white) so
that transparent regions are easier to notice, and support for many
more layer blending modes. Previous releases supported only the
Multiply, Screen, Darken, and Lighten blending modes. Inkscape now
supports eleven more. Furthermore, the blending mode can now be set
on each object in a document separately; prior releases supported
setting blending modes only at the document-layer level.
There are also some enhancements to existing drawing tools. The pencil tool, for instance, now supports an interactive smoothing feature, so users can simplify their line drawings without oversimplifying them. And the spray tool (which splatters around copies of a selected object in random, spray-paint style) saw numerous updates: an erase mode, better pressure sensitivity, the ability to avoid overlaps, and more.
Extensions and live effects
The above features are built into Inkscape's core drawing tools but, as is usually the case, there are even more new features to be found in the extensions and live path effects (LPEs) that ship with the program.
For instance, the pen tool is used by default to draw Bézier
splines. But, with the addition of two new LPEs, it can now also draw
B-splines and Spiro curves. Both are spline
curves that are subject to special constraints meant to ensure that
they exhibit fewer discontinuities. The
curves thus appear smoother to the human eye, and they can meet
stringent requirements for physical manufacturing.
There is also a suite of new LPEs for transforming objects on the canvas. The Perspective/Envelope transform might be the most familiar-looking: the user can grab handles on any corner of an object's bounding box and drag them around to distort its shape interactively. The Lattice Deformation LPE is more complex: it superimposes a five-by-five grid of handles over the object, and any of the handles — inside or on the perimeter — can be dragged to locally distort the object.
Conversely, the Transform By Two Points LPE is a simpler way to distort a shape: it provides one handle on each end of the object, which the user can drag around to squeeze or stretch things. That might be a preferable method for resizing an oddly shaped object, without distorting it internally. Whether the Perspective/Envelope or Lattice Deformation option is better for doing more complex distortions really depends on the object involved.
Other new LPEs include the "Roughen" and "Simplify" effects that roughen and smooth out vector objects, an effect to automatically rotate multiple copies of an object so that they follow the curvature of a path, and an effect to dynamically draw a mirror image of an object (making it far easier to draw objects with perfect symmetry).
While LPEs operate on top of the drawing surface, Inkscape extensions tend to be a bit more self-contained, such as performing several steps in sequence or iterating through a process. The new release adds several of interest. One helps the user generate seamless patterns, another changes the colors of a drawing to simulate several types of color blindness, another generates high-quality charts from values loaded from a CSV file.
That said, two of the new extensions add subtle enough functionality that they might not stand out as extensions at all. The "deep ungroup" extension will recursively ungroup all of the items in a nested set of groups-of-groups. The "set image attributes" extension iterates through a drawing to set the scaling factor for embedded PNG and JPEG images. In previous releases, whenever such an embedded bitmap file had been resized (particularly if it was resized by different amounts in the horizontal and vertical dimensions), the results would be displayed unpredictably.
Under the hood
As Inkscape moves closer and closer toward supporting the full SVG specification, it has made several changes to the underlying model that it employs for documents. This can be good or bad at any particular moment, depending on what one is doing and how one has used Inkscape in the past.
On one hand, Inkscape now supports many new standard SVG 2 and CSS3 properties such as paint-order and mix-blend-mode — even though the user interface does not yet expose a way to work with these properties. This is clearly good from a compatibility standpoint; SVG files opened in Inkscape will now look more like their original authors intended.
On the other hand, the new release changes the default resolution from 90 DPI to 96 DPI. As was the case with the change of grid-coordinate systems in the 0.91 release, the change brings SVG compliance but it may cause headaches for users who have old Inkscape documents sitting around and who open them in Inkscape 0.92. The application does offer plenty of warnings, but users should watch for oddities nonetheless. Similar caveats apply to text objects in two respects. First, "vertical text" in the Latin script is now rendered with all of the letters rotated 90°. This adheres to the specification, but users expecting the old behavior (with the letters standing upright beneath one another in a column) will have to adjust.
Second, Inkscape now follows the line-height definition as established in the CSS specification. That can affect line spacing in haphazardly created documents, because the CSS specification dictates how the line-height property cascades through the elements in a document. Indeed, one serious Inkscape user has already encountered trouble with this change. David Revoy reported that the line-spacing change "breaks" 10,000 of his files, and lashed out with some rather harsh words for the Inkscape team. Looking a little closer, the issue seems to be that Revoy renders his web comic from SVG source files, pulling in several translations for the captions and speech bubbles from external text files. The line-height change seemed to cause lines of text to collapse into one another.
In the bug report discussion, Tavmjong Bah noted that the line-height property was inappropriately specified in the document root as a percentage of a 12-pixel-high text, while the actual text elements in use within the comic were specified as 48 pixels high. Bah said there were a few options to fix the source files and posted Perl scripts that would transform the documents. Revoy replied that he would rather see a fix released in a post-0.92 update of Inkscape. As of press time, such a change has been staged, but an update has not yet been released.
Future-scape
If there is a lesson to be learned from Inkscape's need to change document defaults in order to follow an external specification, it is probably just that following specifications is difficult work. After all, the SVG and CSS specifications have undergone serious revision and expansion since the Inkscape project was started.
Along those lines, astute Inkscape historians may recall that the project publicly bumped the version number from 0.48 to 0.91 in 2014 in order to communicate to users that it was closing in on its goal of supporting the full SVG specification. At that time, a project spokesperson indicated that 0.91 would likely be the last release before Inkscape 1.0 — but that is clearly not how events have unfolded.
Release manager Bryce Harrington said in an email that the team
expects to keep making incremental releases, and that 1.0 is not
imminent. But that should not deter anxious Inkscape users from
trying out the new release. As a lot of the new features in 0.92
demonstrate, Inkscape is more than just an SVG implementation. It
supports a wide range of tasks, from technical work to pure
creative expression.
Index entries for this article | |
---|---|
GuestArticles | Willis, Nathan |
Posted Feb 2, 2017 3:47 UTC (Thu)
by dowdle (subscriber, #659)
[Link] (1 responses)
Posted Feb 6, 2017 9:34 UTC (Mon)
by debacle (subscriber, #7114)
[Link]
Posted Feb 2, 2017 8:32 UTC (Thu)
by halla (subscriber, #14185)
[Link]
The Inkscape 0.92 release
The Inkscape 0.92 release
The Inkscape 0.92 release