Inkscape Release Notes
----------------------
Please see the Inkscape website for the latest news about the project,
or the ChangeLog for further details about releases. This file contains 
the release notes for the current release.



                                 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.

Previous releases

     * ReleaseNotes040 (http://inkscape.org/cgi-bin/wiki.pl?ReleaseNotes040)
     * ReleaseNotes039 (http://inkscape.org/cgi-bin/wiki.pl?ReleaseNotes039)
     * ReleaseNotes038 (http://inkscape.org/cgi-bin/wiki.pl?ReleaseNotes038)
     * ReleaseNotes037 (http://inkscape.org/cgi-bin/wiki.pl?ReleaseNotes037)
     * ReleaseNotes036 (http://inkscape.org/cgi-bin/wiki.pl?ReleaseNotes036)
     * ReleaseNotes035 (http://inkscape.org/cgi-bin/wiki.pl?ReleaseNotes035)

