From d89df8016758666de7a4c20e60c0de6d15718ab1 Mon Sep 17 00:00:00 2001 From: gouldtj Date: Sat, 21 Nov 2009 04:05:26 +0000 Subject: [PATCH] Grabbing news from the wiki --- NEWS | 1484 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 1483 insertions(+), 1 deletion(-) diff --git a/NEWS b/NEWS index e919c7486..2b9cc5c3d 100644 --- a/NEWS +++ b/NEWS @@ -1 +1,1483 @@ -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 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. + +