Release notes/0.41

From Inkscape Wiki
Jump to navigation Jump to search

Inkscape 0.41

In brief

Inkscape 0.41 is intended to provide a super-stable release prior to some major interface redesign work we will be undertaking for 0.42. It is thus at essense a bugfix release, yet there are several important new features and improvements:

  • Color tracing, as well as multi-level grayscale tracing, is now possible with the built-in tracer.
  • Clone tiler is an exciting new way to create patterns, tesselations, scatterings, or just about any regular or chaotic arrangements with clones of an original tile.
  • Managing length units is cleaned up, extended, and centralized in the document units preference stored with a document. The user unit (px) of SVG is fully supported and made the default.

Apart from that, this version brings improved extensions usability, the Invert Selection command, more convenient layers selector, icon theming, progress with scripting, and more. Among the bugs fixed are some serious crashes, memory leaks, and mis-features; certain areas saw noticeable speedups.

New functionality

  • The new Multiple scanning mode is added to the Bitmap Tracing dialog (Path > Trace Bitmap). This mode traces a bitmap image repeatedly, assigning a distinct style to each resulting path and combining the paths into a group. What does this mean to the user? For one thing, Inkscape can now perform color tracing! There are three new options:
    • Brightness: This separates the image into a given set of brightness levels, and scans the image for each one. This results is a fairly good grayscale vector representation of the original.
    • Color: This is what everyone wants. This quantizes the original color bitmap into a reduced number of colors, scans each subset of pixels, and assembles the paths into a color vector rendition of the original bitmap. This has been tested extensively and produces very good results.
    • Monochrome: This is the same as Color, but converts the resulting paths to grayscale. This is a convenience command, and is the same as if the user had used the Fill/Stroke dialog to do the same thing. The results are somewhat similar to Brightness; however, Brightness merely adds R, G, and B to get a brightness level, and throws color information away. That works well for areas of differing brightness, but fails for areas of similar brightness and different hue. Monochrome is grayscale, but its curves follow the edges of differing color.
  • The new powerful Tile clones dialog (Edit > Tile Clones...) implements all 17 plane symmetry groups, allowing you to easily create all sorts of symmetric patterns, Escher-like tesselations, ornaments, etc. Since the pattern is made out of clones, you can always edit the original tile and the entire pattern is updated live. This feature puts Inkscape into competition with software such as the free Arabeske or commercial SymmetryWorks.
    • Apart from selecting the symmetry, you can also vary the shift, scale, rotation, and opacity of the clones in the pattern, by setting the change rate per row and/or per column. With any of these parameters, you can alternate the sign of the increment for even/odd rows or columns, or randomize it to arbitrary degree. This produces "object fields" that can be distorted, skewed, slanted, "faded out," or "magnetized" (like iron particles in a magnetic field) in a multitude of ways. From a simple row of copies to complex effects reminding of fur, water ripples, starfields, or explosions, with various degrees of chaoticity - all this is now easy and automatic.
    • To create a clone pattern, simply select something, set the number of rows and columns, and click Create. You can then change some parameters in the dialog and click Create again; this will remove any existing tiled clones of the selected object and recreate the pattern anew. Or, you can just remove the old pattern by clicking Remove. To protect a pattern from deletion by this dialog, group it or move it to another layer.
    • Initially, a pattern is created based on the bounding box of the selected object. After the pattern is created, resizing the original tile does not move the clones away, so you can make the tiles overlap. Also, when the pattern is created, the current bbox of the original tile is remembered; later, if the "Use saved size and position of the tile" checkbox is on, the same bbox will be used when you click Create again, which means you can vary the pattern parameters without losing the overlapping of the tiles.
    • It's best to use a group as the original object for tiling, because you can then enter this group (right-click, "Enter group") and draw inside it. Any changes or new objects added to the group will show in the pattern immediately.
  • The new Invert Selection command (the `!' key) inverts selection (deselecting what was selected and selecting everything else) within the current layer. Both Invert Selection and Select All now have the "in all layers" variants that act across all visible and unlocked layers (Ctrl+Alt+A for Select All in All Layers, Alt+! for Invert Selection in All Layers).
  • Ben Crowell contributed the embed_raster_to_svg.pl Perl script (in share/extensions) which embeds all external raster images referenced from an SVG document into that document. Even though there's no Inkscape UI for it, this script is very useful for creating self-contained SVG documents for distribution.

Interface and usability

  • Upon launch, Inkscape checks the availability of various external programs that are used by installed Inkscape extensions. If some are missing, you get a warning box, and the complete list of unavailable extensions is in ~/.inkscape/extension-errors.log. Check that file and install additional software if you find that e.g. some import/export formats do not work (most commonly PS/EPS import which currently requires Skencil and pstoedit to be installed).
  • The quick layer selector in the statusbar now displays hidden layers grayed out and locked layers enclosed in []. This makes it much easier to see at a glance what is visible and unlocked in the document. The current layer is now marked by a bullet.
  • Document units: now you can set the default units for each document in the Document Preferences dialog. The units are saved with the document, so you can make yourself a template with your preferred units. The default template now uses the px unit; two new templates, default_mm and default_pt, are added. The document units:
    • apply to the rulers and the statusbar coordinates (previously unchangeable);
    • are preselected in all unit menus (such as in the Selector controls bar);
    • apply to the grid; now the grid lines are 1 document unit apart, unless you change that in the Document Preferences.
  • The pixels (px) unit is added to unit menus. This is what is called "user unit" in the SVG specification, and in SVG code it is written either with the px suffix or (more often) without any suffix. Inkscape converts most dimensions to user units when writing them to SVG, and now you can use this unit via the GUI as well. Note however that the conversion ration from px to absolute length units may vary in different SVG renderers and different output media (e.g. Inkscape uses px/pt = 0.8), so you should not mix px and absolute units in the same document. Normally, you will only need absolute units if your design is to be printed on paper.
    • The base zoom of the display is changed by a factor of 1.25 so that now at 100% zoom, one px unit corresponds to one screen pixel (previously one pt corresponded to one screen pixel). This is a better match for other SVG renderers which also display px 1:1 at the default zoom. Unfortunately, this means that all old Inkscape SVG files with saved zoom will now open at 25% closer zoom (this is a one-time annoyance: once you resave the file by version 0.41, the zoom will be preserved again).
    • On export, if you want one px to correspond to one bitmap pixel, use the export resolution of 90 dpi. This resolution is now the default.
    • Finally, the document units in the default template are now px as well. We believe this is more convenient as the majority of our users work with screen graphics, not for print.
  • Icon theming is now possible using the inkscape preferences directory. By putting "icons.svg" (or individual SVG files with the icon's name) in ~/.inkscape/icons/, local icon themes will be used. Any icons not found in the user "icons" directory will fall back to be loaded from the installed default icon set.
  • In Selector, the statusbar now reports not only the number of selected objects but also the number of layers in which they are selected and, if there's only one, the name of the selection layer.
  • Backspace now works as well as Del for deleting objects or nodes.
  • The page background color is now shown across the entire canvas, not in the framed page only as before.
  • Pattern editing handles are easier to remember and to tell apart from shape handles: pattern move handle is a cross, rotate handle a circle, and scale handle a square.

Documentation, translations, examples

  • Translation code was set up to properly include localized plural support, letting languages that have more than one plural from to operate correctly.
  • Added French translation of "Keys and Mouse" chart.
  • Added Slovenian translation of "Calligraphy Tutorial".
  • Added Slovenian translation of "Shapes Tutorial".
  • Added several new tips to the "Tips and tricks" tutorial.
  • Three new example files are added, demonstrating various patterns created with the Tile Clones feature.
  • The following translations were updated since 0.40: Catalan, French, German, Hungarian, Italian, Norwegian Nynorsk, Serbian, Slovenian, Spanish, Ukrainian.

Important bugfixes

  • Long freezes that happened on Windows and less frequently on Linux during opening files, typing text, ungrouping, etc. were tracked down to a bug in the boehm garbage collector library. You'll now need version 6.4 of boehm gc which has this bug fixed. Static RPMs and Windows builds at our site use the version 6.4.
  • Numerous bugfixes were done to handling non-ASCII file paths, both on Windows and on Linux.
  • The crash upon releasing a shape handle, which happened on FreeBSD and some versions of Windows, is fixed.
  • Using GTK Input Methods for typing text, such as Chinese or Korean, used to crash or misbehave; now fixed.
  • Hidden objects are now properly hidden on export and in print.
  • A bad memory leak is stopped in the pattern fill code.
  • The counterintuitive 90 degrees rotation of PS/EPS output is eliminated; now the page is rotated into landscape orientation only if the width of the drawing exceeds printable page width. Later a GUI facility for controlling page orientation will be added.
  • The size of the imported bitmaps was wrong by a factor of 0.8, now fixed.
  • Copying from or pasting into transformed groups now preserves the visible transform of the objects, and pasting style preserves the visible font size and stroke width regardless of source and target transforms.
  • Pasting objects copied from different layers now correctly preserves their z-order.
  • Switching units in the Stroke style tab was broken when more than one object is selected.
  • Markers were lost on export to plain SVG due to missing overflow property.
  • Most paper sizes in Document Properties were slightly off; now the list is cross-checked and expanded.
  • Inkscape SVG documents no longer include DOCTYPE declaration with an URI of an SVG DTD; this DTD would not be able to validate our documents anyway (due to extension elements), and was just useless.
  • In node tool, pattern editing handles are now displayed for paths too (previously only for shapes).
  • Many small CSS conformance issues are addressed.
  • Significant speedups achieved in some operations, notably document loading (the difference may be more than 2x for large documents).


Internal progress

  • Transforming a text object now embeds the scaling component of the transform into the text's font size(s). This means that after a uniform 2x scale of a text with font-size: 10pt, you get a 20pt text, not 10pt text with a transform= attribute as before. However, so far this works only for uniform scaling; after scaling a text non-uniformly, its visible letter height may not correspond to its font-size.
  • The last remaining pixmap icons were eliminated. Now all icons used by Inkscape are SVG.
  • All the manual xmlns declarations are removed from the code; instead, they are now generated automatically and inserted into the output document on save.
  • All of SPRepr's data fields are made private, direct accesses are replaced with calls to the appropriate accessor functions.

Known issues

  • Markers do not take the color of the stroke they are attached to.
  • Neither markers nor dash patterns survive the Stroke to Path command.
  • Windows version still cannot use external binaries for extensions (such as AI import).
  • In Hebrew text, placement is wrong for any final (leftmost) character in the string (this was also broken in 0.40).
  • Inkscape does not read external DTD subsets referenced from SVG files. Normally this is not a problem, but if a file relies on an external subset for namespace declarations (e.g. for the XLink namespace), this will fail.
  • To save in SVGZ format on windows, gzip executable must be locatable in the path. Download it e.g. from www.gzip.org. The extension dependancy is gzip, not gzip.exe, so the file will need renaming.
  • The Export Bitmap dialog cannot save to paths with non-Latin characters in it.

Other releases