https://wiki.inkscape.org/wiki/api.php?action=feedcontributions&user=NeoPhyte+Rep&feedformat=atomInkscape Wiki - User contributions [en]2024-03-29T05:18:48ZUser contributionsMediaWiki 1.36.1https://wiki.inkscape.org/wiki/index.php?title=Hackfest2015_Topics&diff=96721Hackfest2015 Topics2015-04-29T22:18:40Z<p>NeoPhyte Rep: /* Accessibility */ Changed to Accessible Graphics and Language Support which are wiki style links to same site.</p>
<hr />
<div><br />
Please add topics you would like to discuss or work you would like to see done at the hackfest.<br />
<br />
Other pages: [[Hackfest2015|Hackfest 2015]], [[Hackfest2015 Attendees]].<br />
<br />
<br />
== Agenda ==<br />
<br />
# Introductions: '''DONE'''<br />
# Create Agenda: '''DONE'''<br />
# Hacking:<br />
## 2geom: sync '''IN PROGRESS'''<br />
## Tackle GTK3 flickering bug. '''IN PROGRESS'''<br />
## Selection - boost multiindex<br />
# Bugs<br />
# Code Review '''DONE'''<br />
# Code Documentation<br />
# Roadmap Review '''DONE'''<br />
# Accessibility <br />
<br />
* What do we want to accomplish?<br />
* How should we record this meeting?<br />
* How can others participate?<br />
** IRC<br />
** Google Hangouts?<br />
<br />
== Work pages ==<br />
<br />
* [[Killing Livarot]]<br />
<br />
== Discussions ==<br />
<br />
=== SVG 2 strategy (Tav) ===<br />
<br />
* Overview/rundown of relevant new SVG2 features. What are they, what will need done to implement them? '''DONE'''<br />
* How do we handle fallbacks?<br />
* When do we add things to the GUI? (When three browsers offers support?)<br />
<br />
=== Program flow (Tav) ===<br />
<br />
* Diagram how Inkscape behaves/should behave on:<br />
** Opening a file.<br />
** Changing a style item (e.g. 'fill').<br />
** Moving a node.<br />
** Deleting an item.<br />
*** Comment: Deleting an item causes Inkscape to create a new SVG document with containing the deleted item to allow pasting.<br />
<br />
==== Motivation ====<br />
<br />
<p style="width:60em">Add a few random print statements in Inkscape and you'll see that Inkscape visits certain functions more often than one would think it should. Having well defined diagrams will allow developers to clean up existing code and to better understand what needs to be done to add new features. I've noticed that we suffer from "cargo cult programming" where people add functions without fully understanding if they are truly needed.</p><br />
<br />
* Ideas<br />
** Better, easily referenced API documentation<br />
** Code reviews<br />
** `linux perf` can be used to identify performance critical functions<br />
<br />
==== Comments from Krzysztof ====<br />
<br />
This is a pretty big problem right now. The flow looks like this:<br />
<br />
Something is updated in the SP tree<br />
# updateRepr() is called<br />
# new XML is written<br />
# XML modification listeners fire<br />
# SP tree is re-read from the XML<br />
# A recursive call to update() is made<br />
# Each of those update calls updates the rendering tree in turn.<br />
<br />
As a result, changing the document height triggers a full update of<br />
the rendering tree, even though almost nothing changes.<br />
<br />
The current approach makes it impossible to introduce errors that<br />
cause the XML and the SP tree to go out of sync, at the cost of<br />
performance. We could discuss what to do about this.<br />
<br />
=== Refactoring ===<br />
<br />
<p style="width:60em">Can we decide on a roadmap to work with new APIs and compilers? How do we minimize breakages for downstream users? Can we balance risk with reward? How does each migration benefit the developers, package maintainers and end users?</p><br />
<br />
Some possible changes to discuss:<br />
<br />
* Moving to C++11 (AV)<br />
** code cleanup/maintainability<br />
** improved data structures/templating<br />
* Adding a hard Cairo 1.14 dependency (AV)<br />
** Fix bitmap downscaling issue<br />
* Gtk+ 3 migration (AV)<br />
** Get rid of lots of conditional code<br />
** Get rid of embedded GDK library fork<br />
** Some "cleaner" API available<br />
** How do we handle canvas flickering/rendering issues?<br />
* C++ification (AV)<br />
** Migrate widgets/dialogs to Gtkmm<br />
** Get rid of popt<br />
** Get rid of GObject usage<br />
* Removing 3rd party Library dependencies from version control (AV)<br />
* Change how we're utilizing 3rd party libraries (Josh)<br />
** Stop using Poppler internals, use the proper API via poppler-glib (https://bugs.launchpad.net/inkscape/+bug/239544)<br />
** Use newer Pango-Cairo text/glyph APIs (https://bugs.launchpad.net/inkscape/+bug/420822)<br />
* Unnecessary profileration of namespaces (Krzysztof)<p style="width:60em">Things like Inkscape::UI::View::View are excessive. I cannot imagine a scenario where we would need more than 2 levels of namespaces. Everything UI-related should sit in Inkscape::UI, without separate namespaces for widgets and dialogs which only serve to increase typing.</p><br />
* Directory structure. (Krzysztof)<p style="width:60em">Let's make a directory for the SP tree, and namespace it as Inkscape::SVG (or maybe Inkscape::DOM).</p> <br />
* Identify clever geometry code which can be cleaned up and moved to 2Geom. (Krzysztof)<br />
<br />
=== Accessibility ===<br />
<br />
<p style="width:60em">Amelia Bellamy-Royds, an SVG WG member, will be giving a talk at LGM on making SVGs accessible. She is available Monday afternoon and/or Tuesday to talk to us about how we can make it easier in Inkscape to make accessible SVGs. Things we can do include:</p><br />
<br />
* Automatically generating alt text when converting from Text to Path. '''Tav has pushed a fix -- the text will be saved as aria-label attribute.'''<br />
* Making it easy to add [http://www.w3.org/TR/wai-aria/ common ARIA attributes] (Didn't really discuss this)<br />
* Adding language metadata (so that screen readers know what they're reading, but also for other benefits)<br />
<br />
I've summed up some of the discussion in two wiki pages: [[Accessible Graphics]] and [[Language Support]]. See also <br />
<br />
* [https://bugs.launchpad.net/inkscape/+bug/170340 Bug #170340, "metadata: need User Interface for SVG accessibility features"] <br />
* [https://bugs.launchpad.net/inkscape/+bug/1249423 Bug #1249423 "Properly support the <switch> element and the "systemLanguage" attribute"]. <br />
<br />
Both of these bug reports existed, but they've been updated with new comments and references.<br />
<br />
=== Misc ===<br />
<br />
Topics from Inkscape <span style="font-style:italic">g+</span> Page<br />
<br />
* Style editor<br />
* CMYK<br />
* GTK3<br />
* Native OS X<br />
* Animation<br />
* PDF Import, text as path (semi-broken)<br />
* Text flow<br />
* Swatches<br />
* Geometric bucket tool (Paid development?)<br />
<br />
<br />
=== Testing ===<br />
<br />
* Discuss Jenkins/unittesting/rendertesting.<br />
* Unit tests: Google Test/Boost. '''DONE''': We decided to go with Google Tests based on it being better with templates, a bit less verbose, and its use in lib2geom unless there is a major outcry on inkscape-dev.<br />
<br />
=== Website (DoctorMO) ===<br />
<br />
* How do people feel about it's current functions<br />
* How should we move it forwards?<br />
* Plans for mailing list migrations.<br />
* Getting developers set up with local copies for hacking.<br />
* Modifying wiki style (p {width: 60em}).<br />
<br />
=== Roadmap Planning (Bryce) ===<br />
<br />
Prioritize feature and infrastructure development work for next several releases.<br />
'''DONE''': See [[roadmap]].<br />
<br />
=== Fundraisers (Bryce) ===<br />
<br />
Brainstorm future fundraising ideas.<br />
<br />
=== Community Development (Bryce) ===<br />
<br />
* Championing FOSS ideals generally<br />
* Expanding userbase<br />
* Building up a strong evangelist user community<br />
* Recruiting newbie developers, encouraging involvement, and mentoring<br />
* Re-connecting with old timers<br />
* Promoting existing developers into leadership roles<br />
<br />
=== Design new plugin/extension system ===<br />
<br />
== Hacking ==<br />
<br />
=== Invert coordinate system (Tav) ===<br />
<br />
<br />
<p style="width:60em">If there was ever a good moment to do the coordinate system flip, this is it. (should coordinates be configurable in relation to the canvas?)</p><br />
<br />
==== Comment from Krzysztof ====<br />
<br />
<p style="width:60em">We need to decide whether we want to keep the 3D Box at all costs, or is the coordinate system inversion a more important goal than having 3D Box. Being unable to fix 3D Box was the main reason I didn't commit this change when I initially made it. FWIW, I think the 3D Box tool is nearly unusable and needs to be rewritten from scratch. It also pollutes the entire codebase with special handling for its perspective elements, indicating faulty<br />
design.</p><br />
<br />
=== Harfbuzz: Better CSS support and User Fonts (WOFF) ===<br />
<br />
<p style="width:60em">There will be a Harfbuzz documenting session taking place at the same time as the Inkscape Hackfest. Maybe we can get some expertise on how to improve our font handling. CSS now has much more sophisticated ways of selecting alternative glyphs that Harfbuzz may support. Also, it would be nice to be able to use user fonts, in particular WOFF fonts, into Inkscape. At the moment we rely on Pango for all our font related stuff and Pango's support for new CSS stuff and for user fonts is negligible if completely non-existent.</p><br />
<br />
=== Swatches ===<br />
<br />
Merge GSoC swatches dialog.<br />
<br />
<p style="width:60em">Tomasz Boczkowski has started working on updating it. He'll probably have some C++'ification done during the hackfest so we can do a code review.</p><br />
'''REVIEW DONE''' Mostly some minor white-space issues.<br />
<br />
=== Make Systems ===<br />
<br />
'''UNDER REVIEW''': Alex is doing an independent comparison to see if the simplicity of WAF outways the popularity of CMAKE.<br />
<br />
==== CMake (Bryce) ====<br />
<br />
<p style="width:60em">A while back someone made a valiant attempt to get Inkscape built with cmake, but if this ever worked it's bitrotted to where it doesn't work presently. Hack it back into working shape on Linux, Mac, and Windows. Write up evaluation.</p><br />
<br />
==== WAF (Krzysztof) ====<br />
<br />
<p style="width:60em">I would rather use Waf. CMake has its own, sloppy scripting language; writing anything moderately complex in it is an exercise in frustration. By contrast, Waf scripts can leverage all the mighty power of Python.</p><br />
<br />
<p style="width:60em">Killer feature: since Waf stores a database of what was compiled, it support wildcards correctly. As in, when the set of files matched by a wildcard in the build script changes, it will automatically recompiles the correct files, without the need to modify build scripts. CMake cannot do this, because it just generates makefiles, and Make cannot support wildcards in this manner because it does not have any persistence beyond what is stored in the file system.</p><br />
<br />
Other things we could easily do with Waf are:<br />
* render test integration<br />
* automatically updating the AUTHORS file and the authors tab in the About dialog from Bazaar logs<br />
* creating a completely standalone executable (using e.g. GResource to store data files in the executable itself)<br />
<br />
=== Hardware Acceleration Experimentation (Bryce) ===<br />
<br />
Create experimental branch using Cairo-GLX as the rendering backend. Evaluate rendering performance. Brainstorm follow up work.</div>NeoPhyte Rephttps://wiki.inkscape.org/wiki/index.php?title=Language_support&diff=96716Language support2015-04-29T22:14:49Z<p>NeoPhyte Rep: moved Language support to Language Support: Wiki convention</p>
<hr />
<div>#REDIRECT [[Language Support]]</div>NeoPhyte Rephttps://wiki.inkscape.org/wiki/index.php?title=Language_Support&diff=96711Language Support2015-04-29T22:14:49Z<p>NeoPhyte Rep: moved Language support to Language Support: Wiki convention</p>
<hr />
<div>Improving Inkscape support for internationalized/multi-lingual SVG<br />
<br />
There are two distinct language settings:<br />
* the user's preferred language(s) (affects systemLanguage conditional test)<br />
* declaring the document/element language (xml:lang); for SVG 2, this would be used as a conditional switch for <title> and <desc><br />
<br />
<br />
== systemLanguage & conditional tests ==<br />
<br />
* The systemLanguage attribute is used to only show certain content if it matches the user's preferred language, usually within a `<switch>` element. In a browser, the user's preferred languages are the same as those sent in HTTP headers.<br />
<br />
=== Read support ===<br />
<br />
* Support for displaying conditional SVG is implemented within conditions.cpp, which uses SPDocument.getLanguage() (document.cpp) to find the user's preferred language (as set in the preferences dialog)<br />
** BUG: If the user's preference setting is "System Default" (the default), it does not match the actual language code! [https://bugs.launchpad.net/inkscape/+bug/1249423 See Bug #1249423]<br />
** possible bug: According to the specs, the user's preferred language shouldn't be a document property, it should be a UI property. However, if Inkscape in the future implements ways to ''create'' <switch> elements, you would definitely want to swap between languages on a document basic (instead of resetting their UI settings and restarting Inkscape).<br />
** Potential enhancements: <br />
*# The user should be able to set alternate languages in preferences, similar to how browsers set multiple values for the HTTP Accept-Language header (and use the same values for <switch>).<br />
*# The user should be able to temporarily swap the preferred language for any document view, to see how the graphic looks like for others.<br />
*# If the conditional tests all fail within a <switch>, the user could be prompted to select which language they prefer.<br />
<br />
=== Write support ===<br />
<br />
* No UI support currently for creating <switch>, this would all be enhancement<br />
* Best use case would be within individual <text> elements, to switch between languages<br />
* would need a way to swap the canvas view to show the different languages (e.g., temporarily swap the user preferred language for that document)<br />
* would need a way to specify which text should be used as default, and then to store the language information (as xml:lang probably). In the SVG markup, the only way to create a default is to give it as the last element in a <switch>, and ''don't'' give it a systemLanguage attribute<br />
<br />
<br />
== xml:lang ==<br />
<br />
* The xml:lang attribute defines the language of text content (visible text or alternative text). It is used in advanced text layout, by screen readers, and by web translation tools.<br />
<br />
=== Read support ===<br />
<br />
* For reading existing files, this is relevant for<br />
*# passing information to OS Accessibility APIs<br />
*# rendering text in certain scripts where the Unicode characters map to different glyphs depending on the language<br />
* Would need some typography experts to confirm that there is already support in underlying text layout libraries (HarfBuzz/Pango), and what info needs to be forwarded to them to get the correct rendering.<br />
* The code for figuring out the current language is already used in CSS to match the :lang() pseudo-selector (cr-sel-eng.c). If there are no bugs there, it can hopefully be generalized for finding out the language code and passing it to text layout.<br />
<br />
=== Write support ===<br />
<br />
Basic support:<br />
* There should be a document-level property that can be set (e.g., xml:lang attribute on the <svg> element) [https://bugs.launchpad.net/inkscape/+bug/170340 see Bug #170340]<br />
* Currently, there is a language field in the document metadata, but this is not used for xml:lang.<br />
* By default, the document language should be the user's preferred language at the time the document is created, but it should be easy to change.<br />
* Ideally, you should be able to set xml:lang on individual elements or groups, in order to define multi-lingual documents.<br />
* For text elements, this could be in the font & text dialog, but more generally it would be in object properties<br />
* However, you should also be able to set language on a <tspan>, so that would mean allowing the user to select some text and then assign a language value.<br />
* Would want to have a "use document language" checkbox (with the current document language setting clearly stated); if unchecked, you would then have a drop-down list/text box to set a different language for this element. Technically, this shouldn't be "document" language, but "parent element" language (since you could set language on groups or similar); not sure what a better wording would be.<br />
<br />
Making use of language for added features:<br />
* Once Inkscape is able to keep track of the document language, and the user is able to set the document language, then it would be possible to implement spelling/grammar checking or other language-based features.<br />
* For spellcheck, there is even a functionality in GTK: see http://wiki.inkscape.org/wiki/index.php/SpellCheckForTextNodes. text-edit.cpp has a TODO to use a computed value of xml:lang in gtkspell_set_language().<br />
<br />
Multi-lingual accessible text:<br />
* For SVG 2 multi-lingual title/desc, you would need a way to <br />
*# add additional title/desc in the object properties dialog, <br />
*# set the language for each (this should be *required* for having multiple title/desc elements) and <br />
*# specify which one is the default<br />
* For title/desc, the default *would* have a lang attribute (note, SVG 2 spec currently uses `lang` not `xml:lang`), and would be the *first* such child element in the DOM.<br />
<br />
<br />
[[Category:Developer Discussion]]</div>NeoPhyte Rephttps://wiki.inkscape.org/wiki/index.php?title=Accessible_graphics&diff=96706Accessible graphics2015-04-29T22:13:19Z<p>NeoPhyte Rep: moved Accessible graphics to Accessible Graphics: Wiki convention</p>
<hr />
<div>#REDIRECT [[Accessible Graphics]]</div>NeoPhyte Rephttps://wiki.inkscape.org/wiki/index.php?title=Accessible_Graphics&diff=96701Accessible Graphics2015-04-29T22:13:19Z<p>NeoPhyte Rep: moved Accessible graphics to Accessible Graphics: Wiki convention</p>
<hr />
<div>How can Inkscape become the ideal tool for creating accessible SVG?<br />
<br />
=== Background Links ===<br />
<br />
<!-- dead link, not sure where this was supposed to point<br />
* inkscape [https://sourceforge.net/tracker/index.php?func=detail&aid=993367&group_id=93438&atid=604309 rfe]<br />
--><br />
* a [http://www.peepo.co.uk/pmwiki/pmwiki.php/Main/SVG rant] (dead link) on SVG and Accessibility given at the latest (year?) London SVGUG meeting with plenty of links. some concepts were addressed and alpha proof of concept code developed.<br />
* Links to primary [http://www.learningdifferently.com/develop/svg.html documentation] on creating accessible SVG<br />
* SVG and accessibility (somewhat out of date): [http://www.w3.org/TR/SVG-access/ authoring guidance], [http://www.w3.org/TR/SVG11/access.html SVG 1.1 appendix]<br />
* Work of the W3C Accessibility task force: [http://www.w3.org/WAI/PF/svg-a11y-tf/ work statement], [https://www.w3.org/wiki/SVG_Accessibility wiki]<br />
<br />
=== What Inkscape Does Well ===<br />
<br />
Some accessibility features of SVG Inkscape inherits by default, such as having text stored as machine-readable text. Others require extra effort.<br />
<br />
As of 0.91, Inkscape:<br />
<br />
* Allows users to set alternative text (<title> and <desc>) for graphics content in the object properties dialog.<br />
* Sets the document-level <title> element if the user has set a title in the metadata<br />
* Supports logical grouping of elements, and allows <title> and <desc> to be set on the group<br />
<br />
Recently pushed to the dev branch was a fix so that text-to-path stores the original text content in an aria-label attribute, which will go a long way to preserving the accessibility of that content.<br />
<br />
=== Doing Better ===<br />
<br />
There is currently a [https://bugs.launchpad.net/inkscape/+bug/170340 bug report regarding adding UI support for the core SVG accessibility features].<br />
<br />
Two main issues (not yet implemented) are covered by that bug report:<br />
<br />
* A document-level title should be required, but it is currently hard to set and there is no prompting for it.<br />
* The language of the text (visible or alternative) needs to be easy to specify with the xml:lang attribute.<br />
<br />
Language issues can get rather complex, and have benefits beyond accessibility, so there [[Language_support | is a separate wiki page for them]].<br />
<br />
More advanced issues to consider:<br />
<br />
* Ensuring that text elements are preserved in a logical reading order. This will be easier once z-index is supported, for now the aria-flowto attribute could be used to define the reading order. However, there would need to be a user interface for setting the reading order -- the order that elements are added to the graphic may not be the logical reading order.<br />
* Adding WAI-ARIA widget roles for anything that has interactive scripting added to it.<br />
<br />
[[Category:Developer Discussion]]<br />
[[Category:Needs Work]]</div>NeoPhyte Rephttps://wiki.inkscape.org/wiki/index.php?title=User_talk:TodorImreorov&diff=96536User talk:TodorImreorov2015-04-26T15:58:50Z<p>NeoPhyte Rep: Added ==NewFeatureProposals== section</p>
<hr />
<div>==NewFeatureProposals==<br />
Please note the blue banner at the top of the NewFeatureProposals article,"This page is outdated. It is kept for historical reasons, e.g. to document specific decisions in Inkscape development." Also note the first sentence of the first paragraph of the article, "Please think twice when you edit this page: we use Launchpad's blueprints for all this now." If you want your proposal taken seriously by the Inkscape developers, go to https://blueprints.launchpad.net/inkscape/, register for an account, and add your proposal to the list there.<br />
<br />[[User:NeoPhyte Rep|NeoPhyte Rep]] 15:58, 26 April 2015 (UTC)</div>NeoPhyte Rephttps://wiki.inkscape.org/wiki/index.php?title=Roadmap&diff=93716Roadmap2014-11-23T21:24:04Z<p>NeoPhyte Rep: /* Random Ideas / Requests / Needs */ have now -> now have; installier -> installer</p>
<hr />
<div>This is a working document showing specific near-term tasks needed for achieving the numbered milestones. It is '''not a wishlist''' of features to be included in future releases. Because people often work on whatever they feel like, only the current and current+1 releases should be taken seriously. Beyond that is mainly conjectural.<br />
<br />
''See [[OldRoadmap]] for milestones that have already been achieved.''<br />
<br />
=== Inkscape 0.91 ===<br />
<br />
0.91 will be a longer cycle focused on refactoring and new features.<br />
<br />
* (DONE) <del>Merge GSoC 2010 work</del><br />
* (DONE) <del>Evaluate changing the numbering scheme to a date-based one, or setting more realistic goals for major (1.0, 2.0) releases</del><br />
* (DONE) <del>Port renderer to Cairo (Krzysztof - GSoC 2010)</del><br />
* (DONE) <del>Completely remove libnr</del><br />
<br />
=== Inkscape 0.92 ===<br />
<br />
=== Inkscape 0.93 ===<br />
<br />
=== Inkscape 0.94 ===<br />
<br />
=== Inkscape 0.9x ===<br />
<br />
=== Inkscape 1.0 ===<br />
<br />
=== Inkscape 1.x ===<br />
<br />
=== Milestone [Future] ===<br />
<br />
<br />
=== Random Ideas / Requests / Needs ===<br />
<br />
Note this list is unordered, unapproved, and unofficial. Feel free to add new ideas worth considering for the roadmap.<br />
<br />
* Replace VCS.<br />
* Replace Automake Build System.<br />
* Greatly expand Unit test framework.<br />
* C++11. Initially focus on widely supported C++11 features, then later adopt remaining features as they become widespread.<br />
* Multi-page documents and parent/child document references<br />
* Better modularization<br />
** Switch to using libcroco as a regular dependency (not embedded in our codebase)<br />
** Switch to using libgdl as a regular dependency<br />
** Break libavoid out to its own library<br />
** Break libcola out to its own library<br />
** Break libdepixelize out to its own library<br />
** Break libnrtype out to its own library<br />
** Break libuemf out to its own library<br />
** Break libvpsc out to its own library<br />
* [[SVG2]] support (with proper SVG 1.1 fallbacks)<br />
* Improve support for SVG switches: the first recognized element in a switch should appear directly in the SP tree, not as a child of the switch element.<br />
* Using the above mechanism, make flowed text SVG-compliant.<br />
* Improve support for changing the name of the XML element node in response to SP tree changes.<br />
* Introduce a backwards compatibility mechanism that will allow us to modify the XML representation of editing info. This is needed to bring the desktop coordinate system in line with SVG due to guideline and 3D box problems (they save desktop coordinates in the XML). This can be done either at the SP tree level or by moving to a SAX-based parser which updates the editing information as the document is parsed.<br />
* Make the Windows uninstaller work (reevaluate this, we now have msi installer for win32 and Win64)<br />
* make msi Windows install multilingual<br />
* Evaluate pdf exporter to join features from scribus Export<br />
* [[GtkMMification]]<br />
* XML refactoring: Remove direct manipulation of XML from as many places as possible and replace it with SP tree methods.<br />
* Hardware acceleration: make use of modern GPUs to speed up rendering.<br />
* Live path effects: investigate extending to cover generic vector transformations (vector effects). Provide live versions of several destructive operations: boolean ops, stroke to path, text to path, etc.<br />
* CSS support?<br />
* Animation support.<br />
* D-Bus scripting API. (Merge GSoC work from 0.48 timeframe?)<br />
<br />
[[Category:Developer Documentation]]</div>NeoPhyte Rephttps://wiki.inkscape.org/wiki/index.php?title=Multipage&diff=93704Multipage2014-11-23T20:01:51Z<p>NeoPhyte Rep: /* Multipage in the SVG 1.2 standard (dropped ) */ (dropped ) -> (dropped)</p>
<hr />
<div>== Multipage support ==<br />
<br />
Currently, Inkscape does '''not''' have multipage support. The main reason is that the current SVG standard does not support multipage documents. This feature was proposed in the SVG revision 1.2, but for now got dropped in the next coming version SVG 2.0.<br />
<br />
[[http://wiki.inkscape.org/wiki/index.php/SVG_WorkingGroup#Multipage_document_support SVG 2.0 draft on multiple pages]]<br />
<br />
[[http://www.w3.org/TR/2004/WD-SVG12-20041027/multipage.html SVG 1.2 proposal for multiple pages]].<br />
<br />
This page discusses how the feature can (or should) be implemented:<br />
<br />
* There should be multiple pages within a document.<br />
* There are two contrary implementations in the real world:<br />
** distribute pages around the graphics elements - the Adobe way<br />
** distribute graphics elements around the pages - how Corel does it and how SVG proposes to do it<br />
* New problems arise when saving to singlepage file formats (jpg, png, etc).<br />
<br />
== Multipage in the SVG 1.2 standard (dropped) ==<br />
* All pages are contained within a single pageSet element. A pageSet may contain any number of page elements. Each page element defines a single container of graphical objects. <br />
* In a screen-based user agent, only one page element is displayed at any time on the main canvas.<br />
* The SVG content typically defines a page dimension or aspect ratio in the topmost svg element and its viewBox. The viewBox transformation applies to printed SVG in the same way as screen display.<br />
* The orientation of each page element can be controlled by the page-orientation property. This enables the content to define whether a portrait or landscape mode is used for display and printing.<br />
<br />
== Multipage à la Corel ==<br />
* There is a list of pages as tabs on the lower side of the drawing window.<br />
* All pages share the same page properties.<br />
* A '''master page''' contains elements that are visible on all other pages: drawings, markers<br />
* In an object browser, pages and layers are integrated.<br />
<br />
See [[http://wiki.inkscape.org/wiki/images/Corel_pages.PNG this screeshot]].<br />
<br />
== Multicanvas (similar to multi-Artboard on adobe illustrator cs4). ==<br />
Multicanvas solution is not the same as pages and can't follow the SVG pageSet spec. The multicanvas, as the multi-artboard, can (frequently must) have different sizes and can be freely placed on the 2D space. A canvas may overlap a part other canvas.<br />
<br />
Each canvas can be printed independently and that feature helps to unify the art conception for the most applications of an art project.<br />
<br />
* see this adobe tutorial [[http://www.adobe.com/designcenter/illustrator/articles/lrvid4016_ai.html here]]<br />
* there is an [[http://www.vimeo.com/2503097 video]] by Valessio Brito presenting an UI mockup how multipage can be handled in inkscape<br />
<br />
The multicanvas feature may be incompatible with the multipage feature, so, the user may chose the working mode on the "document properties" dialog. The default must be multipage and that will show the page tabs on the interface and the "new page" button, when selecting multicanvas that will show the canvas controls and the "new canvas" button.<br />
<br />
Feature request registered: https://bugs.launchpad.net/inkscape/+bug/671081<br />
<br />
== Implementation ==<br />
* Some planning was done in [http://www.nabble.com/Multipage-plan-td16394431.html this thread].<br />
* All export dialogues must get extra properties in order to handle multiple pages, e.g. for specifying not only the elements, but also the pages to be exported.</div>NeoPhyte Rephttps://wiki.inkscape.org/wiki/index.php?title=Talk:Multipage&diff=93698Talk:Multipage2014-11-23T19:58:13Z<p>NeoPhyte Rep: Cannot parse meaning</p>
<hr />
<div>== Dropped into 2.0? ==<br />
"but for now got dropped in the next coming version SVG 2.0."<br />
I couldn't understand whether Multipage has been dropped completely or deferred until SVG 2.0 with this wording.<br />
Perhaps,<br />
"but has been dropped in favor of incorporating Multipage support into SVG 2.0"<br />
<br /><br />
[[User:NeoPhyte Rep|NeoPhyte Rep]] 19:58, 23 November 2014 (UTC)</div>NeoPhyte Rephttps://wiki.inkscape.org/wiki/index.php?title=Multipage&diff=93692Multipage2014-11-23T19:53:35Z<p>NeoPhyte Rep: /* Multipage support */ comming -> coming; implementattions -> implementations; propose it -> proposes to do it</p>
<hr />
<div>== Multipage support ==<br />
<br />
Currently, Inkscape does '''not''' have multipage support. The main reason is that the current SVG standard does not support multipage documents. This feature was proposed in the SVG revision 1.2, but for now got dropped in the next coming version SVG 2.0.<br />
<br />
[[http://wiki.inkscape.org/wiki/index.php/SVG_WorkingGroup#Multipage_document_support SVG 2.0 draft on multiple pages]]<br />
<br />
[[http://www.w3.org/TR/2004/WD-SVG12-20041027/multipage.html SVG 1.2 proposal for multiple pages]].<br />
<br />
This page discusses how the feature can (or should) be implemented:<br />
<br />
* There should be multiple pages within a document.<br />
* There are two contrary implementations in the real world:<br />
** distribute pages around the graphics elements - the Adobe way<br />
** distribute graphics elements around the pages - how Corel does it and how SVG proposes to do it<br />
* New problems arise when saving to singlepage file formats (jpg, png, etc).<br />
<br />
== Multipage in the SVG 1.2 standard (dropped ) ==<br />
* All pages are contained within a single pageSet element. A pageSet may contain any number of page elements. Each page element defines a single container of graphical objects. <br />
* In a screen-based user agent, only one page element is displayed at any time on the main canvas.<br />
* The SVG content typically defines a page dimension or aspect ratio in the topmost svg element and its viewBox. The viewBox transformation applies to printed SVG in the same way as screen display.<br />
* The orientation of each page element can be controlled by the page-orientation property. This enables the content to define whether a portrait or landscape mode is used for display and printing.<br />
<br />
== Multipage à la Corel ==<br />
* There is a list of pages as tabs on the lower side of the drawing window.<br />
* All pages share the same page properties.<br />
* A '''master page''' contains elements that are visible on all other pages: drawings, markers<br />
* In an object browser, pages and layers are integrated.<br />
<br />
See [[http://wiki.inkscape.org/wiki/images/Corel_pages.PNG this screeshot]].<br />
<br />
== Multicanvas (similar to multi-Artboard on adobe illustrator cs4). ==<br />
Multicanvas solution is not the same as pages and can't follow the SVG pageSet spec. The multicanvas, as the multi-artboard, can (frequently must) have different sizes and can be freely placed on the 2D space. A canvas may overlap a part other canvas.<br />
<br />
Each canvas can be printed independently and that feature helps to unify the art conception for the most applications of an art project.<br />
<br />
* see this adobe tutorial [[http://www.adobe.com/designcenter/illustrator/articles/lrvid4016_ai.html here]]<br />
* there is an [[http://www.vimeo.com/2503097 video]] by Valessio Brito presenting an UI mockup how multipage can be handled in inkscape<br />
<br />
The multicanvas feature may be incompatible with the multipage feature, so, the user may chose the working mode on the "document properties" dialog. The default must be multipage and that will show the page tabs on the interface and the "new page" button, when selecting multicanvas that will show the canvas controls and the "new canvas" button.<br />
<br />
Feature request registered: https://bugs.launchpad.net/inkscape/+bug/671081<br />
<br />
== Implementation ==<br />
* Some planning was done in [http://www.nabble.com/Multipage-plan-td16394431.html this thread].<br />
* All export dialogues must get extra properties in order to handle multiple pages, e.g. for specifying not only the elements, but also the pages to be exported.</div>NeoPhyte Rephttps://wiki.inkscape.org/wiki/index.php?title=International_and_Local_Communities&diff=91364International and Local Communities2014-08-27T21:20:50Z<p>NeoPhyte Rep: Undo revision 91262 by Brynn (talk) Loss of this information is not acceptable.</p>
<hr />
<div>{{Other languages|en=International and Local Communities}}<br />
<br />
We collect links to user and developer communities here, both international and local ones. Feel free to extend if you have a relevant link.<br />
<br />
* English<br />
** [http://www.inkscapeforum.com Inkscape Forum - www.inkscapeforum.com] (English)<br />
** [http://v-graphic.forums-free.com Vector Graphics Forum] (English)<br />
** [http://www.facebook.com/group.php?gid=2675326577 Facebook Inkscape Group]<br />
* French<br />
** http://www.linuxgraphic.org (French)<br />
** http://www.inkscape-fr.org (French)<br />
* German<br />
** http://www.inkscape-forum.de (German)<br />
** http://www.open-draw-community.de (German)<br />
* Italian<br />
**http://www.inkscapeforum.it (Italian)<br />
* Japanese<br />
** <strike>http://inskcape.nyx.bne.jp (Japanese)</strike> Domain Error<br />
* Portuguese<br />
** http://inkscapebrasil.org (Brazilian)<br />
* Russian<br />
** http://www.linuxgraphics.ru (Russian)<br />
** http://inkscape.paint-net.ru/ (Russian)<br />
* Spanish<br />
** http://dibujalibre.blogspot.com (Colombia)<br />
<br />
<br />
[[Category:User Documentation]]<br />
[[Category: About Inkscape]]</div>NeoPhyte Rephttps://wiki.inkscape.org/wiki/index.php?title=Galleries&diff=91358Galleries2014-08-27T21:19:10Z<p>NeoPhyte Rep: Undo revision 91256 by Brynn (talk) Brynn, you need to justify the wholesale deletion before I let you do it.</p>
<hr />
<div>{{Other languages|en=Galleries|de=BenutzerGalerien|es=Galerías}}<br />
<br />
== Galleries ==<br />
<br />
=== Single-author galleries ===<br />
* [http://commons.wikimedia.org/wiki/Category:Nevit_Dilmen_Tangrams 245 Tangrams] All drawn in Inkscape. License CC 3.0 & GFDL<br />
* [http://commons.wikimedia.org/wiki/Category:Nevit_Dilmen_SVG SVG files by Nevit Dilmen] Most using Inkscape. License CC 3.0 & GFDL<br />
* [http://jelly.haifashion.eu Jellyfish Dessert] comic strip (en, de, fr)<br />
* [http://www.nojhan.net/art/index.php?tag/inkscape nojhan/art] - illustrations made with inkscape, under the (free) CC-BY-SA license.<br />
* [http://www.17deg.com/ www.17deg.com] Illustrations, button badges, t-shirts - made with Inkscape.<br />
* [http://www.pixelpalaces.com/dk/ PixelPalaces pressents: ''Dragon Knights''] Super Hero/Science fiction comic mostly drawn in Inkscape and mostly in SVGZ with interactiy and animation<br />
* [http://lpetkov.deviantart.com/gallery/?catpath=%2Fdigitalart%2Fvector lpetkov's deviantART Digital Art > Vector category]<br />
* [http://ostan-collections.net/imeeji/index.php?cat=10570 C-chan @ OS-tan Collections] Anime-style artwork produced almost entirely in Inkscape (see the "Finished Works" Gallery for best examples). Other User Galleries also contain works produced fully or partially in Inkscape.<br />
* [http://conichiwua.wordpress.com/ Conichiwua] - Inkscape art<br />
* A tiny selection of [http://marksinkscape.blogspot.com/ Mark H's] inkscape pics.<br />
* Dan Wells' beautiful gallery of Inkscape art is viewable [http://monkeydan1.deviantart.com here.]<br />
* [[simarilius]]<br />
* [http://david.bellot.free.fr/svg-cards/ SVG-cards]<br />
* [http://zubauza.deviantart.com/gallery zubauza's gallery @ deviantART]<br />
* [[Gwyn]]<br />
* [http://edeca.net/wp/graphics Free SVG nautical flags]<br />
* [http://gatonegro.ceibes.org Gatonegro deseño - gatonegro.ceibes.org]. Inkscape-based graphic design, with the occasional aid of the GIMP and Scribus. Stickers, posters, tee-shirts, pamphlets, logotypes, wallpapers... Most of them released under the Creative Commons Attribution-Sharealike. (Language: galizan.)<br />
* [http://www.bakedbabies.com Baked Babies] (a few comics created with inkscape WARNING: not for kids)<br />
* [http://mooouette.tuxfamily.org/ LaMouette] French OpenOffice.org Mascot by Ben Bois made with Inkscape<br />
* [http://panzi.deviantart.com/gallery/#SVG panzi.deviantArt.com/gallery/#SVG] (IMHO the best is [http://www.deviantart.com/view/4617948/ my orc])<br />
* [http://yeknan.free.fr/blog/index.php?2006/03/22/74-galerie-svg yeKcim] Free SVG (Wormux, Crocobox, Mille bornes,...)<br />
* [http://www.awns.com/galeri/ Galeri] A growing collection of colourful and stylish artwork. <br />
* [http://proximus1.deviantart.com/gallery/?catpath=digitalart/vector/&offset=0 Proximus1] Vector Artwork by Proximus1<br />
* [http://hrum.deviantart.com/gallery ~hrum] Konstantin R. page on deviantart with pictures made in Inkscape (most of them) and GIMP<br />
<br />
* [http://sunedonath.de/bilder.htm Sune Donath] anime wallpapers made with Inkscape incl. SVG download.<br />
* [http://www.rammbauer.nl/?cat=3 Rayart Rammbauer] some poster and cartoons made with Inkscape<br />
* [http://playful-geometer.deviantart.com | A Playful Geometer's deviantart gallery] Images made mostly using [http://sourceforge.net/projects/play-svg pLAySVG] the GPL'd python libraries for the easy generation of SVG vector graphics <br />
* [http://geronimo89.deviantart.com geronimo89@deviantART.com] He often uses Inkscape for his vector works and tries to give an impression how powerful Inkscape is.<br />
* [http://rockraikar.deviantart.com/gallery/#Inkscape rockraikar@deviantART] Few illustrations & tutorials with Inkscape.<br />
* [http://chezmodelshop.blogspot.com Modelshop] A girly french blog with illustrations made with Inkscape.<br />
* [http://plurib.us/svg_gallery/ Plurib.us SVG Art Gallery] Gallery of Inkscape created SVG art (most CC licensed).<br />
* '''By night-train:''' [http://members.home.nl/rouweler/bnt/ 30 pages of visual desktop poetry] - made with Inkscape by Marcel Rouweler <br />
* [http://quicheloraine.deviantart.com/ QuicheLoraine@deviantART] Gallery of Inkscape Art <br />
* [http://wlps-ge-stuff.ucoz.com/ WLP's Google Earth maps and stuff] &mdash; A collection of maps made with Inkscape (mostly of racing facilities) and corresponding Google Earth XPIs which typically include the map as an overlay. Some vectorized images might also be added. Forums supported by the author (Will Pittenger) are available for many topics. One discusses Will's mapping techniques with Inkscape.<br />
* [http://flsixtyfour.blogspot.com/search/label/Inkscape/ fl64]<br />
* [http://www.lamahütte.de lamahütte.de - ], [http://www.haifashion.de haifashion.de - ] and [http://www.skvmeridian.eu SKV MeriDian.eu - ] websites and information material created with inkscape, *.png rendering for IExplorer missing svg-issues, photos edited with gimp<br />
* [http://arwassa.com Arwassa.com] Girly illustrations made with Inkscape by digital artist Arwassa<br />
* [http://scrapcoloring.com ScrapColoring] Coloring pages with gradients and patterns made with Inkscape. Also in French: [http://scrapcoloring.fr coloriage]<br />
* [http://www.cubehobo.com cube hobo web comic] drawn with Inkscape on the "cube hobo" lifestyle.<br />
* [http://www.thechangeling.net The Changeling] ~~ A webcomic website created with dynamic xhtml and SVG drawn in Inkscape. Please note: contains mature graphic content not suitable for minors or people easily offended by nudity and/or violence.<br />
* [http://www.dare2dream.com/illustration dare2dream.com] - Vector illustrations by artist Russ Sharek.<br />
* [http://falconberger.com/gallery.php Falcon Berger books] - gallery of graphics by a small press using Inkscape for children's book covers and illustrations.<br />
* [http://www.floaterscomic.com/ Floaters] A web comic made entirely in Inkscape.<br />
* [http://www.bifter.co.uk/ Bifter SVG Comic] A monthly web comic made entirely in Inkscape that can also be read by the visually impaired. The website is also written with [http://en.wikipedia.org/wiki/Html5 HTML5].<br />
* [http://greatbooksforchildren.wordpress.com/our-inkscape-gallery/ Great Books for Children] - illustrations and book covers made in Inkscape.<br />
* [http://pictat.ro pictura, reproduceri, portrete, tablouri] Great paintings artwork created with Inkscape<br />
* [http://festhunter.blogspot.com FestHunter] blog about festivals with all images created with inkscape<br />
<br />
<!-- these sites not responding/working <br />
* [http://gallery.crypt.cc Crypt.cc Gallery] artwork by J, others can also upload your own work to showcase here<br />
* [http://programmer-art.org/artwork Daniel G. Taylor's Art Page]<br />
* [http://gallery.urosevic.net/svg Urke MMI]<br />
* [http://widdma.dyndns.org/wc/widdmoprev.html Widdmotions] (Not found) Smiley Set<br />
* http://www.hinterlandcasa.it An Italian svg panels & buttons based site made with Inkscape.<br />
* [http://www.grafixport.org/ grafixport] A new Forum for SVG and Inkscape Friends!<br />
* [http://mathburton.deviantart.com/ Mathburton] Inkscape vectors by James Avila<br />
* [http://i231.photobucket.com/albums/ee54/warpigelp/LOscaleEP4png.png]Low Observable Chart #1 Created in Inkscape and exported to .png by E. Palmer<br />
* [http://i231.photobucket.com/albums/ee54/warpigelp/LOscaleEP3png.png]Low Observable Chart #2 Created in Inkscape and exported to .png by E. Palmer<br />
* [http://animedieval.com/?page_id=16]A character made for inkscape by windknight<br />
* [http://www.plastik-models.com Plastik Models] A digital magazine made with Inkscape and Scribus<br />
* [http://www.mondada.net/gabriele/school/?view=geo&chap=PAV gab@school] A collection of geometry exercices for children from 12 to 14 years old (in French, SVG files available, GFDL)<br />
* [http://ludami.deviantart.com/gallery/ Ludamillion] Ludami's DeviantArt page, yup another one. Everything there (one pic so far) is Inkscaped.<br />
* [http://peileppe.wordpress.com Peileppe Production] FanArt for Wesnoth, this blog is committed to build a comic (using mainly Inkscape) based on the Battle for Wesnoth's campaign "Heir to the Throne".<br />
* [http://dodolboks.wordpress.com/galeri/ art by alikusnadi] Wallpaper and other art's made with inkscape and fixed with GIMP <br />
* [http://www.73lab.com/ art by Ayo] mixed art's made with inkscape and other open source graphic apps like GIMP or Blender<br />
* [http://www15.atwiki.jp/kirimi/ Tessellations How To] specialised to making patterns & tiling like M.C. Escher.(written in Japanese)<br />
* [http://eyedraw.eu EyeDraw] Illustrations by Piotr Godek<br />
* [http://haruwen.deviantart.com] by Mariana Sing<br />
* [http://www.davekdesign.com davek1979's artworks] all artworks by David Kopnicky<br />
* [http://viscious-speed.deviantart.com/gallery/#InkScape-Vectors] Gallery of artworks done using Inkscape<br />
* [http://sebby.cc/?page_id=14] Vector image gallery with SVG source.<br />
* [http://www.veryrobert.com/gallery veryrobert.com] Unique illustrations made with Inkscape.<br />
<br />
<br />
<br />
<br />
== SVG-oriented gallery softwares ==<br />
<br />
* [http://stripit.sourceforge.net/ Strip-it] a (web) software that permits to dynamically generate a (web) gallery for (web) comic-strips drawn in SVG (web, thus).<br />
<br />
<br />
[[Category:About Inkscape]]</div>NeoPhyte Rephttps://wiki.inkscape.org/wiki/index.php?title=MacromediaFreehand&diff=88802MacromediaFreehand2013-07-14T11:15:26Z<p>NeoPhyte Rep: /* About Macromedia Freehand */ PostScript-fueld -> PostScript-fueled</p>
<hr />
<div>Please post links to screenshots and/or criticism of this vector drawing application.<br />
<br />
==About Macromedia Freehand==<br />
<br />
Freehand was one of the first desktop vector graphics editors, during the PostScript-fueled desktop publishing boom of the 1980s, initially developed by Jim von Ehr of Altsys, but licensed for distribution to Aldus. It reverted to Altsys when Adobe purchased Aldus.<br />
<br />
Versions 1 to 3 were limited to 1 page documents. Versions since 4 were based on the NeXTstep program Altsys Virtuoso and allow multiple page over one drawing table (allowing us to see all pages just from zooming out) MacromediaMX (11) is the current version, reflecting a transition to .swf and web development over the program's lifetime.<br />
<br />
Macromedia has been bought by Adobe in 2006.<br />
<br />
== Reviews ==<br />
<br />
A review specifically comparing Inkscape 0.42.2 and FreeHand MXA: [http://mikesalsbury.com/mambo/content/view/231/1/]<br />
<br />
The most effective site which covers Macromedia Freehand is [http://www.freehandsource.com/ The Freehand Source]. (It is also a proof-by-example that Flash can be used on the Web). Whilst the author admits a little bias with such phrases as "ode to a fantastic program I've grown to love over the years", it really is a wart and all look at the program in its many versions. The (framed) pages on Tips, and Bugs are probably the most useful, but the whole site is worth looking at. <br />
<br />
See [http://www.atpm.com/7.07/freehand.shtml Review: FreeHand 10], though this might contain too little information to be useful.<br />
<br />
Note that Macromedia never really took the trouble to encourage invisible or unsanctioned copying of this product, and there are few plug-ins for it. An excellent book covering it was Olav Kvern's ''Real World FreeHand'' which was available for versions 3–8 (much of its content has been recycled into ''Real World InDesign'').<br />
<br />
Freehand is well-suited for doing precise work (such as charts, maps and diagrams), and its elegant, consistent interface allowed even people with limited artistic skills to use the program successfully.<br />
<br />
Whilst there are many individual features of Freehand that are superior, and ought to be incorporated into Inkscape, I suggest that the history of this program and its current state, is a lesson in how not to run a business unit. Having said that, Freehand has missed most opportunities for bloat, and its feature set is no greater than its loyal customers actually use, it has an excellent reputation for the quality of its Postscript output - though I suspect that Illustrator has caught up (if it were ever behind), and its file format, though binary, has allowed Macromedia's developers to produce a program which handles a lot of metadata for each object.<br />
<br />
# The Generic pointer tool is small and neat<br />
# Selection markers are unobtrusive<br />
# Envelopes are only shown on request<br />
<br />
== Features ==<br />
* Inset Tool (see below)<br />
<br />
== Screenshots ==<br />
<br />
[http://images.google.com/images?q=Freehand&btnG=Google+Search Google Image Search:Freehand]<br />
<br />
[http://www.vecpix.com/tutorials/freehand/images/fh006/chrome12.gif Freehand Inset Tool] taken from a [http://www.vecpix.com/tutorials/freehand/fh006.php Freehand tutorial] (and another [http://www.webdersleri.com/sayfa.asp?id=708&mode=print tutorial on using Inset])<br />
<br />
Please add more...<br />
<br />
<br />
== User Interface ==<br />
<br />
[http://davitjcc.tripod.com/fh10info.html Macintosh Keyboard Shortcuts for FreeHand]<br />
<br />
== Offical Links and General Information ==<br />
<br />
[http://www.macromedia.com/software/freehand/ Macromedia Freehand Official web site]<br />
<br />
[http://en.wikipedia.org/wiki/Macromedia_Freehand Macromedia Freehand at Wikipedia]<br />
<br />
== See Also ==<br />
<br />
Macromedia Freehand is the product most directly relevant to Inkscape but we can also learn from Macromedia Fireworks and [[MacromediaFlash]] which all seem to be funadmentally very vector orientated software.<br />
<br />
[[Category:Developer Discussion]]<br />
[[Category:Other Software]]</div>NeoPhyte Rephttps://wiki.inkscape.org/wiki/index.php?title=Compiling_Inkscape_on_Windows_32-bit&diff=88328Compiling Inkscape on Windows 32-bit2013-03-18T15:37:39Z<p>NeoPhyte Rep: /* Building Inkscape */ one bye one -> one by one</p>
<hr />
<div>Inkscape was originally written for Linux, but it has been ported to other platforms, including Windows. Since Windows is not POSIX compliant and doesn't have several features useful to developers (like package management), compiling Inkscape on Windows is more tedious than on Linux, but perfectly possible. To make it easier, we have compiled a package that contains all the libraries you need to build Inkscape. This reduces the effort of compiling Inkscape to: download and install 3 programs, download library package, download sourcecode, and you are ready to go.<br />
<br />
==Setting up the build environment==<br />
<br />
To develop Inkscape, you will need the following things:<br />
<br />
* [http://wiki.bazaar.canonical.com/WindowsDownloads Bazaar]<br />
* [http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html PuTTY] programs: puttygen.exe and pageant.exe<br />
* [http://tdm-gcc.tdragon.net/download TDM's GCC (MingW)], the 32 bit bundle installer is the safe choice (it's called tdm-gcc-4.something and should be one of the very first options). Recent versions (tdm-gcc-4.7+) introduce important changes in gcc and don't work with the current Inkscape devlibs (see [http://old.nabble.com/Compiling-on-Windows-7-x64-td34601489.html developpers' list discussion]). Please use the [http://sourceforge.net/projects/tdm-gcc/files/TDM-GCC%20Installer/Previous/1.1006.0/ 4.6.1 version]. For select TDM's 4.6.1 GCC: '''Uncheck''' the [''Check for updated files on the TDM-GCC server''] when install<br />
or it will always install the latest gcc<br />
* Launchpad account<br />
<br />
In order to build the installer (not needed for most developers):<br />
* [http://sourceforge.net/projects/nsis/files/NSIS%202/2.46/nsis-2.46-setup.exe/download NSIS 2.46]<br />
<br />
<br />
===Install the compiler===<br />
Run the TDM-MinGW installer:<br />
# Install in a path that doesn't contain spaces. The path 'C:\mingw' is ideal beacuse it is currently set in the <tt>mingwenv.bat</tt> file (along with the location of devlibs).<br />
#* TDM-MinGW's default install option may be to a different location. You will have to edit the <tt>mingwenv.bat</tt> file to point there.<br />
#* If you install it into another path, set the environment variable MINGW_PATH to the TDM-MinGW installation directory, e.g. the one containing <tt>README-tdm-gcc.txt</tt> (right click My Computer -> Properties -> Advanced -> Environment Variables).<br />
# Be sure to enable the "openmp support" checkbox from the components list or choose to install all packages (option "TDM-GCC recommended, All Packages" in the TDM-GCC (4.5.1) installer).<br />
#* ''All packages'' option will install support for many other programming languages.<br />
<br />
If you have an older version of TDM-GCC (older than 4.5.1?), copy the file "\lib\gcc\mingw32\bin\libgomp-1.dll" to "\bin\libgomp-1.dll" (paths relative to your installation directory).<br />
<br />
===Create your Launchpad account===<br />
If you do not have an SSH public/private key pair to identify yourself:<br />
*run the program puttygen.exe to generate an SSH key<br />
*save both its parts.<br />
Log into your Launchpad account, go to your profile page and add the public part of the generated key to the list of SSH keys. Run the program pageant.exe (you can add it to Autorun). A tray icon should appear. Right click it, select "Add Key" and pick the private key file you have just generated from the dialog. Note that you need to repeat this after every login whenever you want to access Launchpad.<br />
<br />
Now set up Bazaar. First tell it who you are, then associate with your Launchpad account. You need to use the account name (e.g. johnq), not the display name.(John Q. Public).<br />
<br />
C:\> bzr whoami "''Your Name'' <''your_real_email@example.com''>"<br />
C:\> bzr launchpad-login ''your_launchpad_account''<br />
<br />
===Install the developer libraries===<br />
Check out Inkscape Devlibs into C:\devlibs. If you check them out elsewhere, set the environment variable DEVLIBS_PATH to the path where they are. Devlibs are a bundle of all the libraries needed to compile Inkscape. If you experience any problems, make sure you have an up to date copy of those libraries and an up to date checkout of Inkscape source. To reduce the size of the download, pass the <tt>--lightweight</tt> parameter.<br />
<br />
C:\> bzr checkout --lightweight lp:inkscape-devlibs devlibs<br />
<br />
To update devlibs:<br />
<br />
C:\devlibs> bzr update<br />
<br />
All Inkscape developers can commit to the devlibs trunk. Advanced information about Devlibs, mainy useful when you want to update them to newly released versions of upstream libraries, is available here: [[Inkscape Devlibs]].<br />
You can see some infomation from [https://launchpad.net/inkscape-devlibs launchpad:inkscape-devlibs] and [http://bazaar.launchpad.net/~inkscape.dev/inkscape-devlibs/trunk/files trunk/files].<br />
<br />
== Obtaining Inkscape source code ==<br />
<br />
You can obtain released Inkscape source from a tarball. Since version 0.47 they are hosted on [https://launchpad.net/inkscape Inkscape's Launchpad page]. There are ready-made installers provided, so there's usually little reason to compile the stable version yourself.<br />
<br />
To obtain cutting edge code, check out Inkscape source from the Bazaar repository. You can also use the TortoiseBZR shell extensions to do this. The recommended way is to first create a shared repository, then check out the Inkscape branch into that shared repository. Using this setup, branching will be a lot faster.<br />
<br />
C:\src\inkscape> bzr init-repo --rich-root .<br />
C:\src\inkscape> bzr upgrade<br />
C:\src\inkscape> bzr checkout lp:inkscape trunk<br />
<br />
If you don't want to create any branches, you can skip the shared repository step.<br />
<br />
C:\src> bzr checkout lp:inkscape<br />
<br />
'''IMPORTANT:''' make sure that the path to your Inkscape source checkout does not contain spaces. Unix tools do not like them and you will end up with a lot of error messages about missing files.<br />
<br />
== Building Inkscape ==<br />
<br />
Open the command prompt, navigate to the directory with Inkscape sources. First set up some environmental variables. You only need to do this once per console session. This will define the location of your downloaded ''MinGW'' and ''devlibs'' so inkscape can find them.<br />
# Make sure you have correct '''DEVLIB_PATH''' and '''MINGW_PATH''' in system or edit the mingwenv<br />
C:\src\inkscape\trunk> mingwenv<br />
<br />
Now compile the build tool. (Try the following command one by one. if that command fails)<br />
<br />
C:\src\inkscape\trunk> g++ buildtool.cpp -o btool<br />
C:\src\inkscape\trunk> g++ buildtool.cpp -o btool -fopenmp<br />
C:\src\inkscape\trunk> g++ -DNEED_GETTIMEOFDAY buildtool.cpp -o btool -fopenmp<br />
<br />
Finally initiate the compilation. Get a coffee or take your dog out for a walk, because it will take a rather long time. If you have a multicore processor, add "-j 8" to use (for example) 8 parallel compilation threads.<br />
<br />
C:\src\inkscape\trunk> btool -j 8<br />
<br />
Once everything is done, there should be an <tt>inkscape</tt> directory that contains the Inkscape executable and libraries needed to run it.<br />
<br />
== Rebuilding ==<br />
<br />
If you have only changed a few files and want to rebuild, delete the <tt>inkscape</tt> directory and run <tt>btool</tt> again.<br />
<br />
To rebuild from scratch, execute the following sequence of commands:<br />
C:\src\inkscape\trunk> btool clean<br />
C:\src\inkscape\trunk> btool<br />
<br />
== Dealing With Build Errors ==<br />
Feel free to add any questions or answers you have in here;<br />
<br />
'''Q''' - My firewall software (Comodo's Defense+ component or similar) stopped the process continuing to the next step in the build, because I wasn't there to permit an action and it timed out. What can I do?<br />
<br />
'''A1''' - The best thing is to disable stuff like Defense+ (put it in learning mode works) because it will stop any process that is not approved, and building makes new files which can't be approved before they're built. Disabling Comodo's Defense+ does not disable your firewall, either inbound or outbound, but just the part that scans every application for suspicious operations. Other firewalls etc may vary.<br />
<br />
'''A2''' - If that doesn't suit, often you can simply run btool again and wait for Defense+ (or similar) to ask for approval for the process, and it will then continue as normal with the build. But remember that approving all the processes involved in the build process once doesn't mean they will all slip through next time.<br />
<br />
'''A3''' - This is the more complex way to continue, but may help if you have problems with A2. If you know the stage the process was meant to be up to (look at the output in the command windows and compare to the stages in the ''build.xml'' file), you can start again from there.<br />
<br />
You may see something like this in the command window;<br />
=============================<br />
## Target : link : link objects and library to create executable<br />
---- task : rc<br />
============ cmd ============<br />
windres -o build/inkres.o --include-dir=src src/inkscape.rc<br />
=============================<br />
---- task : link<br />
This will likely be followed by an error message. This means you were at the ''link'' stage<br />
<br />
Now simply type;<br />
...>btool ''stage''<br />
Or in this case<br />
...>btool link<br />
And the build will continue from there.<br />
<br />
After this, you will probably have to step through the remaining stages manually, one by one. The stages can include (see build.xml, where each stage is labelled 'target name="''target''"') ''init'', ''touchabout'', ''compile'', ''java'', ''lib'', ''i18n'', ''link'', ''linkinkview'', ''dist'', ''dist-all'', ''clean''. <br />
<br />
<br />
<br />
'''Q''' - How do I rebuild just one ''file.o'' file? For instance if one particular file has gone wrong, or I want to try patching just one part of the code.<br />
<br />
'''A''' - To find the right command for building any particular file in Inkscape, just look in the compile.lst after you have used btool once. Search for the name of the particular file (eg: print.cpp) and you will find the command used to compile it. You'll need to paste this into a text file, remove any carriage reurns and then paste that onto the command line.<br />
<br />
<br />
<br />
'''Q''' - After I patched a file, I left a backup of the old file in the same directory called Copy of{filename}.cpp. The compiler complains about this file when building and stops.<br />
<br />
'''A''' - Do not leave anything with a suffix .cpp in the source directories, apart from the original (or patched) source files. The build tool will try to compile everything ending in .cpp and will complain. If you backup an old file in the same directory before patching, call it {filename}.cpp.old or similar.<br />
<br />
<br />
<br />
'''Q''' - I think I followed the instruction above. What could have caused the compiling error like this for src/extension/internal/pdfinput/pdf-parser.cpp?<br />
<br />
src/extension/internal/pdfinput/pdf-parser.cpp:2248: error: no matching function for call to 'GfxFont::getNextChar(char*&, int&, CharCode*, Unicode [8], int, int*, double*, double*, double*, double*)'<br />
<br />
Same error for line 2297 as well.<br />
<br />
=== For more information ===<br />
There is some old information on building Inkscape with either Mingw on Windows, or a cross-compiler on Linux, at http://inkscape.modevia.com/win32_inkscape_org/win32buildnotes.html<br />
and old files mey be<br />
http://inkscape.modevia.com/win32libs/<br />
== Creating an installer ==<br />
<br />
To create the '''inkscape-$RELEASE-win32.exe''' setup package you need the '''NSIS''' installer on your PC. Get that from http://nsis.sf.net .<br />
You have successfully built Inkscape and everything is in the ...\inkscape\ directory.<br />
Open the ...\packaging\win32\inkscape.nsi using the NSIS program and compile the package. Sooo easy :-)<br />
<br />
The new wix installer in the packaging\wix directory creates msi packages. You need the '''windows installer XML''' package; get it from here http://wixtoolset.org/. Follow the instructions in the README file in the packaging\wix directory. The installer scripts parse version information from the inkscape.rc file. The generated packed is named as:<br />
<br />
'''inkscape-$RELEASE.msi'''<br />
<br />
== Note about Unicode ==<br />
<br />
The GTK stack depends on functions only present in NT-based Windows (2000 and later). Therefore, Inkscape code can assume that Unicode functions from the Windows API (like GetCommandLineW) are always present. Note however that you should use the GLib/GTK functions rather the Windows API whenever possible.<br />
<br />
=See also=<br />
*[[Compiling Inkscape]]<br />
<br />
[[Category:Developer Documentation]]</div>NeoPhyte Rephttps://wiki.inkscape.org/wiki/index.php?title=Release_notes&diff=87212Release notes2012-10-25T16:28:56Z<p>NeoPhyte Rep: Added * Release notes/0.40</p>
<hr />
<div>Here are the release notes for all versions of Inkscape. The list of release notes ''in all languages'' is at [[Special:PrefixIndex/Release notes/]].<br />
<br />
* [[Release notes/0.49]] (next major release)<br />
* [[Release notes/0.48.3]] (upcoming bugfix release)<br />
* [[Release notes/0.48.2]] (current release)<br />
* [[Release notes/0.48.1]]<br />
* [[Release notes/0.48]]<br />
* [[Release notes/0.47]] <br />
* [[Release notes/0.46]] <br />
* [[Release notes/0.45]]<br />
* [[Release notes/0.44]]<br />
* [[Release notes/0.43]]<br />
* [[Release notes/0.42]]<br />
* [[Release notes/0.41]]<br />
* [[Release notes/0.40]]<br />
* [[Release notes/0.39]]<br />
* [[Release notes/0.38]]<br />
* [[Release notes/0.37]]<br />
* [[Release notes/0.36]]<br />
* [[Release notes/0.35]]<br />
<br />
[[Category:About Inkscape]]</div>NeoPhyte Rephttps://wiki.inkscape.org/wiki/index.php?title=User:Qubodup&diff=86132User:Qubodup2012-06-18T15:43:15Z<p>NeoPhyte Rep: your -> you're; Also, the traditional Wikimedia signature is generated by including four tilde "~~~~" in the edit.</p>
<hr />
<div>Considering the amount of spam accounts on this wiki, I thought I'd create a user page just in case.<br />
: Thanks for doing so, makes it easier to see you're real! - Sim<br />
<br />
* [http://qubodup.net personal homepage]</div>NeoPhyte Rephttps://wiki.inkscape.org/wiki/index.php?title=Linked_bitmap_manager&diff=81122Linked bitmap manager2012-04-01T22:03:53Z<p>NeoPhyte Rep: Undo revision 81104 by TheLeaders (talk) Wiki SPAM</p>
<hr />
<div>= Linked Bitmap Manager =<br />
<br />
==Summary==<br />
<br />
Organizing linked bitmap images is quite a hassle at the moment. When a bitmap file is renamed or moved to a different location, the corresponding bitmap links need to be changed manually one by one in Inkscape, involving a tedious copy and paste process for the filenames. This can be improved<br />
<br />
==Proposal==<br />
What I propose is a manager that allows for managing a number of bitmaps and link them to any Inkscape bitmap object (extensible to any Inkscape object).<br />
<br />
I imagine this being a window with three fields:<br />
<br />
# '''Inkscape Image Links''' as they appear in the document.<br />
# A '''File Manager''' allowing to choose a number of image file paths.<br />
# '''Imported Image Paths''', defining a number of image files chosen to be linked in the current document. Note that this is merely a selection of ''file links'' that the user wants to work with. In the manager they are displayed as images, to make working with them easier. <br />
<br />
The user can then link ''Inkscape Image Links'' with the corresponding ''Imported Image Paths'', which then appear in the document in real time.<br />
<br />
[[File:Image_links_mockup.svg|315px]]<br />
<br />
=== Details ===<br />
Excuse the dumb question: I find the relative linking useful. Sometimes, I did change globals paths to local ones in the SVG files manually, and it worked fine. Is there already (0.47pre3) a GUI for this change? (the proposal in [[Image properties dialog enhancements]] doesn't include any...) Thanks in advance. --[[User:Uncopy|Uncopy]] 07:35, 23 October 2009 (UTC)<br />
<br />
==User Workflow==<br />
<br />
An exemplary user workflow for a document with ''10 broken image links'' would be as follows:<br />
<br />
# Load document<br />
# '''Optional:''' A message pops up: ''"A number of image links are broken, start the link manager?"''<br />
# The link manager is opened manually or automatically (see step 2). The 10 broken image links with their current paths are displayed in the ''Inkscape Image Links'' field.<br />
# The user opens an image folder in the ''File Manager'' field and picks a number of images, which appear in the ''Imported Image Paths'' field in link and picture form.<br />
# The user links 10 of the images in ''Imported Image Paths'' to his 10 broken image links and can see the result immediately in the Inkscape main window.<br />
<br />
==Benefit==<br />
<br />
The use of this feature is straightforward:<br />
* Documents with broken links can be repaired without much trouble without having to rename the images or copy-pasting the correct link one by one<br />
* Users who need to change the image filenames/location can do so without the tedious copy/paste procedure necessary at the moment.<br />
* Updating an old version of a document with new images becomes easier, especially if the need exists to keep the old images where they are in the file structure.<br />
<br />
[[Category:Proposals]]</div>NeoPhyte Rephttps://wiki.inkscape.org/wiki/index.php?title=SpecLensesLPE&diff=81116SpecLensesLPE2012-04-01T21:41:35Z<p>NeoPhyte Rep: /* Summary */ [http://www.synfig.org/Main_Page Synfig] -> [http://www.synfig.org/cms/ Synfig] Couldn't find the example on the site</p>
<hr />
<div>Launchpad Entry:<br />
https://blueprints.launchpad.net/inkscape/+spec/lenses-lpe<br />
<br />
== Summary ==<br />
I try to bring lens effects to vectorial objects in a way the user can experiment playing with settings like focal distance, diameter and position of the lens over the object (meaning the user can apply the effect over a part of the object, like a magnifying glass).<br />
<br />
[http://www.synfig.org/cms/ Synfig] has a similar tool ([http://synfig.org/Building_a_magnifying_glass example here]).<br />
<br />
Scribus also has this implemented in 1.3.5svn version --[[User:Prokoudine|Prokoudine]] 11:31, 8 July 2008 (UTC)<br />
<br />
[[Image:Scribus-135-lens-effect.png]]<br />
<br />
Could you explain what's the difference between ''Magnification lens'' and ''Fish-eye lens''? --[[User:Pajarico|Pajarico]] 01:38, 10 July 2008 (UTC)<br />
<br />
[http://en.wikipedia.org/wiki/Fisheye_lens Wikipedia article].<br />
<br />
== Release Note ==<br />
== Rationale ==<br />
Lens effects are really hard to achieve manually. The specs brings the possibility to create these effects easily with the non-destructive approach of LivePath effects.<br />
<br />
== Design ==<br />
[[Image:Lens_editing_mockup.png]]<br />
<br />
=== UI ===<br />
The dialog has to do these things:<br />
<br />
=== Usage ===<br />
=== SVG representation ===<br />
<br />
== TODO ==<br />
<br />
== Discussion ==<br />
I need ideas about which settings should appear so it has some correlation with a real lens system, like:<br />
* f number.<br />
* focal length (distance between lens and film).<br />
Or maybe is better to make the UI in layman terms (like the Scribus example above).<br />
<br />
Other random ideas:<br />
* Lens flares (Maybe several forms or an object from the clipboard, [http://www.psd-tutorials.de/modules.php?name=Downloads&d_op=viewdownloaddetails&lid=133 like this]).<br />
* Simulated shines.<br />
* Allow the use of non-circumferential forms (don't know if 2geom can do this or even if it's doable mathematically).<br />
* Clip option: clips the object to the circumferenced helper.<br />
<br />
[[Category:Proposals]]</div>NeoPhyte Rephttps://wiki.inkscape.org/wiki/index.php?title=ReactOS&diff=80600ReactOS2012-03-28T15:38:39Z<p>NeoPhyte Rep: Undo revision 80582 by TheLeaders (talk) SPAM</p>
<hr />
<div>[[ReactOS]] (http://www.reactos.org)<br />
<br />
Open source clone of Microsoft Windows (NT5). It is developed from [http://www.winehq.org Wine] code.</div>NeoPhyte Rephttps://wiki.inkscape.org/wiki/index.php?title=DistributiveWriting&diff=79364DistributiveWriting2012-03-06T18:25:40Z<p>NeoPhyte Rep: Fixed Double Redirect</p>
<hr />
<div>#REDIRECT [[Distributive writing]]</div>NeoPhyte Rephttps://wiki.inkscape.org/wiki/index.php?title=Distributive_Writing&diff=79358Distributive Writing2012-03-06T18:24:12Z<p>NeoPhyte Rep: moved Distributive Writing to Distributive writing: More consistent MediaWiki style</p>
<hr />
<div>#REDIRECT [[Distributive writing]]</div>NeoPhyte Rephttps://wiki.inkscape.org/wiki/index.php?title=Distributive_writing&diff=79352Distributive writing2012-03-06T18:24:12Z<p>NeoPhyte Rep: moved Distributive Writing to Distributive writing: More consistent MediaWiki style</p>
<hr />
<div>You might be looking for [[Inkview]], [http://sourceforge.net/projects/inkboard Inkboard] or [[Inkboard2.0]].<br />
<br />
[[Category:Other Software]]</div>NeoPhyte Rephttps://wiki.inkscape.org/wiki/index.php?title=User_talk:NeoPhyte_Rep&diff=79346User talk:NeoPhyte Rep2012-03-06T18:23:31Z<p>NeoPhyte Rep: /* Mediawiki style? */ Response</p>
<hr />
<div>==Introduction==<br />
I am a retired, 30 year Data Processing Professional, who seeks to represent the needs of the "New Lover" of Information Technology.<br />
<br />
==oops==<br />
Sorry for the (rolled back) comment, I didn't read the fine print! Will read the manual next time before moving pages ;-) --[[User:~suv|~suv]] 22:55, 3 March 2012 (UTC)<br />
:Glad to help someone improve their wiki skills. I'm still not the master I wish I was. <br />[[User:NeoPhyte Rep|NeoPhyte Rep]] 22:59, 3 March 2012 (UTC)<br />
<br />
== Mediawiki style? ==<br />
<br />
[[Distributive Writing]] > would not that be [[Distributive writing]]? [[User:Kris|Kris]] 17:59, 6 March 2012 (UTC)<br />
:Indeed it's [[Distributive writing]] on Wikipedia. I guess I shouldn't hastily edit so early in the morning. [[User:NeoPhyte Rep|NeoPhyte Rep]] 18:23, 6 March 2012 (UTC)</div>NeoPhyte Rephttps://wiki.inkscape.org/wiki/index.php?title=DistributiveWriting&diff=79328DistributiveWriting2012-03-06T15:12:25Z<p>NeoPhyte Rep: moved DistributiveWriting to Distributive Writing: Make title MediaWiki style</p>
<hr />
<div>#REDIRECT [[Distributive Writing]]</div>NeoPhyte Rephttps://wiki.inkscape.org/wiki/index.php?title=Distributive_writing&diff=79322Distributive writing2012-03-06T15:12:25Z<p>NeoPhyte Rep: moved DistributiveWriting to Distributive Writing: Make title MediaWiki style</p>
<hr />
<div>You might be looking for [[Inkview]], [http://sourceforge.net/projects/inkboard Inkboard] or [[Inkboard2.0]].<br />
<br />
[[Category:Other Software]]</div>NeoPhyte Rephttps://wiki.inkscape.org/wiki/index.php?title=Distributive_writing&diff=79316Distributive writing2012-03-06T15:11:48Z<p>NeoPhyte Rep: /* This is a new page */ It hasn't been a new page since some usable information was added.</p>
<hr />
<div>You might be looking for [[Inkview]], [http://sourceforge.net/projects/inkboard Inkboard] or [[Inkboard2.0]].<br />
<br />
[[Category:Other Software]]</div>NeoPhyte Rephttps://wiki.inkscape.org/wiki/index.php?title=User_talk:NeoPhyte_Rep&diff=79094User talk:NeoPhyte Rep2012-03-03T22:59:09Z<p>NeoPhyte Rep: /* oops */ It's OK</p>
<hr />
<div>==Introduction==<br />
I am a retired, 30 year Data Processing Professional, who seeks to represent the needs of the "New Lover" of Information Technology.<br />
<br />
==oops==<br />
Sorry for the (rolled back) comment, I didn't read the fine print! Will read the manual next time before moving pages ;-) --[[User:~suv|~suv]] 22:55, 3 March 2012 (UTC)<br />
:Glad to help someone improve their wiki skills. I'm still not the master I wish I was. <br />[[User:NeoPhyte Rep|NeoPhyte Rep]] 22:59, 3 March 2012 (UTC)</div>NeoPhyte Rephttps://wiki.inkscape.org/wiki/index.php?title=User:~suv&diff=79070User:~suv2012-03-03T22:32:17Z<p>NeoPhyte Rep: /* launchpad bug tags */ Made "List of Launchpad bug tags" and "Extracted bug tags" direct links</p>
<hr />
<div>== scratch pad ==<br />
:<small>empty</small><br />
<br />
== launchpad bug tags ==<br />
; List of used tags : ''no longer updated'' <strike>moved this section to a separate page: [[ /List of Launchpad bug tags|List of Launchpad bug tags ]]</strike><br />
; Recent tag changes : Currently there is no method available (or in reach of my limited skills?) to extract used tags from the launchpad bug tracker. Bug tracker notifications per e-mail contain a X-header field (X-Launchpad-Bug-Tags) that lists the current tags of a bug report and any changes to the tags is listed as part of the message body. <br />
:list of [[ /Extracted bug tags|Extracted bug tags ]] from the mbox since I joined the bug team ''( last update: Tue, Dec 29 2009 18:24 CET)''<br />
;temporarily listed <br />
:used tags 2009-11-18 linked to LP search (all, newest first):<br />
:''failed - can't get the wiki to accept the long list??''<br />
<br />
== debug extension ==<br />
; tool to display info about extension system, loaded modules, versions... : Bug [https://bugs.edge.launchpad.net/inkscape/+bug/448285 #448285] “lxml version bundled with Inkscape is old”<br />
; updated version ([https://bugs.launchpad.net/inkscape/+bug/482993/+attachment/1581575/+files/debug.inx debug.inx], [https://bugs.launchpad.net/inkscape/+bug/482993/+attachment/1712816/+files/debug.py debug.py]) attached to : Bug [https://bugs.launchpad.net/inkscape/+bug/482993 #482993] “Inkscape extensions do not work on MacOS X 10.6 (Snow Leopard)”</div>NeoPhyte Rephttps://wiki.inkscape.org/wiki/index.php?title=User_talk:~suv/List_of_Launchpad_bug_tags&diff=79046User talk:~suv/List of Launchpad bug tags2012-03-03T22:24:34Z<p>NeoPhyte Rep: moved Talk:~suv/List of Launchpad bug tags to User talk:~suv/List of Launchpad bug tags: Moved into the User: space as seemed to be the intent of last revision by ~suv</p>
<hr />
<div>=== Discussion / Questions ===<br />
<br />
;Guidelines for using tags? (inkscape-devel thread)<br />
:"[http://thread.gmane.org/gmane.comp.graphics.inkscape.devel/31517 bug tracker: Guideslines for tags?]"<br />
;List of tags for bug triage :where to keep an updated list of used inkscape bug tracker (launchpad) tags?<br />
;Who manages the list of offical tags? (inkscape-devel thread)<br />
:"[http://thread.gmane.org/gmane.comp.graphics.inkscape.devel/32092 LP: official tag list not accessible for Bug Team members?]"<br />
:the Launchpad bug tracker offers a page to manage tags (both official and others), but it is not accessible for Bug Team members, not even read-only<br />
<br />
=== Recent tag changes ===<br />
<br />
Currently there is no method available (or in reach of my limited skills?) to extract used tags from the launchpad bug tracker. Bug tracker notifications per e-mail contain a X-header field (X-Launchpad-Bug-Tags) that lists the current tags of a bug report and any changes to the tags is listed as part of the message body. <br />
:list of [[ extracted bug tags ]] from the mbox since I joined the bug team ''( last update: Tue, Dec 29 2009 18:24 CET)'' [[User:~suv|~suv]]<br />
<br />
=== Categories for tags in use? ===<br />
;What: categorize & consolidate [[ List of Launchpad bug tags#used_tags_2009-11-12|previous list]] of (existing/in-use) tags on launchpad? <br />
<!-- (can I use fragment identifiers in wiki syntax and still define the title of the link? - like: [[BugTagsList#used_tags_2009-10-12]] but with a shorter title? ~suv) solved: [[page title#section|text]] --><br />
;Issue: Launchpad UI only allows search for tags with exact match (i.e. a full text search can only be limited by known tags)<br />
;Note: this is not a proposal - just trying to keep track of status-quo<br />
;TODO: compare with [[Inkscape glossary]] ?<br />
: Does anyone have the list of tags/categories used in the sourceforge bug tracker and migrated to launchpad or know where to find them?<br />
==== objects / attributes / actions ====<br />
'''-- objects'''<br />
*object-shape<br />
*object-text<br />
*objects<br />
*objects-freehand-calligraphic<br />
*objects-gradients<br />
*objects-markers<br />
*objects-nodes<br />
*objects-pattern<br />
*path<br />
*text<br />
<br />
'''-- attributes'''<br />
*alpha<br />
*color<br />
*gradient<br />
*opacity<br />
*styles<br />
*stroke<br />
<br />
'''-- actions''' (verbs?)<br />
*blur<br />
*clipping<br />
*groups<br />
*livepatheffects<br />
*locking<br />
*node-editing<br />
*shape-editing<br />
*snapping<br />
*transformations<br />
*undo<br />
*zoom<br />
<br />
'''-- svg'''<br />
*bitmap<br />
*clones<br />
*css<br />
*defs<br />
*gradient<br />
*grids<br />
*guides<br />
*layers<br />
*link<br />
*markers<br />
*pattern<br />
*viewbox<br />
<br />
==== tools ====<br />
*3dbox<br />
*bezier<br />
*calligraphy<br />
*connectors<br />
*eraser<br />
*freehand<br />
*gradient<br />
*pen <br />
*pencil<br />
*perspective<br />
*text<br />
*tracing <br />
*tweak '' -- added''<br />
*tweak-tool '' -- discovered in old, fixed reports''<br />
*xmleditor<br />
<br />
==== modules ====<br />
*svg<br />
*svg-xml<br />
*css<br />
*styles<br />
*content<br />
*filters-svg <br />
*livepatheffects<br />
*text<br />
*fonts<br />
*encoding '' -- once used - to be proposed?''<br />
*bidi<br />
*cjk<br />
*2geom <br />
*renderer<br />
*cairo<br />
*poppler <br />
*inkboard<br />
*extensions<br />
*extensions-plugins<br />
*java <br />
*python<br />
*uniconvertor <br />
*gtk-osx '' -- added''<br />
*x11<br />
<br />
==== user interface ====<br />
'''-- graphical'''<br />
*autosave<br />
*clipboard<br />
*desktop-integration<br />
*fullscreen<br />
*rulers<br />
*tablet <br />
*ui<br />
*ui-dialogs-toolbars<br />
*ui-guide-grid-ruler<br />
*ui-palette-color<br />
*ui-preferences<br />
*ui-preview<br />
*ui-selection-group-layer<br />
*ui-shortcuts<br />
*ui-text<br />
*ui-xml<br />
<br />
'''-- keys'''<br />
*ui-shortcuts<br />
<br />
'''-- cli'''<br />
*cli<br />
<br />
'''-- verbs'''<br />
*exporting<br />
*importing<br />
*printing<br />
*saving<br />
<br />
==== build ====<br />
*build-compile-code-design<br />
*configure<br />
*build<br />
*packaging<br />
*installer<br />
<br />
==== export-import formats ====<br />
*cdr<br />
*dia<br />
*dxf<br />
*emf<br />
*eps<br />
*gnuplot<br />
*hpgl<br />
*javafx<br />
*latex<br />
*odg<br />
*pdf<br />
*png<br />
*ps<br />
*psfrag <br />
*vml<br />
*wmf<br />
*xaml<br />
*xcf <br />
<br />
==== platforms ====<br />
*all-platforms<br />
*64-bit <br />
*amd64 <br />
*bsd<br />
*linux<br />
*osx<br />
*solaris<br />
*win32<br />
*win32-vista<br />
<br />
==== documentation ====<br />
*doumentation<br />
*licence<br />
*metadata<br />
*tutorials<br />
*translation<br />
*website<br />
*wiki<br />
<br />
==== triage ====<br />
*blocker<br />
*crash <br />
*needs-confirm-on-svn-head<br />
*patch <br />
*regression<br />
<br />
==== other ====<br />
*accessibility<br />
*gsoc2009-color<br />
*ocal (Open Clipart Library)<br />
*other<br />
*performance <br />
*soc-2008-juca<br />
*usability</div>NeoPhyte Rephttps://wiki.inkscape.org/wiki/index.php?title=UweSchoeler&diff=78854UweSchoeler2012-03-01T19:13:46Z<p>NeoPhyte Rep: moved UweSchoeler to User:UweSch: More appropriate location</p>
<hr />
<div>#REDIRECT [[User:UweSch]]</div>NeoPhyte Rephttps://wiki.inkscape.org/wiki/index.php?title=User:UweSch&diff=78848User:UweSch2012-03-01T19:13:46Z<p>NeoPhyte Rep: moved UweSchoeler to User:UweSch: More appropriate location</p>
<hr />
<div>Hi,<br />
<br />
i'm Uwe.... and here to translate documentation to german.<br />
[[Category:Developer]]</div>NeoPhyte Rephttps://wiki.inkscape.org/wiki/index.php?title=User_talk:Kris&diff=76466User talk:Kris2012-01-06T18:05:53Z<p>NeoPhyte Rep: /* Template to add a Category? */ Thanks.</p>
<hr />
<div>== Template to add a Category? ==<br />
I'm still trying to master MediaWiki syntax, so when I see someone doing something different, I try to understand what they have done and, perhaps, why they are doing it.<br />
<br />
You seem to have added Template:DevDiscussion merely to add Category:Developer Discussion to a wiki article. I don't understand the improvement a Template provides over merely directly placing the Category reference in the article. Can you help me understand, please?<br />
[[User:NeoPhyte Rep|NeoPhyte Rep]] 15:11, 6 January 2012 (UTC)<br />
:Hi Neophyte, there is actually not really a difference for average usage on the wiki and hence, should generally not be used for simple categorisation. There is only one advantage, namely when you want to "rename" a category. Renaming a category is not possible, it consist of duplicating the category page and moving the content in the new category before deleting the original category name. So if you have used a template, you can simply modify the template. I only did this for now as the wiki now needs some content update. I see different many different styles in naming pages, namely CamelCase, Each Word Capitalized, etc. So in case we want to uniformize, this first step might save some work later on. Regards, [[User:Kris|Kris]] 17:37, 6 January 2012 (UTC) PS: maybe on the developers discussion pages, it might be interesting to have an info box at the box saying this (and that were a template would be really handy)<br />
::Interesting technique. Thanks for the explanation. [[User:NeoPhyte Rep|NeoPhyte Rep]] 18:05, 6 January 2012 (UTC)<br />
<br />
== Wiki maintenance ==<br />
Kris, I've noticed that you're spending an inordinate amount of effort blocking accounts of spammers and deleting their handiwork. Most of them are, no doubt, new accounts, and it's a good bet that many of them are perpetrated by the same bad actors who are logging in with temporary IP addresses that change every time they reboot their ADSL modem. I recently encountered an interesting technique to cut down on this type of activity at the OpenOffice.org wiki. (Sorry, you'll need to find the URL yourself, because a half-baked script on this wiki puked when I tried to save this message with a link to the relevant page.) They've implemented a "cooling-off period" for new accounts and have completely blocked editing by anonymous users. Anyone can create an account, but one must wait '''four days''' before making the first edit. If someone has a legitimate reason to be here, they'll make a note of it and come back when the waiting time has expired, but it may be a significant deterrent to hit-and-run spammers. [[User:User8192|User8192]] 07:36, 2 December 2011 (UTC)<br />
:Hi User8192, We are aware of this extension which allows to allows to hinder inappropriate behaviour at various levels. It should be enabled now or very soon (I do not know its status though). Regards, [[User:Kris|Kris]] 08:20, 3 December 2011 (UTC)<br />
<br />
== New spam ==<br />
I've been editing the wiki in the last couple of days and noticed new user accounts that have been used for the sole purpose of spamming. The accounts and their IP addresses should be blocked and all pages created by them should be deleted. Since I don't have administrator privileges on this wiki, I replaced the content in pages that I found with the word "SPAM" and put "SPAM" in the edit summary. [[User:User8192|User8192]] 19:24, 13 December 2011 (UTC)<br />
*[[Special:Contributions/Gitukaff]]<br />
*[[Special:Contributions/Colecris]]<br />
*[[Special:Contributions/Restinve]]<br />
*[[Special:Contributions/Betgclub9]]<br />
*[[Special:Contributions/Fesulri]]<br />
*[[Special:Contributions/Fidedian]]<br />
<br />
*[[Special:Contributions/Annavict]] hasn't done anything yet, but it looks suspicious, as it was created at the same time as Colecris and Restinve.<br />
*[[Special:Contributions/Holidaygclub]] also looks suspicious, but hasn't posted anything yet.<br />
*[[Special:Contributions/Moonpav]] (added after initial post)<br />
Unfortunately I can't give you admin permissions myself, but I have blocked most of those users for you. [[User:Legio noctis|Legio noctis]] 20:38, 14 December 2011 (UTC)</div>NeoPhyte Rephttps://wiki.inkscape.org/wiki/index.php?title=User_talk:Kris&diff=76454User talk:Kris2012-01-06T15:11:53Z<p>NeoPhyte Rep: Looking for deeper understanding.</p>
<hr />
<div>== Template to add a Category? ==<br />
I'm still trying to master MediaWiki syntax, so when I see someone doing something different, I try to understand what they have done and, perhaps, why they are doing it.<br />
<br />
You seem to have added Template:DevDiscussion merely to add Category:Developer Discussion to a wiki article. I don't understand the improvement a Template provides over merely directly placing the Category reference in the article. Can you help me understand, please?<br />
[[User:NeoPhyte Rep|NeoPhyte Rep]] 15:11, 6 January 2012 (UTC)<br />
== Wiki maintenance ==<br />
Kris, I've noticed that you're spending an inordinate amount of effort blocking accounts of spammers and deleting their handiwork. Most of them are, no doubt, new accounts, and it's a good bet that many of them are perpetrated by the same bad actors who are logging in with temporary IP addresses that change every time they reboot their ADSL modem. I recently encountered an interesting technique to cut down on this type of activity at the OpenOffice.org wiki. (Sorry, you'll need to find the URL yourself, because a half-baked script on this wiki puked when I tried to save this message with a link to the relevant page.) They've implemented a "cooling-off period" for new accounts and have completely blocked editing by anonymous users. Anyone can create an account, but one must wait '''four days''' before making the first edit. If someone has a legitimate reason to be here, they'll make a note of it and come back when the waiting time has expired, but it may be a significant deterrent to hit-and-run spammers. [[User:User8192|User8192]] 07:36, 2 December 2011 (UTC)<br />
:Hi User8192, We are aware of this extension which allows to allows to hinder inappropriate behaviour at various levels. It should be enabled now or very soon (I do not know its status though). Regards, [[User:Kris|Kris]] 08:20, 3 December 2011 (UTC)<br />
<br />
== New spam ==<br />
I've been editing the wiki in the last couple of days and noticed new user accounts that have been used for the sole purpose of spamming. The accounts and their IP addresses should be blocked and all pages created by them should be deleted. Since I don't have administrator privileges on this wiki, I replaced the content in pages that I found with the word "SPAM" and put "SPAM" in the edit summary. [[User:User8192|User8192]] 19:24, 13 December 2011 (UTC)<br />
*[[Special:Contributions/Gitukaff]]<br />
*[[Special:Contributions/Colecris]]<br />
*[[Special:Contributions/Restinve]]<br />
*[[Special:Contributions/Betgclub9]]<br />
*[[Special:Contributions/Fesulri]]<br />
*[[Special:Contributions/Fidedian]]<br />
<br />
*[[Special:Contributions/Annavict]] hasn't done anything yet, but it looks suspicious, as it was created at the same time as Colecris and Restinve.<br />
*[[Special:Contributions/Holidaygclub]] also looks suspicious, but hasn't posted anything yet.<br />
*[[Special:Contributions/Moonpav]] (added after initial post)<br />
Unfortunately I can't give you admin permissions myself, but I have blocked most of those users for you. [[User:Legio noctis|Legio noctis]] 20:38, 14 December 2011 (UTC)</div>NeoPhyte Rephttps://wiki.inkscape.org/wiki/index.php?title=User:NeoPhyte_Rep/abbr&diff=74798User:NeoPhyte Rep/abbr2011-12-14T17:29:11Z<p>NeoPhyte Rep: Added BMP, EPS, JPEG, PNG, and TIFF</p>
<hr />
<div>*<abbr title="abbreviation">abbr.</abbr><br />
**<nowiki><abbr title="abbreviation">abbr.</abbr></nowiki><br />
<br />
*<abbr title="BitMaP">BMP</abbr> BitMaP<br />
<br />
*<abbr title="Encapsulated PostScript">EPS</abbr> Encapsulated PostScript<br />
<br />
*<abbr title="Joint Photographic Experts Group">JPEG</abbr> Joint Photographic Experts Group<br />
<br />
*[http://www.openclipart.org/ Open Clip Art Library (<abbr title="Open Clip Art Library">OCAL</abbr>)]<br />
**<nowiki>[http://www.openclipart.org/ Open Clip Art Library (<abbr title="Open Clip Art Library">OCAL</abbr>)]</nowiki><br />
**<nowiki>[http://www.openclipart.org/ Open Clip Art Library (OCAL)]</nowiki><br />
**<nowiki><abbr title="Open Clip Art Library">OCAL</abbr></nowiki><br />
<br />
*<abbr title="Portable Network Graphics">PNG</abbr> Portable Network Graphics<br />
<br />
*<abbr title="Tagged Image File Format">TIFF</abbr> Tagged Image File Format</div>NeoPhyte Rephttps://wiki.inkscape.org/wiki/index.php?title=WikiNode&diff=74792WikiNode2011-12-14T17:24:59Z<p>NeoPhyte Rep: * Frequently asked questions -> * Frequently asked questions (FAQ) Some folks know and regularly use acronyms. If they search on CAD, EDA, FAQ or SVG, they probably expect to discover this wiki article.</p>
<hr />
<div>Welcome to the [[Inkscape]] wiki!<br />
<br />
Inkscape is an open source drawing tool.<br />
Inkscape uses the scalable vector graphics (SVG) format.<br />
Inkscape also imports several formats like <abbr title="Encapsulated PostScript">EPS</abbr>, PostScript, <abbr title="Joint Photographic Experts Group">JPEG</abbr>, <abbr title="Portable Network Graphics">PNG</abbr>, <abbr title="BitMaP">BMP</abbr>, and <abbr title="Tagged Image File Format">TIFF</abbr> and exports <abbr title="Portable Network Graphics">PNG</abbr> as well as multiple vector-based formats.<br />
<br />
'''Key points of interest:'''<br />
* [[About Inkscape]] <br />
* [[Frequently asked questions]] (FAQ)<br />
* [[Galleries]]<br />
* [[User manual information]]<br />
* [[Help wanted]]<br />
(what should go here?)<br />
<br />
'''Neighboring Wiki:'''<br />
* [http://www.protocol7.com/svg-wiki/ow.asp?WikiNode Scalable Vector Graphics (SVG) wiki]<br />
* [http://www.openclipart.org/cgi-bin/wiki.pl?WikiNode Open Clip Art Library] project ''needs wikinode''<br />
* <s>[http://visual.wiki.taoriver.net/moin.cgi/WikiNode Visual] - visual language</s> ''Can't find the server''<br />
* [http://wiki.services.openoffice.org/wiki/ OpenOffice.org wiki] - is it possible to substitute Inkscape for the "Draw" application in this suite?<br />
* [http://freedesktop.org/wiki/ the freedesktop.org wiki] "freedesktop.org is open source / open discussion software projects working on interoperability and shared technology for X Window System desktops." Perhaps Inkscape could use the open-source Chinese fonts hosted there? ''needs wikinode''<br />
* [http://geda.seul.org/wiki/ gEDA] is a specialized Computer Aided Design (CAD) drawing program for Electronic Design Automation (EDA). ''needs wikinode''</div>NeoPhyte Rephttps://wiki.inkscape.org/wiki/index.php?title=How_to_start_a_page&diff=74786How to start a page2011-12-14T16:47:50Z<p>NeoPhyte Rep: '''<nowiki></nowiki>nested brackets<nowiki></nowiki>''' -> '''<nowiki>nested brackets</nowiki>''' I know it is a matter of style, but this is more storage and processor efficient and creates the same display.</p>
<hr />
<div>There are two basic ways to start a Wiki page:<br />
#As you're reading through already-existing articles, you'll see question marks that are clickable links. You can click on a "?" link that appears after an article title, and you'll arrive at a page that says "Describe the new page here." Just delete that text and replace it with the text of your article. When you're finished, click the "Save" button at the bottom of the page. (Use the "[[Preview]]" button if you want to see what the page will look like first.) -- Modifying arbitrary pages by adding/wikifying a new term and then adding a well-written entry linked from that page are a great way to continually add new topics to the site.<br />
#If you want to create a brand-new topic, probably the first thing to do is to use the "search" form (see the bottom of this page, for example) and see whether someone has not already created some very similar page. If not, you can find some related topic, edit ''that'' page, and (in an appropriate place) add the title of the article you want to create between double brackets, <nowiki>[[like this]]</nowiki>. Then press the "save" button at the bottom of the page. On the page you just edited, you should see a clickable "?"; click on that and go to work on your new page! -- <br />
Some thoughts:<br />
* This is a '''MediaWiki wiki'''&nbsp;— it allows use of spaces in wikilinks, so '''use of CamelCase to create links is not needed or desirable'''. New article (page) titles should use sentence-case, i.e., capitalise the first word in the title and leave the rest lowercase, unless certain words in the title are proper nouns. Wikilinks in articles are created by enclosing a word or set of words with '''<nowiki>[[nested brackets]]</nowiki>'''. If you find a wikilink to a non-existent article that uses CamelCase run-together text, correct the link in that article according to these conventions before creating the new target article.<br />
* If you like, you can enter just a line or two of text for an entry. It's a start. Full-blown articles are not required. Adding any (accurate, helpful) information is welcome! Of course, if you can write more, that's all the better; some people do, as a matter of habit, usually write more than just a few lines when they start a new article.<br />
* How you word your articles will determine, to some extent, how likely it is other people will work on it. Examples:<br />
**An article that leaves many intriguing-sounding links or leaves ellipses (...), etc., might invite other know-it-alls to fill in the blanks.<br />
**Straightforward requests for information in an article can lead to good articles. For example, one might supply a rough description of a thing or place and then ask about its history; some people who know the answer will find it difficult to pass up the opportunity to teach.<br />
<br />
----<br />
This article is an edited version of one by the same name from [http://www.wikipedia.com Wikipedia.com], reusable under the terms of the [http://www.gnu.org/copyleft/fdl.html GNU Free Documentation License].<br />
<br />
<br />
[[Category:User Documentation]]</div>NeoPhyte Rephttps://wiki.inkscape.org/wiki/index.php?title=SpecXAMLExport&diff=74150SpecXAMLExport2011-12-02T17:39:23Z<p>NeoPhyte Rep: /* Other tests */ Provided ocal expansion</p>
<hr />
<div>== Release Note ==<br />
Initial XAML released in Inkscape 0.4x.<br />
<br />
== Design ==<br />
This export extension uses the XSLT extension system.<br />
<br />
== TODO ==<br />
*Implement masking and layers blend.<br />
*Improve existing features when possible.<br />
*More tests!<br />
<br />
== Discussion ==<br />
<br />
== Known limitations ==<br />
Some SVG features are not are partially supported by XAML. When possible, a workaround has been implemented in the export filter to render the missing features. Some elements that can't be created with Inkscape are not supported.<br />
<br />
=== Root level and groups ===<br />
* '''[Not supported]''' Viewbox.<br />
=== Defs ===<br />
* '''[Partial]''' Limited support for switch (always pass).<br />
* '''[Not supported]''' Use.<br />
* '''[Not supported]''' Markers.<br />
* '''[Not supported]''' Patterns.<br />
* '''[Not supported]''' Symbols.<br />
=== Transforms ===<br />
* '''[Not supported]''' Multiple values rotation (only the first one is converted).<br />
=== Filters ===<br />
* '''[Partial]''' Support limited to blurs (and no support for horizontal/vertical only blur).<br />
=== Gradients and color===<br />
* '''[Partial]''' Some absolute gradients issues.<br />
* '''[Not supported]''' CurrentColor.<br />
* '''[Not supported]''' Fill colors with both an url and a rgb value (the first one is kept).<br />
=== Stroke ===<br />
* '''[Partial]''' Mitterlimit doesn't give the same result.<br />
* '''[Partial]''' Shapes render the stroke inside (except line, polyline and polygon). Works as expected with normal paths.<br />
=== Clip and mask ===<br />
* '''[Partial]''' PathGeometry is positionned in the object's space (RectangleGeometry works correctly, with absolute values).<br />
* '''[Not supported]''' <br />
=== Text ===<br />
* '''[Not supported]''' Text rotation.<br />
* '''[Partial]''' Whitespace handling, issues with xml:whitespace='preserve'.<br />
* '''[Partial]''' Text frames (only works with rectangles, and flowRegion transform not supported).<br />
* '''[Not supported]''' Embedded fonts (in defs).<br />
* '''[Not supported]''' Character rotation.<br />
* '''[Not supported]''' Character positioning (x and y).<br />
* '''[Not supported]''' Text span (from tspan or flowSpan) positioning.<br />
* '''[Not supported]''' Text-anchor.<br />
* '''[Not supported]''' Text stroke.<br />
General workaround for text: convert everything to path before exporting will resolve most issues.<br />
=== Shapes ===<br />
* '''[Partial]'''<br />
=== Images ===<br />
* '''[Not supported]''' Embedded images (base64).<br />
=== Other ===<br />
* '''[Not supported]''' Object title and description.<br />
* '''[Not supported]''' em, ex and % units (XAML only knows pixel values).<br />
* '''[Not supported]''' No RDF and metadata support.<br />
* '''[Not supported]''' DOCTYPE (crashes the XSLT conversion).<br />
<br />
== Detailed tests ==<br />
(from the official SVG1.1 test suite at http://www.w3.org/Graphics/SVG/WG/wiki/Test_Suite_Overview)<br />
<br />
=== Colors ===<br />
*color-prop-01-b - CurrentColor value not supported.<br />
*color-prop-03-t - Ok.<br />
<br />
=== coords ===<br />
*coords-coord-01-t - Ok.<br />
*coords-coord-02-t - Ok.<br />
*coords-trans-01-b - Ok.<br />
*coords-trans-02-t - Ok.<br />
*coords-trans-03-t - Ok.<br />
*coords-trans-04-t - Ok.<br />
*coords-trans-05-t - Ok.<br />
*coords-trans-06-t - Ok.<br />
*coords-units-01-b - Patterns not supported.<br />
*coords-units-02-b - % positionning not supported.<br />
*coords-units-03-b - em, ex and % not implemented.<br />
*coords-viewattr-03-b - Canvas not supported.<br />
<br />
=== Filters ===<br />
*filters-gauss-01-b - Bidirectionnal blur only.<br />
<br />
=== Masking ===<br />
*masking-mask-01-b - <br />
*masking-opacity-01-b - <br />
*masking-path-01-b - <br />
*masking-path-02-b - <br />
*masking-path-03-b - <br />
*masking-path-04-b - <br />
<br />
=== Painting ===<br />
*painting-fill-01-t - Ok.<br />
*painting-fill-02-t - CurrentColor value not supported.<br />
*painting-fill-03-t - Ok (silverlight compatibility issue).<br />
*painting-fill-04-t - Ok.<br />
*painting-fill-05-b - Ok.<br />
*painting-render-01-b - linearRGB not supported?<br />
*painting-stroke-01-t - Stroke is rendered inside the object (works correctly with path)!<br />
*painting-stroke-02-t - Ok.<br />
*painting-stroke-03-t - No automatic mitter.<br />
*painting-stroke-04-t - Dash-array and dash-offset don't work.<br />
*painting-stroke-07-t - Mitter-limit doesn't work.<br />
<br />
=== Path ===<br />
*paths-data-01-t - Ok.<br />
*paths-data-02-t - Ok.<br />
*paths-data-04-t - Ok.<br />
*paths-data-05-t - Ok.<br />
*paths-data-06-t - Ok.<br />
*paths-data-07-t - Ok.<br />
*paths-data-08-t - Ok.<br />
*paths-data-09-t - Ok.<br />
*paths-data-10-t - Ok.<br />
*paths-data-12-t - Ok.<br />
*paths-data-13-t - Ok.<br />
*paths-data-14-t - Ok.<br />
*paths-data-15-t - Ok.<br />
<br />
=== Pserver ===<br />
Note: Absolute gradients are calculated in the calling object's space. That leads to some issues in gradient positionning, when absolute gradients are used on paths or transformed.<br />
*pservers-grad-01-b - Ok.<br />
*pservers-grad-02-b - Ok.<br />
*pservers-grad-03-b - Patterns not supported.<br />
*pservers-grad-04-b - Partial (Incorrect linear gradient angle).<br />
*pservers-grad-05-b - Partial (Incorrect linear gradient angle).<br />
*pservers-grad-06-b - Partial (Patterns not supported, issue with tranformed absolute gradients).<br />
*pservers-grad-07-b - Gradients defined outside defs not supported.<br />
*pservers-grad-08-b - Gradients defined outside defs not supported.<br />
*pservers-grad-09-b - Ok.<br />
*pservers-grad-10-b - Ok.<br />
*pservers-grad-11-b - Partial (Absolute gradients on text issue, text stroke not supported).<br />
*pservers-grad-12-b - Ok.<br />
*pservers-grad-13-b - Very partial use support.<br />
*pservers-grad-14-b - Ok.<br />
*pservers-grad-15-b - Ok.<br />
*pservers-grad-16-b - Partial (Last stop less than all previous stops isn't offset to 1).<br />
*pservers-grad-17-b - Multiple values rotation not supported.<br />
*pservers-grad-18-b - Inherit and Currentcolor not supported.<br />
*pservers-grad-19-b - Animation, Inherit and Currentcolor not supported.<br />
<br />
=== Render ===<br />
*render-elems-01-t - Ok.<br />
*render-elems-02-t - Ok (except !ENTITY support not implemented).<br />
*render-elems-03-t - Fails (!ENTITY support not implemented).<br />
*render-elems-06-t (and following) - Glyphs (defs) support not implemented.<br />
*render-groups-03-t - Glyphs fail.<br />
<br />
=== Shapes ===<br />
*shapes-circle-01-t- Partial (Stroke is rendered inside the object).<br />
*shapes-circle-02-t - Partial (not clipped).<br />
*shapes-ellipse-01-t - Partial (Stroke is rendered inside the object).<br />
*shapes-ellipse-02-t - Partial (not clipped).<br />
*shapes-intro-01-t - Ok.<br />
*shapes-line-01-t - Ok.<br />
*shapes-polygon-01-t - Ok.<br />
*shapes-polyline-01-t - Ok.<br />
*shapes-rect-01-t - Partial (Stroke is rendered inside the object).<br />
*shapes-rect-02-t - Partial (Stroke is rendered inside the object).<br />
<br />
=== Struct ===<br />
Relative images don't work with kaxaml (work with okino)<br />
*struct-defs-01-t - Ok.<br />
*struct-frag-01-t - Ok.<br />
*struct-frag-02-t - Viewbox not correctly implemented.<br />
*struct-group-01-t - Ok.<br />
*struct-group-02-b - Ok.<br />
*struct-group-03-t - Doesn't work with defs in a group.<br />
*struct-image-01-t - Ok.<br />
*struct-image-04-t - Image embedding fails.<br />
*struct-image-06-t - PreserveRation not supported.<br />
<br />
=== Text ===<br />
*text-align-01-b - Text-anchor not supported (could be hacked with StackPanel, but a bit too complex).<br />
*text-align-02-b - Sub and super support (no relative values).<br />
*text-align-03-b - Text-anchor not supported.<br />
*text-align-04-b - Text-anchor not supported.<br />
*text-align-05-b - Text-anchor and writing mode (tb-bt) not supported.<br />
*text-align-06-b - Text-anchor and writing mode (tb-bt) not supported.<br />
*text-align-08-b - Glyphs not supported<br />
*text-deco-01-b - Ok.<br />
*text-fonts-01-t - Generic fonts not supported.<br />
*text-fonts-02-t - Ok.<br />
*text-fonts-03-t - Ok.<br />
*text-intro-01-t - Ok (CJK fonts not tested).<br />
*text-intro-02-b - Direction not changed for roman characters.<br />
*text-intro-03-b - Writing mode not supported<br />
*text-intro-04-t - Ok (CJK fonts not tested).<br />
*text-intro-05-t - Text-anchor not supported.<br />
*text-path-01-b - Text on path not supported.<br />
*text-spacing-01-b - Letter and word spacing not supported (needs confirmation).<br />
*text-text-01-b - textLength and LengthAdjust not supported (needs confirmation).<br />
*text-text-03-b - Ok.<br />
*text-text-04-t to text-text-06-t - Text-anchor not supported; multiple x and y values not supported.<br />
*text-text-07-t - Text rotation not supported.<br />
*text-text-08-b - Text stroke not supported (could be implemented via Border).<br />
*text-tref-01-b - tref not supported.<br />
*text-tselect-01-b - span positioning not supported.<br />
*text-tspan-01-b - span positioning not supported.<br />
*text-ws-01-t - Ok.<br />
*text-ws-02-t - Some xml:space="preserve" issues.<br />
<br />
=== Other tests ===<br />
(from the scour trunk: http://bazaar.launchpad.net/~scouring/scour/trunk/files/head%3A/fulltests/)<br />
*acid - Ok.<br />
*appartment - Partial (Multiple fill values not supported).<br />
*boom - Ok.<br />
*cgmail - Partial (Incorrect position of absolute gradients).<br />
*Degri_Energy_Saving_Lightbulb - Ok.<br />
*dragonfly - Ok.<br />
*gimp - Partial (Incorrect position of absolute gradients).<br />
*git-cola-icons - Partial (Use not implemented).<br />
*grapes - DOCTYPE (crashes the XSLT conversion). Ok after removal.<br />
*GusEinstein_Angel - Partial (Multiple fill values not supported).<br />
*inkscape - Partial (Incorrect position of absolute gradients).<br />
*lightning - Partial (DOCTYPE not supported, multiple fill values not supported).<br />
*manchester - Ok.<br />
*News_Papers - Partial (Incorrect position of absolute gradients).<br />
*notebook - Partial (Incorrect position of absolute gradients).<br />
*notification-audio-next - Partial (Incorrect position of absolute gradients).<br />
*<abbr title="Open Clip Art Library">ocal</abbr> - DOCTYPE not supported, issue with svg:svg.<br />
*oggconvert - Partial (Incorrect position of absolute gradients, maybe text position).<br />
<br />
[[Category:Developer Documentation]]<br />
[[Category:Specification]]</div>NeoPhyte Rephttps://wiki.inkscape.org/wiki/index.php?title=User_talk:~suv/List_of_Launchpad_bug_tags&diff=74144User talk:~suv/List of Launchpad bug tags2011-12-02T17:36:58Z<p>NeoPhyte Rep: /* other */ Linked to Open Clip Art Library</p>
<hr />
<div>=== Discussion / Questions ===<br />
<br />
;Guidelines for using tags? (inkscape-devel thread)<br />
:"[http://thread.gmane.org/gmane.comp.graphics.inkscape.devel/31517 bug tracker: Guideslines for tags?]"<br />
;List of tags for bug triage :where to keep an updated list of used inkscape bug tracker (launchpad) tags?<br />
;Who manages the list of offical tags? (inkscape-devel thread)<br />
:"[http://thread.gmane.org/gmane.comp.graphics.inkscape.devel/32092 LP: official tag list not accessible for Bug Team members?]"<br />
:the Launchpad bug tracker offers a page to manage tags (both official and others), but it is not accessible for Bug Team members, not even read-only<br />
<br />
=== Recent tag changes ===<br />
<br />
Currently there is no method available (or in reach of my limited skills?) to extract used tags from the launchpad bug tracker. Bug tracker notifications per e-mail contain a X-header field (X-Launchpad-Bug-Tags) that lists the current tags of a bug report and any changes to the tags is listed as part of the message body. <br />
:list of [[ extracted bug tags ]] from the mbox since I joined the bug team ''( last update: Tue, Dec 29 2009 18:24 CET)'' [[User:~suv|~suv]]<br />
<br />
=== Categories for tags in use? ===<br />
;What: categorize & consolidate [[ List of Launchpad bug tags#used_tags_2009-11-12|previous list]] of (existing/in-use) tags on launchpad? <br />
<!-- (can I use fragment identifiers in wiki syntax and still define the title of the link? - like: [[BugTagsList#used_tags_2009-10-12]] but with a shorter title? ~suv) solved: [[page title#section|text]] --><br />
;Issue: Launchpad UI only allows search for tags with exact match (i.e. a full text search can only be limited by known tags)<br />
;Note: this is not a proposal - just trying to keep track of status-quo<br />
;TODO: compare with [[Inkscape glossary]] ?<br />
: Does anyone have the list of tags/categories used in the sourceforge bug tracker and migrated to launchpad or know where to find them?<br />
==== objects / attributes / actions ====<br />
'''-- objects'''<br />
*object-shape<br />
*object-text<br />
*objects<br />
*objects-freehand-calligraphic<br />
*objects-gradients<br />
*objects-markers<br />
*objects-nodes<br />
*objects-pattern<br />
*path<br />
*text<br />
<br />
'''-- attributes'''<br />
*alpha<br />
*color<br />
*gradient<br />
*opacity<br />
*styles<br />
*stroke<br />
<br />
'''-- actions''' (verbs?)<br />
*blur<br />
*clipping<br />
*groups<br />
*livepatheffects<br />
*locking<br />
*node-editing<br />
*shape-editing<br />
*snapping<br />
*transformations<br />
*undo<br />
*zoom<br />
<br />
'''-- svg'''<br />
*bitmap<br />
*clones<br />
*css<br />
*defs<br />
*gradient<br />
*grids<br />
*guides<br />
*layers<br />
*link<br />
*markers<br />
*pattern<br />
*viewbox<br />
<br />
==== tools ====<br />
*3dbox<br />
*bezier<br />
*calligraphy<br />
*connectors<br />
*eraser<br />
*freehand<br />
*gradient<br />
*pen <br />
*pencil<br />
*perspective<br />
*text<br />
*tracing <br />
*tweak '' -- added''<br />
*tweak-tool '' -- discovered in old, fixed reports''<br />
*xmleditor<br />
<br />
==== modules ====<br />
*svg<br />
*svg-xml<br />
*css<br />
*styles<br />
*content<br />
*filters-svg <br />
*livepatheffects<br />
*text<br />
*fonts<br />
*encoding '' -- once used - to be proposed?''<br />
*bidi<br />
*cjk<br />
*2geom <br />
*renderer<br />
*cairo<br />
*poppler <br />
*inkboard<br />
*extensions<br />
*extensions-plugins<br />
*java <br />
*python<br />
*uniconvertor <br />
*gtk-osx '' -- added''<br />
*x11<br />
<br />
==== user interface ====<br />
'''-- graphical'''<br />
*autosave<br />
*clipboard<br />
*desktop-integration<br />
*fullscreen<br />
*rulers<br />
*tablet <br />
*ui<br />
*ui-dialogs-toolbars<br />
*ui-guide-grid-ruler<br />
*ui-palette-color<br />
*ui-preferences<br />
*ui-preview<br />
*ui-selection-group-layer<br />
*ui-shortcuts<br />
*ui-text<br />
*ui-xml<br />
<br />
'''-- keys'''<br />
*ui-shortcuts<br />
<br />
'''-- cli'''<br />
*cli<br />
<br />
'''-- verbs'''<br />
*exporting<br />
*importing<br />
*printing<br />
*saving<br />
<br />
==== build ====<br />
*build-compile-code-design<br />
*configure<br />
*build<br />
*packaging<br />
*installer<br />
<br />
==== export-import formats ====<br />
*cdr<br />
*dia<br />
*dxf<br />
*emf<br />
*eps<br />
*gnuplot<br />
*hpgl<br />
*javafx<br />
*latex<br />
*odg<br />
*pdf<br />
*png<br />
*ps<br />
*psfrag <br />
*vml<br />
*wmf<br />
*xaml<br />
*xcf <br />
<br />
==== platforms ====<br />
*all-platforms<br />
*64-bit <br />
*amd64 <br />
*bsd<br />
*linux<br />
*osx<br />
*solaris<br />
*win32<br />
*win32-vista<br />
<br />
==== documentation ====<br />
*doumentation<br />
*licence<br />
*metadata<br />
*tutorials<br />
*translation<br />
*website<br />
*wiki<br />
<br />
==== triage ====<br />
*blocker<br />
*crash <br />
*needs-confirm-on-svn-head<br />
*patch <br />
*regression<br />
<br />
==== other ====<br />
*accessibility<br />
*gsoc2009-color<br />
*ocal ([http://www.openclipart.org/ Open Clip Art Library])<br />
*other<br />
*performance <br />
*soc-2008-juca<br />
*usability</div>NeoPhyte Rephttps://wiki.inkscape.org/wiki/index.php?title=UserStories047/Wirelizard&diff=74138UserStories047/Wirelizard2011-12-02T17:30:52Z<p>NeoPhyte Rep: /* Do you give us permission to use this to promote Inkscape? */ Linked OCAL acronym to the library</p>
<hr />
<div>===What is your Name?===<br />
<br />
Brian Burger, but I use "Madpilot" on IRC and "Wirelizard" on many, many places on the 'net.<br />
<br />
===Can you give us a Photo?===<br />
[[image:Wirelizard_logo_160x160.png]]<br />
<br />
Not a photo, sorry - I haven't got a single recent semi-decent pic of myself. Instead, here's the logo I use everywhere!<br />
<br />
It was created in Inkscape too, starting with a very simple lizard outline I found over on <abbr title="Open Clip Art Library">OCAL</abbr>.<br />
<br />
===What do you think about Inkscape?===<br />
<br />
It's probably my favourite single application! <br />
<br />
===Can you give us a Hot Tip for using Inkscape?===<br />
<br />
Remember that SVGs can easily be taken apart - not sure how an image was put together, or a particular effect achieved? Open the SVG in Inkscape and start exploring!<br />
<br />
Rip it apart, try to put it back together again, take notes! The Inkscape Tutorials are all big SVG files and are perfect for doing this to; there's some spectacular SVG artwork on OpenClipArt and elsewhere that'll teach you a lot; and Inkscape's own splash screens (the ones visible at Help->About Inkscape) are SVGs themselves and always shipped with Inkscape.<br />
<br />
Also, the Align & Distribute dialogue (Object -> Align & Distribute... or Shift+Ctrl+A) is great and incredibly powerful. Need a quick pattern, or a grid? Start with one shape or line, duplicate, and use the A&D functions to get your grid or pattern incredibly quickly and easily.<br />
<br />
===Can you share some of your Artwork?===<br />
[[image:Airplane_high_wing.png]]<br />
<br />
I'm on OpenClipArt: http://openclipart.org/media/people/wirelizard<br />
===How did you do it?===<br />
<br />
This image started out as a tiny, highly pixelated GIF from somewhere on the Federal Aviation Administration's website. Being a US Government image, it was aleady Public Domain, but as I totally redrew it from scratch, that doesn't apply.<br />
<br />
I imported that GIF into Inkscape, expanded it a bit, then used Path->Trace Bitmap to get a (fairly crude) SVG version. After that, it was lots and lots of manual editing and deletion down at the node level.<br />
<br />
Whole sections got deleted and redrawn from scratch, because the orginal GIF was so low-res it didn't produce a useable SVG when traced.<br />
<br />
I used Path->Difference several places to 'cut' new shapes out of the black parts, and Path->Union to add a few bits where that was easier than editing existed nodes or adding nodes to existing shapes.<br />
<br />
===Do you give us permission to use this to promote Inkscape?===<br />
<br />
Like most [http://www.openclipart.org/ OCAL] images, that one is already Public Domain, so go ahead!</div>NeoPhyte Rephttps://wiki.inkscape.org/wiki/index.php?title=UserStories047/Wirelizard&diff=74132UserStories047/Wirelizard2011-12-02T17:29:00Z<p>NeoPhyte Rep: /* Can you give us a Photo? */ Provided OCAL expansion</p>
<hr />
<div>===What is your Name?===<br />
<br />
Brian Burger, but I use "Madpilot" on IRC and "Wirelizard" on many, many places on the 'net.<br />
<br />
===Can you give us a Photo?===<br />
[[image:Wirelizard_logo_160x160.png]]<br />
<br />
Not a photo, sorry - I haven't got a single recent semi-decent pic of myself. Instead, here's the logo I use everywhere!<br />
<br />
It was created in Inkscape too, starting with a very simple lizard outline I found over on <abbr title="Open Clip Art Library">OCAL</abbr>.<br />
<br />
===What do you think about Inkscape?===<br />
<br />
It's probably my favourite single application! <br />
<br />
===Can you give us a Hot Tip for using Inkscape?===<br />
<br />
Remember that SVGs can easily be taken apart - not sure how an image was put together, or a particular effect achieved? Open the SVG in Inkscape and start exploring!<br />
<br />
Rip it apart, try to put it back together again, take notes! The Inkscape Tutorials are all big SVG files and are perfect for doing this to; there's some spectacular SVG artwork on OpenClipArt and elsewhere that'll teach you a lot; and Inkscape's own splash screens (the ones visible at Help->About Inkscape) are SVGs themselves and always shipped with Inkscape.<br />
<br />
Also, the Align & Distribute dialogue (Object -> Align & Distribute... or Shift+Ctrl+A) is great and incredibly powerful. Need a quick pattern, or a grid? Start with one shape or line, duplicate, and use the A&D functions to get your grid or pattern incredibly quickly and easily.<br />
<br />
===Can you share some of your Artwork?===<br />
[[image:Airplane_high_wing.png]]<br />
<br />
I'm on OpenClipArt: http://openclipart.org/media/people/wirelizard<br />
===How did you do it?===<br />
<br />
This image started out as a tiny, highly pixelated GIF from somewhere on the Federal Aviation Administration's website. Being a US Government image, it was aleady Public Domain, but as I totally redrew it from scratch, that doesn't apply.<br />
<br />
I imported that GIF into Inkscape, expanded it a bit, then used Path->Trace Bitmap to get a (fairly crude) SVG version. After that, it was lots and lots of manual editing and deletion down at the node level.<br />
<br />
Whole sections got deleted and redrawn from scratch, because the orginal GIF was so low-res it didn't produce a useable SVG when traced.<br />
<br />
I used Path->Difference several places to 'cut' new shapes out of the black parts, and Path->Union to add a few bits where that was easier than editing existed nodes or adding nodes to existing shapes.<br />
<br />
===Do you give us permission to use this to promote Inkscape?===<br />
<br />
Like most OCAL images, that one is already Public Domain, so go ahead!</div>NeoPhyte Rephttps://wiki.inkscape.org/wiki/index.php?title=User:Peileppe&diff=74126User:Peileppe2011-12-02T17:25:29Z<p>NeoPhyte Rep: Provided OCAL expansion</p>
<hr />
<div>Peileppe's link<br />
<br />
[http://openclipart.org/media/people/Peileppe <abbr title="Open Clip Art Library">OCAL</abbr> user's page]<br />
<br />
[http://peileppe.wordpress.com Peileppe Production] FanArt for Wesnoth, this blog is committed to build a comic (using mainly Inkscape) based on the Battle for Wesnoth's campaign "Heir to the Throne".<br />
Add a link to your Inkscape gallery here!</div>NeoPhyte Rephttps://wiki.inkscape.org/wiki/index.php?title=TeamInterview046&diff=74120TeamInterview0462011-12-02T17:23:32Z<p>NeoPhyte Rep: /* Ted Gould */ Corrected OCAL link "Slip" -> "Clip"</p>
<hr />
<div>= Interview with the team on Inkscape 0.46 =<br />
<br />
With almost 50 contributors out of 111 registered at SourceForge, and even more, if you count those who just sent a patch via patches tracker, it's not really possible to talk to everyone who participated at the preparation of the shiny new Inkscape 0.46 release.<br />
<br />
Here is an interview with several Google Summer of Code 2007 students and several Inkscape developers.<br />
<br />
== Maximilian Albert ==<br />
<br />
'''Info''': Heidelberg, Germany. Aiming for a "Diplom" degree in mathematics (currently in the middle of his final examinations), singing in various choirs & vocal groups and coding for Inkscape.<br />
<br />
''When you started 3D box tool, did you have in mind just drawing a 3D box or did you think about it as of first step to functionality like extrusion?''<br />
<br />
I certainly also had extrusion in mind, as well as a couple of other things (in particular, I would have loved if the opportunity had arisen to include more "geometric" functionality; see the link below). You may want to have a look at the original proposal, especially at the section "further ideas":<br />
<br />
<strike>http://www.rzuser.uni-heidelberg.de/~malbert/</strike><br />
<br />
And never mind that with hindsight the proposal turned out too ambitious :-/ Unfortunately the internal refactoring of the tool that was necessary after the end of SoC has kept me from completing a lot of these things in the meantime. Since I'm in the middle of my final examinations right now and do not yet know what will come afterwards, I'm not sure when I will get to resuming my work on it (other than providing a couple of improvements here and there). But hope dies last :)<br />
<br />
The good news is that the refactoring has brought extrusion very much within reach. It was only after SoC that I truly discovered lib2geom, but while playing around with it, it was only a matter of one night's work to produce a kind of [[LivePathEffects|LPE]] which draws a given arbitrary shape in a certain perspective :) However, integrating this into Inkscape itself will still be a challenge and require a lot of work (especially on the UI side). But the first attempts look promising.<br />
<br />
''While extrusion looks like natural next step, what more could be done based on current code?''<br />
<br />
Well, the above-mentioned draw-a-path-in-perspective thingy (which is actually tightly connected to extrusion) is definitely one thing that could and should be done. I believe that 3D box-based grids would also prove rather easy to do.<br />
<br />
Other than that, most things are likely to require a good deal of more infrastructure or interoperability with other parts of the code, and I don't have a concrete idea in mind what would be most natural thing to do. Of course, there also remains a huge deal to improve about the tool itself, its features and user-friendliness, so there probably won't be time to tackle great new tasks in the near future anyway.<br />
<br />
== Johan Engelen ==<br />
<br />
'''Info''': Enschede, The Netherlands. Working on tiny electrical machines for his PhD, playing guitar, drums and sax, and working on Inkscape 1.0.<br />
<br />
''[[GSOC2007 Live path effects in Inkscape|Live Path Effects]] definitely bring Inkscape to a new level of flexibility. Could you please explain in few words how they "tick"?''<br />
<br />
Basically, Inkscape stores the original path in an "inkscape:original-d" attribute of a path. When it encounters such an attribute, it applies the effect referred to in the "inkscape:path-effect" attribute and outputs the result to the SVG "d" attribute. This way, LPE is 100% valid SVG and the result should look the same in all SVG viewers. Inkscape sees the "inkscape:original-d" attribute, but viewers and other editors will just ignore it and use the normal SVG "d" attribute.<br />
<br />
"inkscape:original-d" => LPE calculation => "d"<br />
<br />
Because the original path data is stored, Inkscape can perform node editing on it and recalculate the effect (and the result is again stored in the "d" attribute).<br />
<br />
Most effects will need parameters to modify their behavior. Those parameters are stored in the <defs> section of the SVG file. Probably it is best to start Inkscape, apply an effect and see what the SVG looks like in the XML Editor!<br />
<br />
The mathematics is done using lib2geom, or 2geom as we call it. Although this library is still in Alpha phase, it is already very powerful and greatly simplifies the programming effort on path data. This helped me a lot in writing the LPEs and it would have been much harder without it. We are planning on rewriting most of Inkscape to use 2geom functions.<br />
<br />
''Can new live effects easily be plugged into Inkscape?''<br />
<br />
One of the goals of my GSoC project was to make a framework for LPEs, so that developers can easily add new effects, without knowing much of the internals of Inkscape. Although all LPEs in 0.46 are written by me, I think I have succeeded in that goal: already 3 new LPEs have been added to Inkscape's codebase (personal favorite: a 'sketch' effect)<br />
<br />
Right now, Live Path Effects are built into the Inkscape executable, unlike the Python extensions. So it is not possible to, say, download a new effect from internet and use it in Inkscape. In the future, I intend to work on a plug-in system for LPEs, that would enable this downloading of new effects.<br />
<br />
''What great new effects could be done using LPE?''<br />
<br />
At the moment we already have a couple of powerful LPEs in Inkscape, displaying the possibilities. Live boolean operations could also be done with LPE.<br />
<br />
Right now, I am mentoring a group of French students who are working on an envelope distortion LPE. When that is working, the next step could be mesh distortion...<br />
<br />
== Gail Carmichael ==<br />
<br />
'''Info''': Becoming a Master of Computer Science in Ottawa, kicking butt in Taekwon Do, and trying to contribute to Inkscape with what time is left in between.<br />
<br />
''Text related changes that your GSoC projects brings to codebase in 0.46 are probably not quite user visible. Do they provide some groundwork for future versions? Could you please elaborate on that a little?''<br />
<br />
It is true that a lot of my work isn't as obvious or exciting to users as, say, the new 3D box tool. But that's exactly why the text tool can be so easily neglected, and one reason I wanted to jump on board with it and work on some improvements for the Summer of Code.<br />
<br />
The two areas that I worked on last summer included adding support for the <tref> element and adding a new font specification attribute to text elements. Thanks to the latter project, users will no longer be frustrated with duplicate or unselectable font choices in the font dialog. This also laid the groundwork for being able to change how we list the font families and styles in the dialog (that is, we can separate the names from the styles however we wish), and to support fonts that CSS can't describe. Hopefully I will be able to see this extra work through some day.<br />
<br />
''You had two internships in Corel before entering GSoC in 2007. How exactly different does it feel to work/research for an open source project? :)''<br />
<br />
It's a whole new experience to work with a team you can't see or talk to in person. (Though I was fortunate enough to meet a few key Inkscapers at the [http://www.libregraphicsmeeting.org/ LGM] in Montreal before the summer coding began.) The freedom you have when working on an open source project is quite nice, because you can work on pretty much whatever you want to. It's also quite interesting to see that all software projects, open source or commercial, can suffer from the same problems. For example, whether you belong to a corporate development team or contribute to an open source project, you are bound to produce bugs. What may differ is how these bugs are reported, triaged, and fixed. In open source, the user community participates in the process much more.<br />
<br />
== Miklós Erdélyi ==<br />
<br />
'''Info''': Dealing with problems in information retrieval from<br />
under his desk and from the Web, while beating piano and computer<br />
keyboards. When not quite occupied (in the summer), he likes to relax<br />
and do some hopefully serious Inkscape stuff, just for fun.<br />
<br />
''This is the second time you take part at [http://code.google.com/soc/ GSoC] for Inkscape. The previous time it was [http://cairographics.org/ Cairo] based exporting to [http://en.wikipedia.org/wiki/Portable_Document_Format PDF]. Looks like you have pretty good impressions of Google Summer of Code, haven't you? :) What's most important thing you learned from participating at the program? Are you planning to do it the third time this year?''<br />
<br />
Yeah, GSoC is cool since you can get really involved in an open source<br />
project and your code can impact thousands of users (besides, you get<br />
paid for doing your hobby). The most important thing I learnt from the<br />
program was that being able to communicate and get others acquainted<br />
with the problems, difficulties you face during development is just<br />
almost as important as being able to write good code.<br />
<br />
I'm planning to do GSoC for the third time this year. Besides bug<br />
fixing, I have some ideas for PDF import improvements like embedded<br />
font handling, metadata import, better transparency support. Regarding<br />
PDF export and the (yet immature) Cairo-based renderer, there are<br />
areas which could be enhanced to pass more tests from the [http://www.w3.org/Graphics/SVG/WG/wiki/Test_Suite_Overview#SVG_1.1_Test_Suite SVG 1.1 Conformance Test Suite], not mentioning the improvements which could be<br />
made because of the much better PDF backend available in Cairo<br />
compared to what was available at the time the original PDF export<br />
extension was written.<br />
<br />
''You project this year was PDF/[http://en.wikipedia.org/wiki/Adobe_Illustrator AI] import. How does your importer treat documents with [https://secure.wikimedia.org/wikipedia/en/wiki/CMYK_color_model CMYK] colors and colors that are mapped to a particular [https://secure.wikimedia.org/wikipedia/en/wiki/International_Color_Consortium ICC] profile?''<br />
<br />
At the moment the importer uses Poppler's color space conversion<br />
functions to always convert colors encountered in the PDF document to<br />
the [https://secure.wikimedia.org/wikipedia/en/wiki/RGB_color_model RGB] color space. These parts could be easily changed to support<br />
the CMYK color space since CMYK and ICC profile support is already<br />
built into Poppler.<br />
<br />
== Bryce Harrington ==<br />
<br />
'''Info''': Portland, OR. I work at Canonical as the Ubuntu X.org maintainer, enjoy woodworking, and these focus on release coordination for Inkscape.<br />
<br />
''One sad fact about Inkscape is that it can be dead slow on complex documents. It was proclaimed that 0.47 will undergo a significant refactoring of the code base. Will it be just getting rid of code duplications and the like, or will it also bring various speed/memory optimizations, thread safety etc. to make Inkscape as robust and low-fat as possible?''<br />
<br />
Rather than performance, 0.47 will be focusing on getting rid of code duplications, correcting style inconsistencies, fixing object referencing issues, organizing source files better, breaking out libraries and sub-packages, continuing more C-to-C++ work, and completing various architectural reworking efforts that have been delayed by other priorities in the past.<br />
<br />
In theory, this should greatly help improve our situation with respect to thread safety. Performance improvements will probably be accidental, but hopefully with a cleaner codebase, performance improvements should become more obvious and simpler to do.<br />
<br />
However, often performance issues are algorithmic limitations, requiring shifting to different data structures or alternative logic, yet cannot be done due to the quantity of refactoring this would entail. 0.47 would be the ideal time to undertake such work, so I'm hopeful to see some ideas for these kind of improvements on the todo list.<br />
<br />
The refactoring will also get us into a better shape for switching out our renderer to Cairo. At that point, we'll be able to leverage the Cairo team to help attain performance boosts on complex documents.<br />
<br />
''Are there any plans to implement optional use of GPU (e.g. through cairo-glitz)?''<br />
<br />
Exactly; once we have transitioned fully over to Cairo (post-0.47), this will be an important goal for us. It will take quite a bit of testing and working with the Cairo community to ensure we get maximum benefit of this.<br />
<br />
''Some Inkscape developers are known to create pet projects that might or might not be used by the core project later. Live Path Effects that entered 0.46 are largely based on [http://lib2geom.sourceforge.net/ 2geom] — a library for computational geometry, though its integration was planned rather for 0.47. Can you name other subprojects that are in the queue for further inclusion? [http://adaptagrams.sourceforge.net Adaptagrams] maybe?''<br />
<br />
A lot of people are excited about the potential 2geom brings. I'm very enthusiastic to see it finish its alpha phase and be released in a form that we can start linking to as a normal dependency. Transitioning fully to 2geom will help remove a lot of core logic from Inkscape into a form that is easier for experts to maintain and optimize.<br />
<br />
One of the cool things about Inkscape is having people (often new contributors) bringing these new ideas into the project. Leveraging other people's code is one of the greatest features of being open source.<br />
<br />
We've also seen some great work with extensions and LPE's, and in 0.47/0.48 I'm hoping we can see plug-in type features be more formally handled in Inkscape, so that people can develop and install new extensions independently of the main Inkscape releases. This could both stimulate new subprojects, and remove code from the Inkscape core to reduce its weight and better distribute the maintenance efforts.<br />
<br />
Inkboard is another sub-project which has received a lot of work but is not yet formally included by default in Inkscape. Unfortunately, it is not being maintained as actively as needed, and it's got a number of critical bugs that makes it difficult to use at the moment; this would be a great project for someone to build a subproject around.<br />
<br />
I expect one day we'll also have an animation sub-project. It's a popular feature request. While there's been discussion on the mailing list about it, we're still waiting on some proof of concept implementations of the various ideas and approaches. I think this would be rich and fruitful area for people with ample time and the need for a fun coding challenge to take stabs at.<br />
<br />
== John Bintz ==<br />
<br />
'''Info''': works and plays in Baltimore, MD. When he's not at his day job as a Web programmer, he's usually doing something comic related (most like working on "A Moment of Clarity," his all-ages comic), and his work on Inkscape is aimed toward making it the best tool for drawing, illustration, and comics. When he's not staring at a computer monitor, he drinks beer and thinks about making comics.<br />
<br />
''The new and shiny Inkscape 0.46 features a versatile bucket fill tool that traces any closed shape (bitmap or raster) to a path filled with a user defined color. In the past we've already seen Adobe dropping its standalone vectorization tool in favor of Live Trace in CS2. Might it be that Bucket Fill tool will obsolete the potrace-based tracer in the future? Or will the tracer become a interactive tool as well (considering that e.g. its [https://secure.wikimedia.org/wikipedia/en/wiki/Simple_Interactive_Object_Extraction SIOX] related part still has room to enhancements)?''<br />
<br />
Honestly, I don't know. :) My experience with using potrace for bitmap tracing is limited to only what I needed to get the Bucket Fill tool working. The touch-fill functionality of the tool would be perfect for performing SIOX-like selections of areas to trace into appropriately-colored vector objects. I can still see the need for converting an entire imported image to vector in one swipe, say a logo, without needing to switch to a different tool to do so. Also, I don't have enough experience with Live Trace to know just how it operates.<br />
<br />
''I've seen the first contribution from you in the development tree around autumn 2003, at the very beginning of the project. But you wrote the Bucket Fill tool only last year. Might it mean that Inkscape has just become THE tool for your comics work?''<br />
<br />
Well that first contribution, which fixed a few small UI issues in [http://sourceforge.net/projects/sodipodi/ Sodipodi,] was done years before I even thought about doing "A Moment of Clarity," let alone doing the inking and coloring for it in vector. I didn't start using Inkscape seriously for my illustration work until 0.44, when the Calligraphy tool became solid enough for my style of inking, and when layer support was improved. Even then, there were many stability issues that made the drawing process frustrating. Between myself and other Inkscape devs, those issues were fixed in very short order. The Bucket Fill and Tweak tools were the final pieces of the puzzle that gave Inkscape a huge advantage over other drawing tools. Except for scanning in the original pencil artwork in [http://www.gimp.org/ GIMP], and exporting the Web- and print-ready artwork using [http://www.imagemagick.org/script/index.php ImageMagick,] the final comics you see are done entirely in Inkscape.<br />
<br />
Now, with the release of 0.46, I feel very comfortable recommending the software to other comic artists who are interested in working in vector and don't like the approach that other vector tools take when it comes to hand-drawn illustration work. I've shown development builds of the software to a few other artists and, with few exceptions, they immediately asked when the final version (0.46) would be out. :)<br />
<br />
== Ted Gould ==<br />
<br />
'''Info''': Los Angeles, California. I work for Canonical on Ubuntu and enjoy photography, hiking and graphics.<br />
<br />
''The new version is a major leap to a better support for SVG features thanks to our "filters" and "text" people. What could be the next big thing feature-wise in 0.47? I think I saw a writing on the wall, and it mentioned SVG Fonts for sure... :-)''<br />
<br />
I try not to predict the "biggest" until the release is frozen, it's amazing what surprises people bring to the table. But if you're talking about SVG features I think the last major feature we need is fonts, so if that gets done for 0.47 it'll be big. But, we're hoping to have a lot of cleanup being the focus for the next little while, so hopefully the biggest features will be more polish and stability.<br />
<br />
''Raster effects that are available in 0.46 thanks to a GSoC student and ImageMagick (and you :-)) are destructive, while SVG Filters in the very same 0.46 are non-destructive. Do you see a way to unify them in one UI or, at least, make both non-destructive?''<br />
<br />
I don't like to think of anything as destructive as we still support the full undo buffer and user's data is never lost.<br />
<br />
But, as far as effects keeping the original shapes, I would like to see that. I hope that as the live-path-effects can be merged into the extensions system that additional code would allow for keeping data. I doubt that the UIs would be merged between SVG filters and effects, they're doing distinctly different operations, one is changing properties of the renderer while the other is changing the document.<br />
<br />
''Integration with smart web services seems to be a hot trend these days. On design horizon we have [[https://secure.wikimedia.org/wikipedia/en/wiki/Adobe_Illustrator Adobe Illustrator] mating with [http://kuler.adobe.com/ Kuler,] [[http://www.corel.com/coreldraw/ Corel DRAW X4] integrating with [http://new.myfonts.com/WhatTheFont/ WhatTheFont] and now Inkscape 0.46 sharing drawings via [http://www.openclipart.org/ Open Clip Art Library (OCAL)]. Do you think Inkscape should be moving further in this direction?''<br />
<br />
While I'm happy with the Inkscape integration of Open Clipart, I think that application integration is a hallow success for most users. That's because most users don't use a single application in their workflow. Integrated smart web apps into user's workflow is something that should be handled at the desktop level not the application one. Hopefully we'll start to see trends like that emerge on Desktops, and I'd like to see Inkscape integrate into those frameworks.<br />
<br />
== Jon Cruz ==<br />
<br />
'''Info''': A software engineer with professional experience ranging from hand-helds and PDA's through to large scale server systems and infrastructure, doing multimedia, entertainment, set-tops, Linux, security and wireless along the way.<br />
<br />
''Let me treat you as all-things-color guy in the project :) Inkscape 0.46 has color management, but still lacks usual editing of color swatches. You mentioned before that Agave could be used as external editor of color swatches. What's the most possible way to go in 0.47 and beyond to provide currently missing functionality regarding swatches?''<br />
<br />
Well, the main difference we're looking at is in trying to target support for all swatches, not just "color swatches". This is similar to how a graphic designer, clothing designer or even home decorator might collect up various things into a "swatch book". So a "swatch" is really a sample of some material, and we would like to take that approach. This is especially so considering that it closer matches how artists work.<br />
<br />
What that means for an Inkscape user is that we will try to organize things with a focus on how they are to be used, not on how they are implemented internally. Also this will allow for collecting up colors, gradients, patterns, etc. into individual "swatch books" that can be shared between documents and that many can be open & used at once. So someone doing a web comic might create a separate swatch book for each character so that they can easily manage their workflow and get "Bob's hair" and "bob's shirt" right without having to think too much.<br />
<br />
It would also bee good to have these stored externally in an easy to share format. The [http://create.freedesktop.org/wiki/index.php/About CREATE] group worked out a format for more robust color exchange that I'll be using as a basis for the external color storage. Not all who were working on that had an immediate need for more than just color, but a few have. So I'll be trying to implement something in a standard way that is easy for other applications to support. At the least we will be able to exchange complex colors (spot, registration, CMYK, etc.) and base gradients. GIMP can use a few more options on gradients, but gradients in SVG can be viewed as a subset of those possible in GIMP, so those can be shared. And it would be nice if we could leverage CSS as much as possible in the process so as to keep things even more interchangeable.<br />
<br />
So, to sum that up, we will be taking a two-pronged approach. First is a user-visible change to add a nice UI to manage sets of colors, gradients, etc. in a manner that is more natural for artists. Second is to keep things implemented as standard and sharable as possible. Agave, Inkscape, Scribus and GIMP can all benefit from shared resources such as this, and I've been in touch with others from all those projects to try to ensure the community will be able to benefit.<br />
<br />
''I hear you've been doing some work on better support for input devices? Is it just about graphic tablets like Wacom and Aiptek or some other controllers like Griffin PowerMate too? Could you elaborate please?''<br />
<br />
The first part will be to support tablets and the like. GTK+ provides a standard cross-platform mechanism to access their capabilities, and we are already using that for the Calligraphy tool. I'm adding more use of that API so that we can present a much nicer UI to manage and configure such devices. Also I'm adding in support for detection of different tools (pen, puck/tablet-mouse, eraser, etc.), to switch Inkscape tools or settings. Coincidentally at the same time someone came up with a patch to add named presets for the Calligraphy tool, which is one thing I was thinking would work nice with the enhanced tablet detection. Also we're going to be adding more access to tie certain actions to certain buttons on tablets, pens, etc. This last feature ties into the non-tablet devices for the second phase...<br />
<br />
The second part will be to try to add support for other devices such as the PowerMate, ShuttleXpress, Nulooq, etc., also MIDI based controllers and others. GIMP has had some support for various devices, so we at least have a model to draw from. The main limitation we have in this area is feedback from people how have such devices. If such people will give feedback and participate in discussions, we can add more support much sooner.<br />
<br />
The third part will be to try to take the high-level, artist-centric configuration approach and share things with other applications. This might mean having something that will read settings that GIMP has for devices and merge them into a unified workflow. Or we might get to collaborate with other projects on a more "big picture" way of managing such devices.<br />
<br />
== bulia byak ==<br />
<br />
'''Info''': a non-programmer from Canada who suddenly found himself in charge of a lot of things in Inkscape.<br />
<br />
''Once you mentioned that one of the reasons for creating engraver's toolbox in 0.46 was your love for old books illustrations. Did you mean illustration like the ones by Paul Gustave Doré? :)''<br />
<br />
I wouldn't cite any single name — I'm just enchanted by the style in general. From high art to clumsy kitsch, any old engravings have something that a lot of modern art utterly lacks: a thoroughly handmade feel in every tiny detail. This is what I want to make possible again. Technology has made a lot of things obsolete — but it also has a potential to resurrect them at a new level, and that's what I'm interested in.<br />
<br />
However stupid the current copyright laws may be, they have one unintended positive side effect: they force us to look closer at the old stuff which has by now reached the safe harbor of public domain. I think Encyclopedia Britannica's 1911 edition has had more keen readers than any of the subsequent editions, due to its reuse in Wikipedia. The same thing is at work for graphics: a lot of clip art these days is scans from century-old publications, and most of these scans are black-and-white engravings. So this visual style is suddenly relevant again, but we cannot live off the old stock forever — we need modern tools that would allow us to continue and develop the old technique. I want Inkscape to become one of such tools.<br />
<br />
''What further changes to the toolbox do you envision?''<br />
<br />
As for my future plans, time and resource permitting, I definitely want to expand this functionality, make it more robust and add features. I'm looking in two directions at once: I want it to be ''more'' automatic in the way it is done, yet at the same time ''less'' automatic — more handmade — in the way it looks. How far I will be able to go in these directions is hard to say, but I do have ideas to explore.<br />
<br />
''From what I remember, being one of key developers, you are also end-user of Inkscape. Is it the main drive behind your contributions?''<br />
<br />
Of course. I have always wanted to have a vector editor that does what I want in the way I want. That's what led me to Inkscape and what keeps me in the project to this day.<br />
<br />
----<br />
Interviewed by Alexandre Prokoudine</div>NeoPhyte Rephttps://wiki.inkscape.org/wiki/index.php?title=Release_notes/0.47&diff=74114Release notes/0.472011-12-02T17:20:07Z<p>NeoPhyte Rep: /* OCAL (Open Clip Art Library) Export */ Changed OCAL reference to linked name</p>
<hr />
<div>==Inkscape 0.47==<br />
'''([[AnnouncePlanning047]])'''<br />
<br />
Inkscape 0.47 brings a host of important improvements all across the program:<br />
<br />
* '''Timed autosave''': no more lost work<br />
<br />
* '''Spiro splines''': an exciting new way to work with paths, fully supported in Pen, Pencil, and Node tools <br />
<br />
* '''Auto smooth nodes''': a new type of node that keeps the path as smooth as possible as you move it or its neighbors<br />
<br />
* New modes in '''Tweak tool''': pushing and jittering whole objects, scaling/rotating objects, deleting and duplicating using the "soft brush" <br />
<br />
* Reworked, much more usable '''snapping system''' and a Snapping toolbar<br />
<br />
* New '''path effects''', including sketch, hatching, envelope deformation; effects can be stacked and assigned to groups<br />
<br />
* A huge collection of '''preset filters''' in the new Filters menu<br />
<br />
* New cairo-based '''PS and EPS export''': improved quality, more features supported, fallback rasterization for filters and transparency<br />
<br />
* '''Spell checker''' for text objects in a document<br />
<br />
* Many '''new extensions''': restacking, calendar, printing marks, cartesian and polar grids, interpolating attributes<br />
<br />
* '''Optimized SVG code''' options, now with their own Preferences page<br />
<br />
* Many other improvements, usability tweaks, memleak stops, and misc bugfixes<br />
<br />
==Refactoring effort==<br />
<br />
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.<br />
<br />
===Migration to lib2geom===<br />
Many parts of the code have been changed to use the 2geom library for geometrical calculations instead of the old libnr and livarot libraries.<br />
<br />
===Preferences===<br />
Instead of global functions directly manipulating an XML document, the preferences API is now exposed through the <code>Inkscape::Preferences</code> 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.<br />
<br />
The Preferences directory has been moved on Linux (and Mac OS X) from ~/.inkscape to ~/.config/inkscape to better conform to Linux desktop standards.<br />
<br />
==Tools==<br />
<br />
===Node tool===<br />
<br />
* 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.<br />
<br />
* 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).<br />
<br />
* Snapping has been improved (more details in Snapping below).<br />
<br />
* 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).<br />
<br />
* The behavior of the buttons/shortcuts that make a node smooth or cusp has been improved:<br />
** 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.<br />
** 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.<br />
<br />
*'''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.<br />
<br />
===Tweak tool===<br />
<br />
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.<br />
<br />
* '''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.<br />
<br />
* '''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.<br />
<br />
* '''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.<br />
<br />
* '''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.<br />
<br />
* '''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. <br />
<br />
* '''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). <br />
<br />
*'''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. <br />
<br />
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:<br />
<br />
Shift+m, Shift+0 move mode<br />
Shift+i, Shift+1 attract/repel objects mode<br />
Shift+z, Shift+2 jitter mode<br />
Shift+<, Shift+>, Shift+3 scale mode<br />
Shift+[, Shift+], Shift+4 rotate mode<br />
Shift+d, Shift+5 duplicate/delete mode<br />
Shift+p, Shift+6 push path mode<br />
Shift+s, Shift+7 shrink/grow path mode<br />
Shift+a, Shift+8 attract/repel path mode<br />
Shift+r, Shift+9 roughen mode<br />
Shift+c paint mode<br />
Shift+j color jitter mode<br />
Shift+b blur mode<br />
<br />
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).<br />
<br />
===Calligraphy tool===<br />
<br />
* 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.<br />
<br />
* 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.<br />
<br />
* The behavior of the tool when tracking a guide (drawing with '''Ctrl''') has been improved:<br />
<br />
:* The initial "jerk" when you start drawing is suppressed.<br />
<br />
:* The undesired flipping of the stroke to the other side of the guide path, when drawing along closed paths, is fixed. <br />
<br />
:* 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.<br />
<br />
===Paint Bucket tool===<br />
* Paint Bucket is now more tightly integrated with potrace. As a result, memory and CPU usage on each fill operation have been reduced significantly.<br />
<br />
===Eraser Tool===<br />
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:<br />
<br />
* '''Delete Objects''' mode: any shape touched by dragging is deleted completely. This is analogous to "touch selection" in Selector followed by '''Del'''.<br />
* '''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.<br />
<br />
===Pen and Pencil===<br />
<br />
====New modes====<br />
<br />
Apart from the regular Bezier mode, these drawing tools now provide several new modes:<br />
<br />
* '''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.<br />
<br />
* '''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. <br />
<br />
* '''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''').<br />
<br />
====Stroke shapes====<br />
<br />
As a first step towards [http://wiki.inkscape.org/wiki/index.php/Vector-brushes 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:<br />
<br />
* '''Triangle in''' and '''Triangle out''': tapering out in both directions<br />
<br />
* '''Ellipse''': smooth elliptic shape stretching along path<br />
<br />
* '''From clipboard''': any path you had previously selected and copied to clipboard<br />
<br />
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.<br />
<br />
====Pencil smoothing====<br />
<br />
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.<br />
<br />
====Pencil sketch mode====<br />
<br />
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.<br />
<br />
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).<br />
<br />
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).<br />
<br />
===Text tool===<br />
<br />
* 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).<br />
<br />
* 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). <br />
<br />
: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.<br />
<br />
===Connector tool===<br />
<br />
* Connectors are now drawn to the edges of shapes, rather than to the bounding box of shapes.<br />
* 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.<br />
* 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.<br />
<br />
==Path effects==<br />
<br />
<br />
===Path Effects stacking===<br />
<br />
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. <br />
<br />
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.<br />
<br />
===Path Effects for groups===<br />
<br />
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. <br />
<br />
* You can, as usual, enter the group by double-clicking on it, and edit the paths there watching the transformed result update live. <br />
<br />
* Path effects can be assigned to groups of groups, applying recursively to all grouped paths.<br />
<br />
* 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.<br />
<br />
===Misc new features===<br />
<br />
* 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.<br />
<br />
* A new command, '''Remove Path Effect''' in Path menu, removes any path effects from all selected objects, going recursively into groups if necessary. <br />
<br />
* 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.<br />
<br />
* 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.<br />
<br />
* Path parameters of effects can now link to existing shapes <b>or texts</b>. 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.<br />
<br />
* 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.<br />
<br />
<br />
===New effects===<br />
<br />
* '''Sketch''': Simulates hand-drawn lines. A set of parameters lets you tune the effect. They are all summarized in this [[:Image:SketchParameters.png|picture]].<br />
<br />
:[[Image:SketchExemple.png|300px]]<br />
<br />
* '''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. <br />
:[[Image:hatches-lpe.png|300px]].<br />
<br />
* '''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 [http://en.wikipedia.org/wiki/Koch_snowflake von Koch's snowflake].<br />
:[[Image:VonKochExample.png|300px]]<br />
<br />
:''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.<br />
<br />
* '''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. <br />
:[[Image:KnotExample.png|300px]]<br />
<br />
:''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.<br />
<br />
* '''Spiro splines''' are a novel way of defining curvilinear paths [http://www.levien.com/spiro/ 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.<br />
<br />
: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. <br />
<br />
: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:<br />
<br />
:* 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.<br />
<br />
:* 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.<br />
<br />
:* 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.<br />
<br />
: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. <br />
<br />
: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.<br />
<br />
: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. <br />
<br />
: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.<br />
<br />
* '''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.<br />
<br />
* '''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.<br />
<br />
* '''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.<br />
<br />
* '''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.<br />
:[[Image:InterpolateSubpathsExample.png|342px]]<br />
<br />
<!-- These effects are still hidden or under development, unhide them when they are added...<br />
<br />
* '''Perspective paths''': Draw an arbitrary path as if viewed in perspective. This is work in progress. Known limitations (among others): It can only use the first perspective that exists in the document defs, and the perspective cannot be adapted interactively yet (the effect must be removed and reapplied after modifying the perspective). [max]<br />
* '''Lattice Deformation''' allows you to deform an object (or a group of objects) by moving 16 control points.<br />
<br />
* '''Perpendicular bisector''' [max]<br />
<br />
* '''Angle bisector''' [max]<br />
<br />
* '''Tangent to a curve''' [max]<br />
<br />
* '''Circle through 3 points''' [max]<br />
<br />
* '''Circle with radius''' [max]<br />
<br />
* '''Freehand Shape''': [max]<br />
<br />
* '''Path Length''': [max]<br />
<br />
* '''Text Label''': [max]<br />
--><br />
<br />
===Notable effect bugfixes and changes===<br />
<br />
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:<br />
<br />
* '''Pattern Along Path''':<br />
**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. <br />
** 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.<br />
<br />
* '''Bend Path''':<br />
** Closed input paths would sometimes result in unclosed output paths. This has been fixed.<br />
<br />
==Import/Export==<br />
===PostScript and EPS import===<br />
<br />
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 <code>ps2pdf</code> 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.<br />
<br />
===PDF import===<br />
<br />
* 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. <br />
<br />
* Importing PDF files now works '''from the command line'''. For example,<br />
<br />
inkscape file.pdf --export-plain-svg=file.svg<br />
<br />
: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 <code>--export</code> command, it will show the import options dialog as before and open the file in the UI.<br />
<br />
===PDF, PostScript, and EPS export===<br />
<br />
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:<br />
<br />
* '''transparency''' is always rasterized in PS or EPS but not PDF, as PDF supports vector transparency;<br />
<br />
* '''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.<br />
<br />
* 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,<br />
<br />
inkscape --export-pdf=out.pdf --export-dpi=300 file.svg<br />
<br />
: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.)<br />
<br />
All of PS, EPS, and PDF export formats uniformly support the export area options (page or drawing) and the new export-id option: <br />
<br />
* 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).<br />
<br />
* 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. <br />
<br />
:*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 <code>--export-area-page</code> 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.<br />
<br />
:* The '''--export-bbox-page''' command line parameter has been removed; use '''--export-area-page''' instead.<br />
<br />
:* 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.<br />
<br />
* 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.<br />
<br />
* 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.<br />
<br />
===UniConvertor-based import and export===<br />
<br />
Inkscape can now use UniConvertor to import files of the following types:<br />
<br />
* Corel DRAW versions 7 to X4 document files (CDR)<br />
* Corel DRAW versions 7 to X4 Template files (CDT)<br />
* Corel DRAW Presentation Exchange files (CMX)<br />
* Corel DRAW Compressed Exchange files (CCX)<br />
* sK1 files (SK1)<br />
* Computer Graphics Metafiles (CGM)<br />
* Windows Metafiles (WMF)<br />
* HPGL (AutoCAD) Plot files (PLT) (requires UniConvertor 1.1.4)<br />
<br />
Inkscape can now use UniConvertor to export files of the following types:<br />
<br />
* Windows Metafiles (WMF)<br />
* sK1 files (SK1)<br />
* HPGL (AutoCAD) Plot files (PLT) (requires UniConvertor 1.1.4)<br />
<br />
Text objects are not supported as of UniConvertor 1.1.4.<br />
<br />
On Windows, UniConvertor is included with Inkscape distribution and does not require separate installation.<br />
<br />
===HPGL export===<br />
<br />
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.<br />
<br />
===JavaFX export===<br />
<br />
Inkscape can export drawings to JavaFX format (.fx file extension).<br />
<br />
===DXF import and export===<br />
<br />
* 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.<br />
<br />
* DXF import is new. It supports a number of the simpler DXF shapes: line, Bezier spline, ellipse, circular arc, text.<br />
<br />
===PNG export===<br />
<br />
* 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 <code>identify</code> command.<br />
<br />
* Export filenames that are relative (e.g. <code>../file.png</code> or simply <code>file.png</code>) 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 <code>--export-use-hints</code>). 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.<br />
<br />
===OCAL (Open Clip Art Library) Export===<br />
* Export to the [http://www.openclipart.org/ Open Clip Art Library (OCAL)] has been disabled for 0.47 as it had become non-functional and needs to be re-written.<br />
<br />
==Autosave==<br />
<br />
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. <br />
<br />
In Inkscape Preferences (Ctrl+Shift+P), '''Save''' tab, you can enable this feature and specify various options:<br />
<br />
* the time interval between backups, in minutes;<br />
<br />
* the directory where you want the backups to be stored;<br />
<br />
* and the maximum number of saved backups (if this number is exceeded, old backups will start to be deleted).<br />
<br />
==Extensions==<br />
<br />
* 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. <br />
<br />
===New and improved extensions===<br />
<br />
* 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.<br />
<br />
* 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.<br />
<br />
* 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.<br />
<br />
* The improved '''Modify Path > Add Nodes''' extension now allows segments to be divided into a given number of subsegments.<br />
<br />
* 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).<br />
<br />
* 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.<br />
<br />
* 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.<br />
<br />
* The new '''Render > Alphabet Soup''' extension is a vector rework of Matt Chrisholm's [http://www.theory.org/artprojects/alphabetsoup/main.html script]. Alphabet Soup randomly mashes glyph elements together to make exotic-looking text.<br />
<br />
* 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.<br />
<br />
* 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.<br />
<br />
* 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.<br />
<br />
* 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.<br />
<br />
* The new '''Render > Calendar''' extension draws a calendar for a given year with localizable month/weekday names, colors, and many other options.<br />
<br />
* The new '''Render > Foldable Box''' extension creates foldouts for paper boxes.<br />
<br />
* The new '''Text > Convert to Braille''' extension recodes English (or just Latin letters) text to [http://en.wikipedia.org/wiki/Braille 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.<br />
<br />
* 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. <br />
<br />
* 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.<br />
<br />
===Extension API changes===<br />
<br />
* While the "Live preview" checkbox is useful for most effects, for some it just does not make sense. Now, you can add the attribute <code>needs-live-preview="false"</code> in the <code>effect</code> element in the .inx file of the effect to suppress this checkbox for your effect.<br />
<br />
* Parameters passed to extensions (via the <param> element) now can have a boolean attribute, <code>gui-hidden</code>, 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.<br />
<br />
* All '''.inx''' files are now properly formatted XML files with their own namespace of: <code><nowiki>http://www.inkscape.org/namespace/inkscape/extension</nowiki></code> and a Relax NG schema to define it. More information can be found on the [[Extensions]] page.<br />
<br />
==Filters==<br />
<br />
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.<br />
<br />
===Preset filters===<br />
<br />
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 (<code>share/examples</code> in the Inkscape tree).<br />
<br />
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). <br />
<br />
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.<br />
<br />
You can easily add your own filters to these menus. Simply place any SVG file with the filters to the <code>filters</code> subdirectory of your config directory (<code>~/.config/Inkscape/</code> 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 <code>filter</code> element:<br />
<br />
inkscape:label is the command label<br />
inkscape:menu is the submenu to place the command into<br />
inkscape:menu-tooltip is the tooltip (displayed in the statusbar <br />
as you select the command)<br />
<br />
===''No Filters'' rendering mode===<br />
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.<br />
<br />
The ''Toggle View'' command in the ''Display Mode'' submenu ('''Ctrl+keypad 5''') toggles between all 3 modes in a loop: Normal, No filters, Outline.<br />
<br />
===Filter quality setting===<br />
<br />
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.<br />
<br />
* '''Best quality''' is the quality used when exporting.<br />
* '''Better quality''' uses fast methods for transforming images, which occasionally shows up as jagged edges. Full rendering resolution is used.<br />
* Anything below that also uses low resolution rendering for filters.<br />
<br />
For exporting images, the best quality is used regardless of this setting.<br />
<br />
==SVG support==<br />
<br />
===Optimized CSS properties===<br />
<br />
* As a file size optimization, Inkscape does not write into SVG some of the stroke properties if the object has <code>stroke:none</code> and some of the fill properties when it has <code>fill:none</code>. 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. <br />
<br />
: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.<br />
<br />
:Specifically, if stroke:none, the following properties do not get written to SVG:<br />
<br />
stroke-width<br />
stroke-linecap<br />
stroke-linejoin<br />
stroke-miterlimit<br />
stroke-opacity<br />
stroke-dasharray<br />
stroke-dashoffset<br />
<br />
:Note that this does not include marker properties, which means you can still have markers on a path without visible stroke.<br />
<br />
:If fill:none, the following properties do not get written to SVG:<br />
<br />
fill-opacity<br />
fill-rule<br />
<br />
*The <code>opacity</code> 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).<br />
<br />
*The <code>marker-start</code>, <code>marker-mid</code>, and <code>marker-end</code> properties are not written if the <code>marker</code> property is already present with the same value.<br />
<br />
===Optimized path data===<br />
<br />
In this version, the size of the path data written in the <code>d=</code> attribute of <code>path</code> elements is reduced by about 10%. Inkscape generates the shortest possible path strings by avoiding repeated operators and using relative coordinates (when it helps).<br />
<br />
This is controlled by the options on the '''SVG output''' page of Inkscape Preferences dialog. Also, you can change the following attributes in <code>group id="svgoutput"</code> in your preferences.xml file:<br />
<br />
* <code>allowrelativecoordinates</code> (default 1) to switch relative coordinates on (1) or off (0)<br />
* <code>forcerepeatcommands</code> (default 0) to force repeating operators (1) or allow use of the more compact representation without repeated operators (0)<br />
<br />
<!-- [this seems no longer to be true, fix it!!! I don't know what happened, someone changed something and now it no longer works :'( -johan]<br />
<br />
===No more explicit closing line segment===<br />
Inkscape used to always explicitly write the closing line segment to SVG for closed paths, for example: "M 0,0 L 1,0 L 1,1 L 0,1 L 0,0 z". With the improved SVG path data writing, Inkscape no longer generates this closing line segment, resulting in "M 0,0 L 1,0 L 1,1 L 0,1 z".<br />
<br />
When SVG path data input contains this explicit closing segment, it is maintained throughout transformations, but is removed after using the node edit tool.<br />
--><br />
<br />
===Horizontal and vertical path segments===<br />
<br />
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.<br />
<br />
===<script> tag preserved===<br />
<br />
While Inkscape does not yet support SVG scripting via the <script> element, this element is now preserved after editing the file in Inkscape.<br />
<br />
===Initial SVG Fonts support===<br />
<br />
As a SoC 2008 project, JucaBlues implemented initial parsing and rendering of [http://www.w3.org/TR/SVG11/fonts.html SVG Fonts].<br />
You can design fonts within Inkscape, but using them to render text on the canvas is not yet supported. We are waiting for libpango to implement proper support of the user-fonts feature. <br />
<br />
Currently, the main benefit of this feature is to improve the font design workflow when working with FontForge: You can save SVG files with fonts embedded and import them into Fontforge, and you only need one file per font instead of one file per glyph.<br />
<br />
An SVG font is a mapping of chunks of SVG drawing to characters. When a certain character is used in a string, its respective glyph is rendered. If no glyph is declared for a certain character, then there is a default "missing glyph" that is rendered. You can set the drawing that defines this missing glyph; this is done by clicking on the '''Missing Glyph: From Selection...''' button at the top of the dialog.<br />
<br />
Here's an example of a font design workflow:<br />
<br />
# Open the SVG Font dialog by _Text > SVG Fonts_. <br />
# Click '''New''' under the font list. Select the new font in list; you can rename it by clicking on its name and typing a new name. You will see a set of black squares in the text preview area. This is the preview text being rendered. It only uses the default missing glyph (which is initially defined as a black square) because no specific glyphs were defined yet.<br />
# Draw something that you want to use for the missing glyph <br />
# Click '''Missing Glyph: From selection...'''<br />
# Draw a glyph for the "a" character (character matching is case sensitive)<br />
# On the '''Glyphs''' tab, click '''Add glyph'''<br />
# Type "a" in the '''Matching String''' column (at the moment, handling of the glyph-name attribute is not implemented)<br />
# With the row selected, click '''Get curves from selection...'''<br />
# Now, you will see the "a" glyph in the preview rendering if the preview text contains it. You can edit the preview text as needed to view different characters.<br />
<br />
Repeat steps 5 through 9 for every glyph you wish to add to your font, then save the SVG file and open it in FontForge for further editing.<br />
<br />
===SVG Test Suite Compliance===<br />
<br />
As a result of last year's GSoC, there is now a rendering test framework along with a number of tests (found in the SVN repository [http://inkscape.svn.sourceforge.net/svnroot/inkscape/gsoc-testsuite/tester/ here]). These tests can be run reasonably easily on any system (you don't need to be able to compile Inkscape) and include a large part of the [http://www.w3.org/Graphics/SVG/Test/ [[W3C]] SVG Test Suite]. See [http://home.hccnet.nl/th.v.d.gronde/inkscape/ResultViewer.html this page] or [http://auriga.mine.nu/inkscape/ this page] for up-to-date rendering results. Also see [[TestingInkscape]] for information on running and creating rendering tests.<br />
<br />
<!-- [files which failed on 0.46 and now pass, and vice versa]<br />
List of render test changes with respect to 0.46:<br />
--><br />
<br />
==Editing Aids==<br />
<br />
===Grids===<br />
* The dotted rectangular grid now shows small crosses at the intersection points of emphasis lines.<br />
<br />
===Guides===<br />
<br />
* Guides can now be rotated using the mouse. Each guide has an anchor (visible as a little circle) around which it can rotate.<br />
:*'''Drag''' a guide anywhere to move it.<br />
:*'''Shift+drag''' to rotate a guide about its anchor (additionally press '''Ctrl''' to constrain the rotation angle to multiples of 15 degrees).<br />
:*'''Ctrl+drag''' to move the anchor along the guide.<br />
:*Press '''Del''' while hovering the mouse over the guide to delete it.<br />
<br />
* There is now an option in the Preferences dialog ('''Tools''' page) to treat groups as single objects during conversion to guides (as opposed to converting each object inside the group separately).<br />
<br />
===Snapping===<br />
<br />
Inkscape's snapping code has undergone major changes to make it more reliable and easier to use. Snapping to objects now invokes routines from the 2geom library, which is actively maintained and less error-prone than the old livarot library. <br />
<br />
There is a new '''snapping toolbar''' to control the snapping options and modes. Use _View > Show/Hide > Snap_ controls bar to show or hide this toolbar. The toolbar contains toggle buttons for various snapping modes (snap nodes, snap to paths, etc.) as well as a master snapping toggle that disables and reenables all activated modes.<br />
<br />
Also, to control some of the snapping features, a '''Snapping''' tab has been created in the Inkscape Preferences dialog. The new features found on this tab are:<br />
* '''Snap indicator''': When snapping has occurred, an indicator is displayed at that specific position. For now that indicator is just a cross that disappears after a second. In the future the shape of the indicator will be related to the type of target that has been snapped to.<br />
* '''Snap delay''': Inkscape now optionally waits some time after the mouse pointer has stopped moving before it tries to snap. This makes Inkscape much more responsive on complex documents and allows moving objects in a straight line over a grid, amongst others. <br />
* Inkscape can be forced to only try snapping the (source) node that is '''closest to the mouse pointer''', à la Corel DRAW. When this mode is enabled, a snap indicator will shortly be shown at that node. This will give you maximum control of the snapping which is useful for complex drawings with many nodes.<br />
* When multiple snap solutions are found, Inkscape can either prefer the closest transformation (when the weight slider is set to 0; this is the old mode), or prefer the moved object's node that was initially the closest to the pointer (when the slider is set to 1). The way Inkscape calculates the preferred snap has been improved too, which should lead to more predictable snapping.<br />
<br />
Other improvements are:<br />
* The '''Node tool''' now snaps to any unselected node (both cusp and smooth) within the path that's being edited, and nodes of other paths. It also snaps to the path itself, but only to the stationary segments in between two unselected nodes, not to the segment being currently reshaped. It is now also possible to snap while moving nodes along a vertical or horizontal constraint.<br />
* In the Document Properties dialog, the checkbox for "always snap" has been replaced by a pair of radiobuttons; this should eliminate most of the confusion surrounding this option.<br />
* Holding the '''Shift''' key now also disables snapping while dragging node handles and while creating single dots.<br />
* During constrained drawing (using '''Ctrl'''), Inkscape will now only snap to the points on the constrained line.<br />
* In the Selector tool, snapping while skewing or moving with a constraint (with '''Ctrl''') has been improved.<br />
* Also in the Selector tool, while moving, Inkscape will now snap the bounding box of each selected item individually instead of the selection as a whole<br />
<br />
Inkscape can consider the following objects for snapping, depending on the toggles in the Snapping toolbar:<br />
* Clipping paths and masks<br />
* Midpoints of line segments<br />
* Midpoints of bounding box edges<br />
* Page border<br />
* Intersections of any kind of paths<br />
* Smooth nodes<br />
* Cusp nodes<br />
* Each of the handle points (when creating new shapes)<br />
* Radius handles of rectangles<br />
* Single dots<br />
<br />
==Other features==<br />
<br />
===Spell checker===<br />
<br />
There's now a built-in spell checker. Press '''Ctrl+Alt+K''' or choose ''Text > Check spelling'' to check all visible text objects in your document (they need not be selected) in turn, going top-to-bottom and left-to-right. Once a misspelled word is found, a red frame around it is displayed, and the object with the misspelling is selected; if you are in Text tool, it also places the text cursor at the beginning of the misspelled word. <br />
<br />
In the dialog, you can choose one of the listed suggestions and '''Accept''' it (this button is disabled unless you choose something in the list); '''Ignore''' the word for the rest of this session; or '''Add''' the word to the local dictionary.<br />
<br />
Also, since the dialog does not lock Inkscape's window, you can simply edit the word with Text tool. Once you edit it to something acceptable to the speller, it will automatically turn off the red frame and continue checking the<br />
document. <br />
<br />
On Linux, you need to install Aspell and its dictionaries for the languages you want to check. On Windows, for now, only the English dictionary is included with Inkscape builds. <br />
<br />
===Desktop integration improvements===<br />
<br />
* '''Clipboard is system-wide''': you can now copy/paste objects between different Inkscape instances as well as between Inkscape and other applications (which must be able to handle SVG on the clipboard to use this).<br />
<br />
* '''Open Recent menu''' now integrates with Windows recent documents management as well as freedesktop.org recent document lists (used by Gnome, KDE and Xfce). The list can be cleared from the Preferences dialog (the Interface tab).<br />
<br />
* '''Themable Icons''': all icons used in Inkscape are now themable using the standard freedesktop.org theming mechanism. The list of names used is available [[themable icons|here]].<br />
<br />
===Shell mode===<br />
<br />
If you run inkscape with <code>--shell</code>, it will enter a shell mode. In this mode, you type in commands at the prompt and Inkscape executes them, without you having to run a new copy of Inkscape for each command. This feature is mostly useful for scripting and server uses: it adds no new capabilities but allows you to improve the speed and memory requirements of any script that repeatedly calls Inkscape to perform command line tasks (such as export or conversions). Each command in shell mode must be a complete valid Inkscape command line but without the Inkscape program name, for example:<br />
<br />
$ inkscape --shell<br />
Inkscape 0.46+devel interactive shell mode. Type 'quit' to quit.<br />
>file.svg --export-pdf=file.pdf<br />
>otherfile.svg --export-png=bitmap.png<br />
Background RRGGBBAA: ffffff00<br />
Area 0:0:744.094:1052.36 exported to 744 x 1052 pixels (90 dpi)<br />
Bitmap saved as: bitmap.png<br />
>quit<br />
<br />
===Gesture-based stroke width adjustment===<br />
<br />
Similar to editing the fill or stroke colors by dragging away from the color swatch in the status bar (added in 0.46), this version allows you to drag away from the stroke width value displayed there to change the stroke width of selection. Dragging above the 45-degree line from the swatch increases the width (up to four times the original width), dragging below it decreases the width (down to zero). With this feature, quick yet precise stroke width adjustments are possible without opening any dialogs or menus.<br />
<br />
===Tool switching by input device===<br />
<br />
Tablets and other input devices that report separate hardware (e.g. pen tip and eraser on the two ends of the pen) are now recognized and current tool can be set to change (to Calligraphic Pen or Eraser) in response to the physical tool being used.<br />
<br />
===Layers===<br />
<br />
* The Layers dialog now can hide or show '''all layers other than the current''': click on the layer name with right mouse button to get the pop-up menu. The ''Solo'' feature allows you to quickly switch between working layers and check their content in isolation.<br />
<br />
* A new command, '''Duplicate Layer''', has been added to the Layers menu to duplicate an existing layer with all of its objects (even hidden or locked) and any sub-layers.<br />
<br />
* The Add Layer dialog can be opened with '''Ctrl+Shift+N''' (N for new).<br />
<br />
* Layer names can now be non-unique within the document.<br />
<br />
* Several layer handling inconsistencies have been fixed.<br />
<br />
===Editing bitmaps in an external editor===<br />
<br />
Linked (but not embedded) bitmaps can be '''edited in an external application'''. Right-click an image and choose ''Edit externally...''<br />
<br />
An image will reload when its linked file changes on disk. Both the external editor application to use and the reload behavior are configurable on the ''Bitmaps'' page of the Inkscape Preferences dialog.<br />
<br />
===Command for relinking clones===<br />
<br />
A new command, '''Relink Clone to Copied''' in ''Edit > Clone'', allows you to relink any clone to a different original object without changing its other properties. Just copy (Ctrl+C) the object you want to be the new original, select any number of clones, and choose the Relink command. Now all selected clones are linked to the copied object.<br />
<br />
Note that this may cause the clone to move if the new original and the old original objects are in different positions.<br />
<br />
===Automatic relinking of clones on Duplicate===<br />
<br />
If you turn on the '''When duplicating original+clones: Relink duplicated clones''' option on the ''Clones'' tab of Inkscape Preferences (default is off), duplicating a selection containing both a clone and its original (possibly in groups) will relink the duplicated clone to the duplicated original instead of the old original.<br />
<br />
===Pattern editing===<br />
<br />
When editing pattern fills:<br />
* The pattern origin and scale handles now snap.<br />
* The pattern scaling can now be different in X and Y direction. Press '''Ctrl''' to have a fixed 1:1 ratio scaling (old behavior). <br />
* The handles are now positioned at the corners of the unit cell, instead of only a quarter of that cell as before. So, now a rectangle filled with pattern will have all of the pattern handles in the corners, making it harder to manipulate them. However, the handles can be dragged outside the rectangle by moving the pattern's origin handle.<br />
<br />
===Transform dialog: spacing out option===<br />
<br />
Previously, the ''Apply to each object separately'' checkbox had no effect for the ''Move'' tab of the Transform dialog (Ctrl+Shift+M). Now, if several objects are selected, this checkbox is on, and "Relative move" is on, each object is shifted '''relative to the closest selected object''' on the left (for X) or below (for Y). <br />
<br />
For example, if you have a horizontal row of objects and you move them relatively by x = 5 px with "Apply to each object separately" on, the leftmost object will shift by 5px, the next one to the right by 10px, and so on; the rightmost selected object is displaced by 5*n px where n is the number of selected objects. As a result, the distance in each pair of adjacent objects will increase by 5px and the whole row will be spaced out, much like a letterspacing adjustment spaces out a text string. Moving these objects by X=-5px will, conversely, squeeze them tighter together: the leftmost will move by -5px, the next one by -10px, and so on. For Y, the effect is the same except that the move starts from the object closest to the bottom (i.e. with smallest Y coordinate).<br />
<br />
When determining the order of shifting objects, for X, the left edges of their bounding boxes are sorted horizontally, and for Y, the bottoms of their bounding boxes are sorted vertically. The order of selecting the objects or their z-order do not matter.<br />
<br />
===Converting text to path produces a group===<br />
<br />
Converting a text or flowed text to path (Ctrl+Shift+C) now produces a '''group of paths''', one path for each glyph of text, instead of a single monolithic path as before. Apart from easier manipulation, an additional advantage is that if your text contained styled spans (i.e. fragments with different color, opacity, or other properties), these styles will be preserved by the corresponding glyph paths after the conversion. You can still easily get a single path out of such a group by selecting it and doing Combine (Ctrl+K).<br />
<br />
===Combine works on groups===<br />
<br />
The Combine command now works transparently on groups, i.e. combines paths inside selected groups at any level of grouping.<br />
<br />
===Exclusion works on multiple paths===<br />
The Exclusion boolean operation can now operate on an arbitrary number of paths.<br />
<br />
===No more Whiteboard===<br />
The configure flag for Whiteboard has been removed since the feature was non-functional. This menu item will no longer exist in the releases until it is properly fixed to avoid any confusion.<br />
<br />
===Save As directory===<br />
On the '''Save''' tab in Inkscape Preferences, an option was added to change the behavior to our old behavior. When this option is on, the "Save as..." dialog will always open in the directory where the currently open document is. When it's off, it will open in the directory where you last saved a file using that dialog..<br />
<br />
===Packaging Improvements===<br />
Packaging for OSX and Windows has been worked on heavily and greatly improved during this release cycle. Inkscape also now has a Portable version available for Windows.<br />
<br />
==User interface==<br />
<br />
===Inkscape Preferences dialog===<br />
<br />
* This dialog has been rearranged for more logical grouping of options. New pages have been added: '''Bitmaps''' (options for the new update-on-file-change and external editor features), '''UI''' (options for toolbar icon sizes), '''SVG Output''' (options for SVG formatting, introduced in 0.46 and now editable from the dialog as well), and '''Save''' (save directory and autosave options). <br />
<br />
===Bitmap Copy resolution===<br />
<br />
* A new option on the Bitmaps tab, '''Resolution for Create Bitmap Copy''', allows you to set the resolution of the bitmap created by the corresponding command (by default bound to Alt+B). The default value of 90 dpi forces the resulting bitmap to align with the default 1px-spaced grid on the canvas.<br />
<br />
===Zoom correction factor===<br />
<br />
* The Interface tab has an adjustable ruler for '''Zoom correction factor'''. Move the slider until the ruler's on-screen size matches its true size. This is used as a reference point for the 100% (original size) zoom command.<br />
<br />
===Interface language choice===<br />
<br />
* The application's interface language can be set from the preferences dialog, Interface tab. You'll have to restart Inkscape for this choice to take effect.<br />
<br />
===Toolbars===<br />
<br />
* On the Interface tab, the toolbar icon sizes for the three main toolbars are now separately configurable and to a few different sizes. This allows for a more compact user interface.<br />
* The vertical toolbox has been converted to a standard GtkToolbar, which fixed the problem of it pushing the main window taller. Tools that don't fit automatically go into a popup menu.<br />
* When torn off, toolbars now keep the size they last had in the main window. They can be resized by docking, resizing the main window, and then undocking again.<br />
* Some controls (such as the Width in Calligraphic/Tweak/Eraser tools, Tremor, Wiggle, and Mass in Calligraphic, Threshold in Paintbucket, Tolerance in Pencil) are converted from numeric editable fields into draggable sliders, with labels and values (usually in the range 0..100) displayed on top. As these values don't usually require high precision, this makes adjusting them much easier and faster.<br />
<br />
===Clone/original visualization===<br />
<br />
When you press '''Shift+D''' to find and select the original of the selected clone, Inkscape draws a '''dashed blue line''' between the centers of the bounding boxes of the clone and the original. This line disappears after one second.<br />
<br />
===File dialogs===<br />
* The Windows builds of Inkscape now have Windows-native file dialogs to keep consistency with other Windows applications.<br />
* Two new entries in the File type list, '''All Bitmaps''' and '''All Vectors''', allow you to limit the listing to bitmap or vector formats only.<br />
<br />
===Document Properties dialog===<br />
* New Color Management tab. In this new tab, you can declare multiple ICC color profiles for the current document.<br />
* New Script tab. ?<br />
<br />
===Object Properties dialog===<br />
* New Title and Description fields. The Title attribute is intended to be used as tooltip. [sas]<br />
* New Interactivity section to add JavaScript calls.<br />
<br />
===Miscellaneous===<br />
* The confusing icons on buttons in the controls bar of the Dropper tool (pick/assign opacity) are replaced by text labels.<br />
* Hovering over a swatch now shows the name of the swatch in the status bar. This makes it easier for tablet users to identify a swatch by name, as holding a stylus still enough for the tooltip to show up may be difficult.<br />
* In the Align and Distribute dialog, there is an option to treat all selected objects as a group when aligning. This spares the trouble of manually grouping them, aligning, and ungrouping afterwards.<br />
<br />
==Notable bug fixes==<br />
<br />
* Several '''memory leaks''' are stopped, reducing the memory consumption during long editing sessions considerably. Closing the last window with a document now frees memory used by that document immediately. <br />
<br />
* '''Copy/paste''' between Inkscape and other programs, as well as between different Inkscape instances, finally works as expected.<br />
<br />
* '''No more ID clashes on import and paste''': previously, importing or pasting SVG objects might sometimes distort their colors, because the imported objects referred to gradients with the same IDs as those that already exist in the document but look different. Now, IDs of all gradients in the pasted document are checked for clashes with those in the host document, and if necessary changed with all their users updated correspondingly, so such unexpected color changes will never happen.<br />
<br />
* The '''visual bounding box''' (which is the default bounding box type used by Inkscape) of an object with a filter applied now includes the expanded area of the filter. For '''single blur filter''' (such as the blur you apply with a slider in the Fill and Stroke dialog), this expands the bounding box by 2.4*radius; although theoretically, blur is infinite, this is the distance at which the opacity of the object drops below the perceptibility threshold of our renderer. For all other filters, the area is expanded by the relative amounts you specify on the "Filter general settings" tab of the Filter Editor dialog.<br />
<br />
:Only visual bounding box is affected; if you use geometric bounding box, you will notice no change in most cases. However, the '''Export Bitmap''' dialog always uses the visual bounding box for selection of the export area; this means that you can now export a blurred object to bitmap without any clipping of the blur.<br />
<br />
* Bounding box calculation does not include the invisible objects, [https://bugs.launchpad.net/inkscape/+bug/252547 bug #252547].<br />
<br />
* Various fixes to PS and PDF rendering of objects involving masks, patterns, and/or bitmaps: [https://bugs.launchpad.net/inkscape/+bug/208217 bug #208217], [https://bugs.launchpad.net/inkscape/+bug/217212 bug #217212] and others.<br />
<br />
* File dialogs (Open, Save, Save as) now remember the last visited directory.<br />
<br />
* The <code>--vacuum-defs</code> command line parameter erroneously deleted markers which are in use.<br />
<br />
* No more garbage lines in Outline mode.<br />
<br />
* No more artifacts left by the circle cursor in Tweak tool.<br />
<br />
* The '''Bend Path''' and '''Pattern along Path''' path effects now work correctly with closed paths.<br />
<br />
* Several '''[[ViewBoxToDo|viewBox]]''' related bugs fixed:<br />
:* Documents with viewBox are now editable without transformation defects. In particular this affected documents created with e.g. pstoedit. [https://bugs.launchpad.net/inkscape/+bug/168370 bug #168370]<br />
:* Resizing the page adjusts viewBox [https://bugs.launchpad.net/inkscape/+bug/167682 bug #167682].<br />
:* preserveAspectRatio parsing code was fixed [https://bugs.launchpad.net/inkscape/+bug/166885 bug #166885].<br />
<br />
* Several fixes allow Inkscape to correctly render and edit SVG files that use <code>currentColor</code> in objects' style (this includes files created by gnuplot).<br />
<br />
* Inkscape is now able to handle paths with only 'movetos', i.e. "M 0,0 M 1,1 M 2,2". These kind of paths can be used to only show markers on a path without the rest of the path visible.<br />
<br />
* Open paths (as opposed to closed) are now correctly drawn when start and end points are equal (SVG test suite ''paths-data-10-t.svg'').<br />
<br />
* The shorthand 'marker' property is now correctly interpreted (SVG test suite ''painting-marker-03-f.svg'').<br />
<br />
* Coordinates and lengths specified in percentages are now correctly interpreted (SVG test suite ''coords-units-02-b.svg'').<br />
<br />
* Horizontally scrolling the canvas with a tilt wheel (present on several Logitech mice such as the LX5) in the Bezier tool will no longer finish the path being drawn.<br />
<br />
<br />
<!-- Diederik's patch had to be backed out...<br />
<br />
* Annoying random displacements of pixels of bitmaps when you view them at a close zoom level are fixed.<br />
--><br />
<br />
=Known issues=<br />
<br />
* First time opening of the drop-down list with font families in Text tool may be slow, especially if you have many fonts installed. Subsequent accesses of this list are fast. <br />
<br />
=Previous releases=<br />
<br />
* [[ReleaseNotes046]]<br />
* [[ReleaseNotes045]]<br />
* [[ReleaseNotes044]]<br />
* [[ReleaseNotes043]]<br />
* [[ReleaseNotes042]]<br />
* [[ReleaseNotes041]]<br />
* [[ReleaseNotes040]]<br />
* [[ReleaseNotes039]]<br />
* [[ReleaseNotes038]]<br />
* [[ReleaseNotes037]]<br />
* [[ReleaseNotes036]]<br />
* [[ReleaseNotes035]]<br />
<br />
[[Category:Marketing]]</div>NeoPhyte Rephttps://wiki.inkscape.org/wiki/index.php?title=TangoifiedIcons&diff=74108TangoifiedIcons2011-12-02T17:17:42Z<p>NeoPhyte Rep: /* File */ Provided OCAL acronym <abbr> HTML</p>
<hr />
<div>Note: this page may be obsolete, see [[Themable icons]]<br />
<br />
== The reasoning ==<br />
<br />
Many GTK applications (including the whole Gnome desktop) are using Tango icons. These icons are designed to look nice in many environments (on all kinds of backgrounds and in many different OSes). So both for unification purposes on Linux and for cross-platform reasons, it would be nice to have a complete Tangoified Inkscape Icon Set for a future release (hopefully sooner rather than later).<br />
<br />
<br />
The Tangoified set [http://gnomelook.org/content/show.php/Tangofied+inkscape+icons+set?content=48140 here] is lacking many icons. It is based on the [http://tango.freedesktop.org/ArtLibreSet Tango ArtLibre Icon Set], which Gimp also uses.<br />
<br />
<br />
This page is a place to list all the icons Inkscape needs, the corresponding icons (whether they exists already or not) in the [http://tango.freedesktop.org/ArtLibreSet ArtLibre Set] and the proposed Tangoified icon for Inkscape. This would be the ArtLibre icon directly or an improved version, made to fit withing Inkscape more properly.<br />
<br />
== Standard naming and loading ==<br />
<br />
We should try to get Inkscape loading those from standard calls and naming so that users can switch icons externally. The [http://tango.freedesktop.org/Tango_Icon_Library#Download Tango naming utilities] and following the [http://standards.freedesktop.org/icon-naming-spec/icon-naming-spec-latest.html Icon Naming Specification] might help.<br />
<br />
To get things going well, we also would probably need to get Inkscape to hook itself in a standard GTK+ icon source. (So Inkscape would ask GTK+ to get an icon for it, and GTK+ would turn around and ask Inkscape to provide that icon).<br />
<br />
Furthermore, and icon set switcher would be nice to void fidling with SVG files in .inkscape/icons/<br />
<br />
== The Icons ==<br />
<br />
There are 246 unique inkscape icons. All of them are listed in the following tables. Each of which is structured as follows: an image of current Inkscape icon, the name of this icon in Inkscape, the size at which the SVG should be designed (in pixels) to look crisp in standard GTK themes, a short description of the tool, the corresponding ArtLibre icon and ArtLibre icon name (NA if it does not exists), an image of the proposed replacement icon.<br />
<br />
All image need to be manually uploaded. If you wish to help upload a few to this wiki, you can download a ZIP file of all icons already named from [http://www.microugly.com/orig-inkscape-icons.zip]<br />
<br />
<br />
=== Drawing tools ===<br />
<br />
<table><br />
<tr><br />
<th scope="row">Icon</th><br />
<br />
<th scope="row">Icon name</th><br />
<br />
<th scope="row">px Size</th><br />
<br />
<th scope="row">Description</th><br />
<br />
<th scope="row">Tango Icon</th><br />
<br />
<th scope="row">Tango Name</th><br />
<br />
<th scope="row">Proposed Icon</th><br />
</tr><br />
<br />
<tr><br />
<td>[[Image:orig_draw_select.png]]</td><br />
<br />
<td>draw_select</td><br />
<br />
<td>24</td><br />
<br />
<td>Pointer tool</td><br />
<br />
<td>&nbsp;</td><br />
<br />
<td>tool-pointer</td><br />
<br />
<td>[[Image:tool-pointer.png]]</td><br />
</tr><br />
<br />
<tr><br />
<td>[[Image:orig_draw_node.png]]</td><br />
<br />
<td>draw_node</td><br />
<br />
<td>24</td><br />
<br />
<td>Node selection tool</td><br />
<br />
<td>NA</td><br />
<br />
<td>NA</td><br />
<br />
<td>[[Image:tool-node.png]]</td><br />
</tr><br />
<br />
<tr><br />
<td>[[Image:orig_draw_tweak.png]]</td><br />
<br />
<td>draw_tweak</td><br />
<br />
<td>24</td><br />
<br />
<td></td><br />
<td>NA</td><br />
<br />
<td>NA</td><br />
<br />
<td>NA</td><br />
</tr><br />
<br />
<tr><br />
<td>[[Image:orig_draw_zoom.png]]</td><br />
<br />
<td>draw_zoom</td><br />
<br />
<td>24</td><br />
<br />
<td>Page Magnifier tool</td><br />
<br />
<td></td><br />
<br />
<td>page-magnifier</td><br />
<br />
<td>[[Image:page-magnifier.png]]</td><br />
</tr><br />
<br />
<tr><br />
<td>[[Image:orig_draw_rect.png]]</td><br />
<br />
<td>draw_rect</td><br />
<br />
<td>24</td><br />
<br />
<td></td><br />
<br />
<td></td><br />
<br />
<td>draw-rectangle</td><br />
<br />
<td>[[Image:draw-rectangle-tango.png]]</td><br />
</tr><br />
<br />
<tr><br />
<td>[[Image:orig_draw_arc.png]]</td><br />
<br />
<td>draw_arc</td><br />
<br />
<td>24</td><br />
<br />
<td></td><br />
<br />
<td></td><br />
<td>draw-ellipse</td><br />
<br />
<td>[[Image:draw-arc.png]]</td><br />
</tr><br />
<br />
<tr><br />
<td>[[Image:orig_draw_star.png]]</td><br />
<br />
<td>draw_star</td><br />
<br />
<td>24</td><br />
<br />
<td></td><br />
<td></td><br />
<br />
<td>draw-star</td><br />
<br />
<td>[[Image:draw-star-tango.png]]</td><br />
</tr><br />
<br />
<tr><br />
<td>[[Image:orig_draw_spiral.png]]</td><br />
<br />
<td>draw_spiral</td><br />
<br />
<td>24</td><br />
<br />
<td></td><br />
<br />
<td>NA</td><br />
<td>NA</td><br />
<br />
<td>[[Image:draw-spiral-tango.png]]</td><br />
</tr><br />
<br />
<tr><br />
<td>[[Image:orig_draw_freehand.png]]</td><br />
<br />
<td>draw freehand</td><br />
<br />
<td>24</td><br />
<br />
<td></td><br />
<td></td><br />
<br />
<td>draw-freehand</td><br />
<br />
<td>[[Image:draw-freehand-tango.png]]</td><br />
</tr><br />
<br />
<tr><br />
<td>[[Image:orig_draw_pen.png]]</td><br />
<br />
<td>draw pen</td><br />
<br />
<td>24</td><br />
<br />
<td></td><br />
<br />
<td></td><br />
<td></td><br />
<br />
<td>[[Image:draw-pen.png]]</td><br />
</tr><br />
<br />
<tr><br />
<td>[[Image:orig_draw_calligraphic.png]]</td><br />
<br />
<td>draw calligraphic</td><br />
<br />
<td>24</td><br />
<br />
<td></td><br />
<td></td><br />
<br />
<td>&nbsp;</td><br />
<br />
<td>[[Image:draw-calligraphic-tango.png]]</td><br />
</tr><br />
<br />
<tr><br />
<td>[[Image:orig_draw_paintbucket.png]]</td><br />
<br />
<td>draw paintbucket</td><br />
<br />
<td>24</td><br />
<br />
<td></td><br />
<td></td><br />
<br />
<td>&nbsp;</td><br />
<br />
<td>[[Image:draw-fill.png]]</td><br />
</tr><br />
<br />
<tr><br />
<td>[[Image:orig_draw_text.png]]</td><br />
<br />
<td>draw text</td><br />
<br />
<td>24</td><br />
<br />
<td></td><br />
<td></td><br />
<br />
<td>&nbsp;</td><br />
<br />
<td>[[Image:draw-text-tango.png]]</td><br />
</tr><br />
<br />
<tr><br />
<td>[[Image:orig_draw_connector.png]]</td><br />
<br />
<td>draw connector</td><br />
<br />
<td>24</td><br />
<br />
<td></td><br />
<br />
<td></td><br />
<td></td><br />
<br />
<td>[[Image:draw-connector-tango.png]]</td><br />
</tr><br />
<br />
<tr><br />
<td>[[Image:orig_draw_gradient.png]]</td><br />
<br />
<td>draw gradient</td><br />
<br />
<td>24</td><br />
<br />
<td></td><br />
<td></td><br />
<br />
<td>&nbsp;</td><br />
<br />
<td>[[Image:draw-gradient.png]]</td><br />
</tr><br />
<br />
<tr><br />
<td>[[Image:orig_draw_dropper.png]]</td><br />
<br />
<td>draw dropper</td><br />
<br />
<td>24</td><br />
<br />
<td></td><br />
<td></td><br />
<br />
<td>&nbsp;</td><br />
<br />
<td>[[Image:draw-dropper.png]]</td><br />
</tr><br />
</table><br />
<br />
=== Tool Controls ===<br />
==== Select Controls ====<br />
<table><br />
<tr><br />
<th scope="row">Icon</th><br />
<th scope="row">Icon name</th><br />
<th scope="row">Req. Pixel Size</th><br />
<th scope="row">Description</th><br />
<th scope="row">Current Tango ArtLibreSet</th><br />
<th scope="row">Proposed Icon</th><br />
</tr><br />
<tr><br />
<td>[[Image:orig_object_flip_hor.png]]</td><br />
<td>object flip hor</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td>[[Image:object_flip_hor.png]]</td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_object_flip_ver.png]]</td><br />
<td>object flip ver</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td>[[Image:object_flip_ver.png]]</td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_object_rotate_90_CCW.png]]</td><br />
<td>object rotate 90 CCW</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td>[[Image:object_rotate_90_CCW.png]]</td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_object_rotate_90_CW.png]]</td><br />
<td>object rotate 90 CW</td> <td></td><br />
<td></td><br />
<td></td><br />
<td>[[Image:object_rotate_90_CW.png]]</td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_selection_up.png]]</td><br />
<td>selection up</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td>[[Image:selection_up.png]]</td><br />
</tr><br />
<tr> <td>[[Image:orig_selection_bot.png]]</td> <td>selection bot</td> <td></td> <td></td> <td></td> <td>[[Image:selection_bot.png]]</td> </tr><br />
<tr><br />
<td>[[Image:orig_selection_down.png]]</td><br />
<td>selection down</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td>[[Image:selection_down.png]]</td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_selection_top.png]]</td><br />
<td>selection top</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td>[[Image:selection_top.png]]</td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_selection_deselect.png]]</td><br />
<td>selection deselect</td> <br />
<td></td> <br />
<td></td> <br />
<td></td> <br />
<td>[[Image:selection_deselect.png]]</td> <br />
</tr><br />
<tr><br />
<td>[[Image:orig_selection_select_all.png]]</td> <br />
<td>selection select all</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td>[[Image:selection_select_all.png]]</td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_selection_select_all_in_all_layers.png]]</td><br />
<td>selection select all in all layers</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td>[[Image:selection_select_all_in_all_layers.png]]</td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_transform_corners.png]]</td><br />
<td>transform corners</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td>[[Image:transform_corners.png]]</td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_transform_gradient.png]]</td><br />
<td>transform gradient</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td>[[Image:transform_gradient.png]]</td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_transform_pattern.png]]</td><br />
<td>transform pattern</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td>[[Image:transform_pattern.png]]</td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_transform_stroke.png]]</td><br />
<td>transform stroke</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td>[[Image:transform_stroke.png]]</td><br />
</tr><br />
</table><br />
<br />
==== Node Controls ====<br />
<table><br />
<tr> <br />
<th scope="row">Icon</th><br />
<th scope="row">Icon name</th><br />
<th scope="row">Req. Pixel Size</th> <br />
<th scope="row">Description</th> <br />
<th scope="row">Current Tango ArtLibreSet</th><br />
<th scope="row">Proposed Icon</th><br />
</tr><br />
<tr><br />
<td>[[Image:orig_nodes_show_handles.png]]</td><br />
<td>nodes show handles</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_node_break.png]]</td><br />
<td>node break</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_node_curve.png]]</td><br />
<td>node curve</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_node_cusp.png]]</td><br />
<td>node cusp</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_node_delete.png]]</td><br />
<td>node delete</td> <td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_node_delete_segment.png]]</td><br />
<td>node delete segment</td> <br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_node_insert.png]]</td><br />
<td>node insert</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_node_join.png]]</td><br />
<td>node join</td> <td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_node_join_segment.png]]</td><br />
<td>node join segment</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_node_line.png]]</td><br />
<td>node line</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_node_smooth.png]]</td><br />
<td>node smooth</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_node_symmetric.png]]</td><br />
<td>node symmetric</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_stroke_tocurve.png]]</td><br />
<td>stroke tocurve</td> <br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_object_tocurve.png]]</td><br />
<td>object tocurve</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
</table><br />
<br />
==== Tweak Controls ====<br />
<table><br />
<tr> <th scope="row">Icon</th> <th scope="row">Icon name</th> <th scope="row">Req. Pixel Size</th> <th scope="row">Description</th> <th scope="row">Current Tango ArtLibreSet</th> <th scope="row">Proposed Icon</th> </tr><br />
<tr> <td>[[Image:orig_tweak_attract_mode.png]]</td> <td>tweak attract mode</td> <td></td> <td></td> <td></td> <td></td> </tr><br />
<tr> <td>[[Image:orig_tweak_colorjitter_mode.png]]</td> <td>tweak colorjitter mode</td> <td></td> <td></td> <td></td> <td></td> </tr><br />
<tr> <td>[[Image:orig_tweak_colorpaint_mode.png]]</td> <td>tweak colorpaint mode</td> <td></td> <td></td> <td></td> <td></td> </tr><br />
<tr> <td>[[Image:orig_tweak_grow_mode.png]]</td> <td>tweak grow mode</td> <td></td> <td></td> <td></td> <td></td> </tr><br />
<tr> <td>[[Image:orig_tweak_push_mode.png]]</td> <td>tweak push mode</td> <td></td> <td></td> <td></td> <td></td> </tr><br />
<tr> <td>[[Image:orig_tweak_repel_mode.png]]</td> <td>tweak repel mode</td> <td></td> <td></td> <td></td> <td></td> </tr><br />
<tr> <td>[[Image:orig_tweak_roughen_mode.png]]</td> <td>tweak roughen mode</td> <td></td> <td></td> <td></td> <td></td> </tr><br />
<tr> <td>[[Image:orig_tweak_shrink_mode.png]]</td> <td>tweak shrink mode</td> <td></td> <td></td> <td></td> <td></td> </tr><br />
<tr> <td>[[Image:orig_guse_pressure.png]]</td> <td>guse pressure</td> <td></td> <td></td> <td></td> <td></td> </tr><br />
</table><br />
<br />
==== Zoom Controls ====<br />
<table><br />
<tr> <th scope="row">Icon</th> <th scope="row">Icon name</th> <th scope="row">Req. Pixel Size</th> <th scope="row">Description</th> <th scope="row">Current Tango ArtLibreSet</th> <th scope="row">Proposed Icon</th> </tr><br />
<tr><br />
<td>[[Image:orig_zoom_1_to_1.png]]</td><br />
<td>zoom 1 to 1</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td>[[Image:zoom-original-tango.png]]</td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_zoom_1_to_2.png]]</td><br />
<td>zoom 1 to 2</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td>[[Image:zoom-1-to-2.png]]</td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_zoom_2_to_1.png]]</td><br />
<td>zoom 2 to 1</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td>[[Image:zoom-2-to-1.png]]</td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_zoom_draw.png]]</td><br />
<td>zoom draw</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td>[[Image:zoom-drawing-tango.png]]</td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_zoom_in.png]]</td><br />
<td>zoom in</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td>[[Image:zoom-in-tango.png]]</td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_zoom_next.png]]</td><br />
<td>zoom next</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td>[[Image:zoom-next-tango.png]]</td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_zoom_out.png]]</td><br />
<td>zoom out</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td>[[Image:zoom-out-tango.png]]</td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_zoom_page.png]]</td><br />
<td>zoom page</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td>[[Image:zoom-page.png]]</td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_zoom_pagewidth.png]]</td><br />
<td>zoom pagewidth</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td>[[Image:zoom-page-width.png]]</td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_zoom_previous.png]]</td><br />
<td>zoom previous</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td>[[Image:zoom-previous-tango.png]]</td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_zoom_select.png]]</td><br />
<td>zoom select</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td>[[Image:zoom-selection.png]]</td><br />
</tr><br />
</table><br />
<br />
==== Rectangle Controls ====<br />
<table><br />
<tr> <th scope="row">Icon</th> <th scope="row">Icon name</th> <th scope="row">Req. Pixel Size</th> <th scope="row">Description</th> <th scope="row">Current Tango ArtLibreSet</th> <th scope="row">Proposed Icon</th> </tr><br />
<tr> <td>[[Image:orig_squared_corner.png]]</td> <td>squared corner</td> <td></td> <td></td> <td></td> <td></td> </tr><br />
</table><br />
<br />
==== Arc Controls ====<br />
<table><br />
<tr> <th scope="row">Icon</th> <th scope="row">Icon name</th> <th scope="row">Req. Pixel Size</th> <th scope="row">Description</th> <th scope="row">Current Tango ArtLibreSet</th> <th scope="row">Proposed Icon</th> </tr><br />
<tr> <td>[[Image:orig_circle_closed_arc.png]]</td> <td>circle closed arc</td> <td></td> <td></td> <td></td> <td></td> </tr><br />
<tr> <td>[[Image:orig_circle_open_arc.png]]</td> <td>circle open arc</td> <td></td> <td></td> <td></td> <td></td> </tr><br />
<tr> <td>[[Image:orig_reset_circle.png]]</td> <br />
<td>reset circle</td> <td></td> <td></td> <td></td> <td></td> </tr><br />
</table><br />
<br />
==== Star Controls ====<br />
<table><br />
<tr><br />
<th scope="row">Icon</th><br />
<th scope="row">Icon name</th><br />
<th scope="row">Req. Pixel Size</th><br />
<th scope="row">Description</th><br />
<th scope="row">Current Tango ArtLibreSet</th><br />
<th scope="row">Proposed Icon</th><br />
</tr><br />
<tr><br />
<td>[[Image:orig_star_angled.png]]</td><br />
<td>star angled</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_star_flat.png]]</td><br />
<td>star flat</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
</table><br />
==== Calligraphic Controls ====<br />
<table><br />
<tr><br />
<th scope="row">Icon</th><br />
<th scope="row">Icon name</th><br />
<th scope="row">Req. Pixel Size</th><br />
<th scope="row">Description</th><br />
<th scope="row">Current Tango ArtLibreSet</th><br />
<th scope="row">Proposed Icon</th><br />
</tr><br />
<tr><br />
<td>[[Image:orig_trace_background.png]]</td><br />
<td>trace background</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_guse_tilt.png]]</td><br />
<td>guse tilt</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_guse_pressure.png]]</td><br />
<td>guse pressure</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
</table><br />
==== Text Controls ====<br />
<table><br />
<tr><br />
<th scope="row">Icon</th><br />
<th scope="row">Icon name</th><br />
<th scope="row">Req. Pixel Size</th><br />
<th scope="row">Description</th><br />
<th scope="row">Current Tango ArtLibreSet</th><br />
<th scope="row">Proposed Icon</th><br />
</tr><br />
<tr><br />
<td>[[Image:orig_writing_mode_lr.png]]</td><br />
<td>writing mode lr</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_writing_mode_tb.png]]</td><br />
<td>writing mode tb</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
</table><br />
==== Connector Controls ====<br />
<table><br />
<tr><br />
<th scope="row">Icon</th><br />
<th scope="row">Icon name</th><br />
<th scope="row">Req. Pixel Size</th><br />
<th scope="row">Description</th><br />
<th scope="row">Current Tango ArtLibreSet</th><br />
<th scope="row">Proposed Icon</th><br />
</tr><br />
<tr><br />
<td>[[Image:orig_connector_avoid.png]]</td><br />
<td>connector avoid</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_connector_ignore.png]]</td><br />
<td>connector ignore</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_directed_graph.png]]</td><br />
<td>directed graph</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_remove_overlaps.png]]</td><br />
<td>remove overlaps</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
</table><br />
==== Gradient Controls ====<br />
<table><br />
<tr><br />
<th scope="row">Icon</th><br />
<th scope="row">Icon name</th><br />
<th scope="row">Req. Pixel Size</th><br />
<th scope="row">Description</th><br />
<th scope="row">Current Tango ArtLibreSet</th><br />
<th scope="row">Proposed Icon</th><br />
</tr><br />
<tr><br />
<td>[[Image:orig_fill_radial.png]]</td><br />
<td>fill radial</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_controls_fill.png]]</td><br />
<td>controls fill</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_controls_stroke.png]]</td><br />
<td>controls stroke</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_fill_gradient.png]]</td><br />
<td>fill gradient</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
</table><br />
==== Dropper Controls ====<br />
<table><br />
<tr><br />
<th scope="row">Icon</th><br />
<th scope="row">Icon name</th><br />
<th scope="row">Req. Pixel Size</th><br />
<th scope="row">Description</th><br />
<th scope="row">Current Tango ArtLibreSet</th><br />
<th scope="row">Proposed Icon</th><br />
</tr><br />
<tr><br />
<td>[[Image:orig_color_alpha_get.png]]</td><br />
<td>color alpha get</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_color_alpha_set.png]]</td><br />
<td>color alpha set</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
</table><br />
=== Palettes ===<br />
<table><br />
<tr><br />
<th scope="row">Icon</th><br />
<th scope="row">Icon name</th><br />
<th scope="row">Req. Pixel Size</th><br />
<th scope="row">Description</th><br />
<th scope="row">Current Tango ArtLibreSet</th><br />
<th scope="row">Proposed Icon</th><br />
</tr><br />
<tr><br />
<td>[[Image:orig_object_font.png]]</td><br />
<td>object font</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_xml_editor.png]]</td><br />
<td>xml editor</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_object_align.png]]</td><br />
<td>object align</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_object_trans.png]]</td><br />
<td>object trans</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_fill_and_stroke.png]]</td><br />
<td>fill and stroke</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_grid_arrange.png]]</td><br />
<td>grid arrange</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_layers.png]]</td><br />
<td>layers</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>&nbsp;</td><br />
<td>&nbsp;</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
</table><br />
==== Fill and Stroke ====<br />
<table><br />
<tr><br />
<th scope="row">Icon</th><br />
<th scope="row">Icon name</th><br />
<th scope="row">Req. Pixel Size</th><br />
<th scope="row">Description</th><br />
<th scope="row">Current Tango ArtLibreSet</th><br />
<th scope="row">Proposed Icon</th><br />
</tr><br />
<tr><br />
<td>[[Image:orig_properties_fill.png]]</td><br />
<td>properties fill</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_properties_stroke_paint.png]]</td><br />
<td>properties stroke paint</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_properties_stroke.png]]</td><br />
<td>properties stroke</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_fill_none.png]]</td><br />
<td>fill none</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_fill_gradient.png]]</td><br />
<td>fill gradient</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_fill_radial.png]]</td><br />
<td>fill radial</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_fill_pattern.png]]</td><br />
<td>fill pattern</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_fill_solid.png]]</td><br />
<td>fill solid</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_fill_unset.png]]</td><br />
<td>fill unset</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_fillrule_evenodd.png]]</td><br />
<td>fillrule evenodd</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_fillrule_nonzero.png]]</td><br />
<td>fillrule nonzero</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_cap_butt.png]]</td><br />
<td>cap butt</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_cap_round.png]]</td><br />
<td>cap round</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_cap_square.png]]</td><br />
<td>cap square</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_join_bevel.png]]</td><br />
<td>join bevel</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_join_miter.png]]</td><br />
<td>join miter</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_join_round.png]]</td><br />
<td>join round</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
</table><br />
==== Transform ====<br />
<table><br />
<tr><br />
<th scope="row">Icon</th><br />
<th scope="row">Icon name</th><br />
<th scope="row">Req. Pixel Size</th><br />
<th scope="row">Description</th><br />
<th scope="row">Current Tango ArtLibreSet</th><br />
<th scope="row">Proposed Icon</th><br />
</tr><br />
<tr><br />
<td>[[Image:orig_arrows_hor.png]]</td><br />
<td>arrows hor</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_arrows_ver.png]]</td><br />
<td>arrows ver</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_transform_rotate.png]]</td><br />
<td>transform rotate</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_transform_scale_hor.png]]</td><br />
<td>transform scale hor</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_transform_scale_ver.png]]</td><br />
<td>transform scale ver</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_transform_scew_hor.png]]</td><br />
<td>transform scew hor</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_transform_scew_ver.png]]</td><br />
<td>transform scew ver</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
</table><br />
==== Align and Distribute ====<br />
<table><br />
<tr><br />
<th scope="row">Icon</th><br />
<th scope="row">Icon name</th><br />
<th scope="row">Req. Pixel Size</th><br />
<th scope="row">Description</th><br />
<th scope="row">Current Tango ArtLibreSet</th><br />
<th scope="row">Proposed Icon</th><br />
</tr><br />
<tr><br />
<td>[[Image:orig_al_baselines_hor.png]]</td><br />
<td>al baselines hor</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_al_baselines_vert.png]]</td><br />
<td>al baselines vert</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_al_bottom_in.png]]</td><br />
<td>al bottom in</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_al_bottom_out.png]]</td><br />
<td>al bottom out</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_al_center_hor.png]]</td><br />
<td>al center hor</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_al_center_ver.png]]</td><br />
<td>al center ver</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_al_left_in.png]]</td><br />
<td>al left in</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_al_left_out.png]]</td><br />
<td>al left out</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_al_right_in.png]]</td><br />
<td>al right in</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_al_right_out.png]]</td><br />
<td>al right out</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_al_top_in.png]]</td><br />
<td>al top in</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_al_top_out.png]]</td><br />
<td>al top out</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_distribute_baselines_hor.png]]</td><br />
<td>distribute baselines hor</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_distribute_baselines_vert.png]]</td><br />
<td>distribute baselines vert</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_distribute_bottom.png]]</td><br />
<td>distribute bottom</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_distribute_hcentre.png]]</td><br />
<td>distribute hcentre</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_distribute_hdist.png]]</td><br />
<td>distribute hdist</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_distribute_left.png]]</td><br />
<td>distribute left</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_distribute_randomize.png]]</td><br />
<td>distribute randomize</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_distribute_right.png]]</td><br />
<td>distribute right</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_distribute_top.png]]</td><br />
<td>distribute top</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_distribute_vcentre.png]]</td><br />
<td>distribute vcentre</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_distribute_vdist.png]]</td><br />
<td>distribute vdist</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_unclump.png]]</td><br />
<td>unclump</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_graph_layout.png]]</td><br />
<td>graph layout</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_remove_overlaps.png]]</td><br />
<td>remove overlaps</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_node_halign.png]]</td><br />
<td>node halign</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_node_hdistribute.png]]</td><br />
<td>node hdistribute</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_node_valign.png]]</td><br />
<td>node valign</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_node_vdistribute.png]]</td><br />
<td>node vdistribute</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
</table><br />
==== Grid Arrange ====<br />
<table><br />
<tr><br />
<th scope="row">Icon</th><br />
<th scope="row">Icon name</th><br />
<th scope="row">Req. Pixel Size</th><br />
<th scope="row">Description</th><br />
<th scope="row">Current Tango ArtLibreSet</th><br />
<th scope="row">Proposed Icon</th><br />
</tr><br />
<tr><br />
<td>[[Image:orig_clonetiler_per_row.png]]</td><br />
<td>clonetiler per row</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_clonetiler_per_column.png]]</td><br />
<td>clonetiler per column</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
</table><br />
==== Text ====<br />
<p>Text icons are not currently used.</p><br />
<table><br />
<tr><br />
<th scope="row">Icon</th><br />
<th scope="row">Icon name</th><br />
<th scope="row">Req. Pixel Size</th><br />
<th scope="row">Description</th><br />
<th scope="row">Current Tango ArtLibreSet</th><br />
<th scope="row">Proposed Icon</th><br />
</tr><br />
<tr><br />
<td>[[Image:orig_text_horz_kern.png]]</td><br />
<td>text horz kern</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_text_letter_spacing.png]]</td><br />
<td>text letter spacing</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_text_line_spacing.png]]</td><br />
<td>text line spacing</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_text_remove_kerns.png]]</td><br />
<td>text remove kerns</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_text_vert_kern.png]]</td><br />
<td>text vert kern</td><br />
<td>&nbsp;</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_text_rotation.png]]</td><br />
<td>text_rotation</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
</table><br />
==== Clone ====<br />
<p>Clone icons are not currently used.</p><br />
<table><br />
<tr><br />
<th scope="row">Icon</th><br />
<th scope="row">Icon name</th><br />
<th scope="row">Req. Pixel Size</th><br />
<th scope="row">Description</th><br />
<th scope="row">Current Tango ArtLibreSet</th><br />
<th scope="row">Proposed Icon</th><br />
</tr><br />
<tr><br />
<td>[[Image:orig_clonetiler_per_column_color.png]]</td><br />
<td>clonetiler per column color</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_clonetiler_per_column_opacity.png]]</td><br />
<td>clonetiler per column opacity</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_clonetiler_per_column_rotation.png]]</td><br />
<td>clonetiler per column rotation</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_clonetiler_per_column_scale.png]]</td><br />
<td>clonetiler per column scale</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_clonetiler_per_column_shift.png]]</td><br />
<td>clonetiler per column shift</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_clonetiler_per_row_color.png]]</td><br />
<td>clonetiler per row color</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_clonetiler_per_row_opacity.png]]</td><br />
<td>clonetiler per row opacity</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_clonetiler_per_row_rotation.png]]</td><br />
<td>clonetiler per row rotation</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_clonetiler_per_row_scale.png]]</td><br />
<td>clonetiler per row scale</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_clonetiler_per_row_shift.png]]</td><br />
<td>clonetiler per row shift</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
</table><br />
==== XML Editor ====<br />
<table><br />
<tr><br />
<th scope="row">Icon</th><br />
<th scope="row">Icon name</th><br />
<th scope="row">Req. Pixel Size</th><br />
<th scope="row">Description</th><br />
<th scope="row">Current Tango ArtLibreSet</th><br />
<th scope="row">Proposed Icon</th><br />
</tr><br />
<tr><br />
<td>[[Image:orig_add_xml_element_node.png]]</td><br />
<td>add xml element node</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_add_xml_text_node.png]]</td><br />
<td>add xml text node</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_duplicate_xml_node.png]]</td><br />
<td>duplicate xml node</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_delete_xml_node.png]]</td><br />
<td>delete xml node</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_delete_xml_attribute.png]]</td><br />
<td>delete xml attribute</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
</table><br />
==== Layers ====<br />
<table><br />
<tr><br />
<th scope="row">Icon</th><br />
<th scope="row">Icon name</th><br />
<th scope="row">Req. Pixel Size</th><br />
<th scope="row">Description</th><br />
<th scope="row">Current Tango ArtLibreSet</th><br />
<th scope="row">Proposed Icon</th><br />
</tr><br />
<tr><br />
<td>[[Image:orig_visible.png]]</td><br />
<td>visible</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_width_height_lock.png]]</td><br />
<td>width height lock</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_hidden.png]]</td><br />
<td>hidden</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_lock_unlocked.png]]</td><br />
<td>lock unlocked</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
</table><br />
=== Menus ===<br />
==== File ====<br />
<table><br />
<tr><br />
<th scope="row">Icon</th><br />
<th scope="row">Icon name</th><br />
<th scope="row">Req. Pixel Size</th><br />
<th scope="row">Description</th><br />
<th scope="row">Current Tango ArtLibreSet</th><br />
<th scope="row">Proposed Icon</th><br />
</tr><br />
<tr><br />
<td>[[Image:orig_file_export.png]]</td><br />
<td>file export</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_file_import.png]]</td><br />
<td>file import</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_file_vacuum.png]]</td><br />
<td>file vacuum</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_document_metadata.png]]</td><br />
<td>document metadata</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_input_devices.png]]</td><br />
<td>input devices</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_ocal_export.png]]</td><br />
<td><abbr title="Open Clip Art Library">ocal</abbr> export</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_ocal_import.png]]</td><br />
<td><abbr title="Open Clip Art Library">ocal</abbr> import</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
</table><br />
<br />
==== Edit ====<br />
<table><br />
<tr><br />
<th scope="row">Icon</th><br />
<th scope="row">Icon name</th><br />
<th scope="row">Req. Pixel Size</th><br />
<th scope="row">Description</th><br />
<th scope="row">Current Tango ArtLibreSet</th><br />
<th scope="row">Proposed Icon</th><br />
</tr><br />
<tr><br />
<td>[[Image:orig_edit_undo_history.png]]</td><br />
<td>edit undo history</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_selection_paste_in_place.png]]</td><br />
<td>selection paste in place</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_selection_paste_style.png]]</td><br />
<td>selection paste style</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_edit_clone.png]]</td><br />
<td>edit clone</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_edit_create_tiled_clones.png]]</td><br />
<td>edit create tiled clones</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_edit_duplicate.png]]</td><br />
<td>edit duplicate</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_edit_select_original.png]]</td><br />
<td>edit select original</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_edit_unlink_clone.png]]</td><br />
<td>edit unlink clone</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_selection_bitmap.png]]</td><br />
<td>selection bitmap</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_selection_invert.png]]</td><br />
<td>selection invert</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_selection_deselect.png]]</td><br />
<td>selection deselect</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
</table><br />
==== View ====<br />
<table><br />
<tr><br />
<th scope="row">Icon</th><br />
<th scope="row">Icon name</th><br />
<th scope="row">Req. Pixel Size</th><br />
<th scope="row">Description</th><br />
<th scope="row">Current Tango ArtLibreSet</th><br />
<th scope="row">Proposed Icon</th><br />
</tr><br />
<tr><br />
<td>[[Image:orig_zoom_1_to_1.png]]</td><br />
<td>zoom 1 to 1</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_zoom_1_to_2.png]]</td><br />
<td>zoom 1 to 2</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_zoom_2_to_1.png]]</td><br />
<td>zoom 2 to 1</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_zoom_draw.png]]</td><br />
<td>zoom draw</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_zoom_in.png]]</td><br />
<td>zoom in</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_zoom_next.png]]</td><br />
<td>zoom next</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_zoom_out.png]]</td><br />
<td>zoom out</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_zoom_page.png]]</td><br />
<td>zoom page</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_zoom_pagewidth.png]]</td><br />
<td>zoom pagewidth</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_zoom_previous.png]]</td><br />
<td>zoom previous</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_zoom_select.png]]</td><br />
<td>zoom select</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_grid.png]]</td><br />
<td>grid</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_guides.png]]</td><br />
<td>guides</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_dialog_toggle.png]]</td><br />
<td>dialog toggle</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_swatches.png]]</td><br />
<td>swatches</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_messages.png]]</td><br />
<td>messages</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_scripts.png]]</td><br />
<td>scripts</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_window_next.png]]</td><br />
<td>window next</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_window_previous.png]]</td><br />
<td>window previous</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_view_icon_preview.png]]</td><br />
<td>view icon preview</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_view_new.png]]</td><br />
<td>view new</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_fullscreen.png]]</td><br />
<td>fullscreen</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
</table><br />
==== Layer ====<br />
<table><br />
<tr><br />
<th scope="row">Icon</th><br />
<th scope="row">Icon name</th><br />
<th scope="row">Req. Pixel Size</th><br />
<th scope="row">Description</th><br />
<th scope="row">Current Tango ArtLibreSet</th><br />
<th scope="row">Proposed Icon</th><br />
</tr><br />
<tr><br />
<td>[[Image:orig_new_layer.png]]</td><br />
<td>new layer</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_rename_layer.png]]</td><br />
<td>rename layer</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_switch_to_layer_above.png]]</td><br />
<td>switch to layer above</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_switch_to_layer_below.png]]</td><br />
<td>switch to layer below</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_move_selection_above.png]]</td><br />
<td>move selection above</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_move_selection_below.png]]</td><br />
<td>move selection below</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_layer_to_bottom.png]]</td><br />
<td>layer to bottom</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_layer_to_top.png]]</td><br />
<td>layer to top</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_raise_layer.png]]</td><br />
<td>raise layer</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_lower_layer.png]]</td><br />
<td>lower layer</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_delete_layer.png]]</td><br />
<td>delete layer</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
</table><br />
==== Object ====<br />
<table><br />
<tr><br />
<th scope="row">Icon</th><br />
<th scope="row">Icon name</th><br />
<th scope="row">Req. Pixel Size</th><br />
<th scope="row">Description</th><br />
<th scope="row">Current Tango ArtLibreSet</th><br />
<th scope="row">Proposed Icon</th><br />
</tr><br />
<tr><br />
<td>[[Image:orig_selection_group.png]]</td><br />
<td>selection group</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_selection_ungroup.png]]</td><br />
<td>selection ungroup</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_selection_up.png]]</td><br />
<td>selection up</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_selection_bot.png]]</td><br />
<td>selection bot</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_selection_down.png]]</td><br />
<td>selection down</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_selection_top.png]]</td><br />
<td>selection top</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_object_flip_hor.png]]</td><br />
<td>object flip hor</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_object_flip_ver.png]]</td><br />
<td>object flip ver</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_object_rotate_90_CCW.png]]</td><br />
<td>object rotate 90 CCW</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_object_rotate_90_CW.png]]</td><br />
<td>object rotate 90 CW</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
</table><br />
==== Path ====<br />
<table><br />
<tr><br />
<th scope="row">Icon</th><br />
<th scope="row">Icon name</th><br />
<th scope="row">Req. Pixel Size</th><br />
<th scope="row">Description</th><br />
<th scope="row">Current Tango ArtLibreSet</th><br />
<th scope="row">Proposed Icon</th><br />
</tr><br />
<tr><br />
<td>[[Image:orig_stroke_tocurve.png]]</td><br />
<td>stroke tocurve</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_object_tocurve.png]]</td><br />
<td>object tocurve</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_selection_trace.png]]</td><br />
<td>selection trace</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_union.png]]</td><br />
<td>union</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_difference.png]]</td><br />
<td>difference</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_division.png]]</td><br />
<td>division</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_exclusion.png]]</td><br />
<td>exclusion</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_selection_break.png]]</td><br />
<td>selection break</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_selection_combine.png]]</td><br />
<td>selection combine</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_linked_offset.png]]</td><br />
<td>linked offset</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_dynamic_offset.png]]</td><br />
<td>dynamic offset</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_outset_path.png]]</td><br />
<td>outset path</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_inset_path.png]]</td><br />
<td>inset path</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_intersection.png]]</td><br />
<td>intersection</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_cut_path.png]]</td><br />
<td>cut path</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_simplify.png]]</td><br />
<td>simplify</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_selection_reverse.png]]</td><br />
<td>selection reverse</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
</table><br />
==== Text ====<br />
<table><br />
<tr><br />
<th scope="row">Icon</th><br />
<th scope="row">Icon name</th><br />
<th scope="row">Req. Pixel Size</th><br />
<th scope="row">Description</th><br />
<th scope="row">Current Tango ArtLibreSet</th><br />
<th scope="row">Proposed Icon</th><br />
</tr><br />
<tr><br />
<td>[[Image:orig_put_on_path.png]]</td><br />
<td>put on path</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_remove_from_path.png]]</td><br />
<td>remove from path</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_flow_into_frame.png]]</td><br />
<td>flow into frame</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_unflow.png]]</td><br />
<td>unflow</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_convert_to_text.png]]</td><br />
<td>convert to text</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_remove_manual_kerns.png]]</td><br />
<td>remove manual kerns</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
</table><br />
==== Help ====<br />
<table><br />
<tr><br />
<th scope="row">Icon</th><br />
<th scope="row">Icon name</th><br />
<th scope="row">Req. Pixel Size</th><br />
<th scope="row">Description</th><br />
<th scope="row">Current Tango ArtLibreSet</th><br />
<th scope="row">Proposed Icon</th><br />
</tr><br />
<tr><br />
<td>[[Image:orig_about_memory.png]]</td><br />
<td>about memory</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td>[[Image:orig_inkscape_options.png]]</td><br />
<td>inkscape options</td><br />
<td></td><br />
<td></td><br />
<td></td><br />
<td></td><br />
</tr><br />
</table><br />
==== Extras ====<br />
<p>These icons may need classification or may be unused.</p><br />
<table><br />
<tr> <th scope="row">Icon</th> <th scope="row">Icon name</th> <th scope="row">Req. Pixel Size</th> <th scope="row">Description</th> <th scope="row">Current Tango ArtLibreSet</th> <th scope="row">Proposed Icon</th> </tr><br />
<tr> <td>[[Image:orig_3dbox_four_handles.png]]</td> <td>3dbox four handles</td> <td></td> <td></td> <td></td> <td></td> </tr><br />
<tr> <td>[[Image:orig_3dbox_three_handles.png]]</td> <td>3dbox three handles</td> <td></td> <td></td> <td></td> <td></td> </tr><br />
<tr> <td>[[Image:orig_dialog_item_properties.png]]</td> <td>dialog item properties</td> <td></td> <td></td> <td></td> <td></td> </tr><br />
<tr> <td>[[Image:orig_draw_3dbox.png]]</td> <td>draw 3dbox</td> <td></td> <td></td> <td></td> <td></td> </tr><br />
<tr> <td>[[Image:orig_file_open_recent.png]]</td> <td>file open recent</td> <td></td> <td></td> <td></td> <td></td> </tr><br />
<tr> <td>[[Image:orig_help_keys.png]]</td> <td>help keys</td> <td></td> <td></td> <td></td> <td></td> </tr><br />
<tr> <td>[[Image:orig_help_tutorials.png]]</td> <td>help tutorials</td> <td></td> <td></td> <td></td> <td></td> </tr><br />
<tr> <td>[[Image:orig_inkscape.file.png]]</td> <td>inkscape.file</td> <td></td> <td></td> <td></td> <td></td> </tr><br />
<tr> <td>[[Image:orig_sticky_zoom.png]]</td> <td>sticky zoom</td> <td></td> <td></td> <td></td> <td></td> </tr><br />
<tr> <td>[[Image:orig_toggle_vp_x.png]]</td> <td>toggle vp x</td> <td></td> <td></td> <td></td> <td></td> </tr><br />
<tr> <td>[[Image:orig_toggle_vp_y.png]]</td> <td>toggle vp y</td> <td></td> <td></td> <td></td> <td></td> </tr><br />
<tr> <td>[[Image:orig_toggle_vp_z.png]]</td> <td>toggle vp z</td> <td></td> <td></td> <td></td> <td></td> </tr><br />
</table></div>NeoPhyte Rephttps://wiki.inkscape.org/wiki/index.php?title=Google_Summer_of_Code_2007&diff=74102Google Summer of Code 20072011-12-02T17:13:47Z<p>NeoPhyte Rep: /* ccHost Import/Export */ Changed references to OCAL for readability and use.</p>
<hr />
<div>This year Inkscape is going to participate, yet again, in Google's Summer of Code (SoC) 2007. Help us come up with some solid places to innovate and push forward.<br />
<br />
= Student Applications =<br />
<br />
* Google program information<br />
** Summer of Code Application form<br />
* Inkscape-specific information<br />
** [[SOC Application Template]]<br />
** [[Roadmap | Inkscape Roadmap]] - to see our overall objectives<br />
** [[SOC Writing Project Proposals]] - some guidelines for proposals<br />
** [[SOC Selection Criteria]] - how we rate applications<br />
<br />
= Project Ideas =<br />
<br />
== General ==<br />
<br />
=== 3D Tool ===<br />
<br />
Inkscape is a 2D drawing tool. However, very often it is used to draw 3D objects. It would be very cool to have more support from the program for doing that, instead of just drawing everything manually. Nothing too fancy - we're not going to compete with Blender; but even simple things can go a long way. What's listed below is just basic ideas; feel free to develop upon them or offer something entirely different in your proposal. <br />
<br />
A '''3D box tool''' would be able to: <br />
<br />
*draw a 3D box; <br />
<br />
*adjust any of its 3 dimensions by handles and numerically; <br />
<br />
*freely move the perspective vanishing point for each dimension; <br />
<br />
*switch any dimension from a vanishing point to direction (point in infinity, lines are parallel) and back;<br />
<br />
*subdivide or multiply the box to create perspective grids;<br />
<br />
*when more than one 3D box is selected and their perspective is compatible, drag their common vanishing points/directions updating all selected boxes;<br />
<br />
*3D-rotate the entire selected 3D box (or several selected 3D boxes if they have a compatible perspective), thus moving all 3 directions/vanishing points in a natural way;<br />
<br />
*remember the last-set directions/vanishing points and create new objects in the same perspective, so you can quickly and easily draw an entire 3D scene with many boxes;<br />
<br />
In SVG, a 3D box will be represented as a group (svg:g) with a special extension attribute (in inkscape namespace); the group would normally contain the 6 quadrilateral paths representing the sides of the box. Only the 3D box tool would treat this object as a whole; for all other tools it will be just a group, so you can select any of the paths, apply any style to it, delete it, etc. You can of course transform the group or any face in it using Selector or Node tools. At the same time, the 3D tool would still be able to 3D-rotate and 3D-tweak the box while preserving any changed style (but not necessarily preserving transforms or node edits of individual sides) and not restoring deleted sides (e.g. if you don't want to see the hidden sides, simply delete them as objects from the group). The tool must also be able to create "degenerate" boxes - planes and lines represented as boxes with one or two dimensions equal to zero. <br />
<br />
In the UI, drawing with this tool creates a box with 4 handles on the box (3 for changing its dimensions and one in the center for dragging it in 3D) and 3 more perspective handles. If some dimension has a vanishing point, its perspective handle is (for example) diamond; if that dimension has infinity vanishing point, the corresponding handle is round (and can adjust only direction from the center). Dragging box handles without Shift moves them in X/Y plane, with Shift in Z. If multiple boxes selected and their perspectives are compatible, the corresponding handles snap together and dragging them affects everything selected.<br />
<br />
'''3D guides''' can be a helpful addition to the 3D box tool. You would be able to create a new set of 3D guides from any 3D box and then use these guides for drawing with any tool that can snap to guides (e.g. the Pen tool). The guides would use different colors for the three dimensions. Ideally the guides should remember which object they were created from and update when that object's perspective (the set of 3 vanishing points or directions) is edited in the 3D tool. <br />
<br />
'''Mini FAQ:'''<br />
<br />
*'''Why not improve integration with Blender instead?''' Because even if Inkscape/Blender integration were much more seamless than now, and even if Blender's UI were much more like Inkscape's, (neither of which is true), it would still suck to have a separate program for such a basic aspect of your drawing as (essentially) objects' shapes. <br />
<br />
:Besides, Blender has a different approach to 3D than what I want for Inkscape. In Blender, you shape your objects, position them in a 3D space, and position your point of view in the same space to get some picture. That's fine if what you are interested in is the 3D world. But traditional artists do not work like that. They don't need a 3D world; they need a 2D drawing that gives an impression of 3D. From the times of Leonardo, this means starting with placing your perspective vanishing points/directions and then drawing objects to conform to these. That's the most natural approach for a 2D artist. I don't know if Blender allows you to freely drag the vanishing points at all (and even if it does, it's hardly the default editing mode in it). In Inkscape, that will be the main mode of interaction, very similar to the way all other shapes are edited by dragging their control handles.<br />
<br />
*'''Isn't it the same as Extrude or Perspective tools (e.g. in Corel Draw)?''' Not quite. Perspective distortion of an arbitrary path is something we very definitely need; extrude is also nice, especially for text headings. But they are both effects that, most often, just add a 3D eyecandy to existing objects. What I envision is a tool for a draftsman, a technical illustrator; something that lets you draw entire scenes in one common perspective easily. The main point of my proposal is, let's do the fundamentals right, before we do any eyecandy. And in the world of 3D, a basic '''3D box''' is as fundamental as you can get. '''Everything else stems from it or can be defined by it;''' this tool can be used as a generic "definer" of the perspective. For example, you can: <br />
<br />
:* take one 3D box, copy its perspective, and paste on other boxes;<br />
<br />
:* project a path onto a side of the box ("perspective envelope");<br />
<br />
:* apply the box's perspective and bounds to any object to extrude it;<br />
<br />
:*tell it to inscribe other 3D primitives (cylinder, cone, pyramid) into a box;<br />
<br />
:* do "perspective clone tiling": cloning an object to each cell of a 3D grid defined by a box;<br />
<br />
:* even enable ellipse and other drawing tools to draw in one plane of the currently selected box's perspective. <br />
<br />
<br />
This is a big and infinitely expandable area. We do not expect any single student to cover all of this in a single summer. You can propose a reasonably useful subset of this functionality as your 2007 GSoC project.<br />
<br />
<b>Mentor:</b> Bulia Byak<br />
<br />
=== Live Path Effects ===<br />
<br />
As explained on [[LivePathEffects|this wiki page]], Live Path Effects allow arbitrary path-changing effects to be applied to any path object. Inkscape will remember the original path before the transformation was applied, so you will be able to remove the effect, chain several effects on the same path, adjust their parameters, etc. All the effects metadata will be stored in Inkscape-only attributes. At the same time, the resulting visible path (with the effects applied) is saved using pure SVG elements and attributes and thus visible to all SVG renderers, thus upholding Inkscape's basic principle of operation: drawings must look exactly the same in Inkscape as in any SVG-compliant renderer.<br />
<br />
This approach will allow us to make many of the effects currently implemeted as extensions (in the Effects menu) live and interactive. Path randomization, putting pattern along path, blends, envelopes, various distortions - all these can and should be live path effects, not the clunky, slow, and inconvenient Python scripts. Fortunately, Inkscape architecture makes creating live path effects relatively easy.<br />
<br />
To complete this project, a student must implement at least several simple effects, propose and create a basic user interface for applying them to paths (Path Effects tool?). Some of the effects that you could start with are:<br />
<br />
* '''Patterned or "skeletal" strokes''': Similar to the "Pattern along path" extension in 0.45, but fully interactive and auto-updating. You can edit the "skeleton" path and the pattern applied to it at any time.<br />
<br />
* '''Filleting''' (corner rounding) is common in technical drawing. While this is a fairly basic drafting task, it's currently not particularly easy to do in Inkscape except for certain cases such as round cornered rectangles. This effect would apply rounding with a given radius to all or some sharp corners of a path. It should also permit creation of '''chamfers''' which are flattened edges at suitable angles.<br />
<br />
* '''Fractalize''' is currently a Python effect but would make a great live path effect. It can be useful in <b>mapmaking</b>; maps involve lots of irregular shapes - coastlines, forest boundaries, rivers, etc. that could use fractalization with adjustable level. (As an added bonus, this could be implemented so that the level of fractalization depends on zoom, but preserving this behavior outside of Inkscape would require some smart scripting as explained in this paper: [http://www.svgopen.org/2004/papers/AdaptiveLoD/ Adaptive Level of Detail in SVG].)<br />
<br />
<b>Mentor:</b> Aaron Spike<br />
<br />
=== Inkboard Portability ===<br />
<br />
Last year we had a successful project to integrate the SVG online whiteboard capability, called Inkboard, into Inkscape. Unfortunately, it does not work on Windows, so many users are missing out on this capability.<br />
<br />
This work may involve [http://svn.sourceforge.net/viewcvs.cgi/inkscape/inkscape/branches/INKBOARD_PEDRO/src/jabber_whiteboard/protocol/ formalizing and extending the Inkboard communication protocol] and [http://svn.sourceforge.net/viewcvs.cgi/inkscape/inkscape/branches/INKBOARD_PEDRO/src/jabber_whiteboard/ working on the INKBOARD_PEDRO branch])<br />
<br />
<b>Mentor:</b> Ted<br />
<br />
=== New Grids ===<br />
<br />
Inkscape currently has square grids that can be snapped to. Extend this to allow other kinds of grids: Perspective, hex, iso, etc.<br />
<br />
This will involve modifying the grid code to support the ability to have multiple kinds of grids, implementing at least 3 new grids, and adding the UI elements to allow users to make use of them.<br />
<br />
Requests in tracker:<br />
*[http://sourceforge.net/tracker/index.php?func=detail&aid=1591386&group_id=93438&atid=604309 Perspective Grid: 2 and 3 point with sample Perl script.]<br />
*[http://sourceforge.net/tracker/index.php?func=detail&aid=1005753&group_id=93438&atid=604309 Perspective Grid: 1, 2, and 3 point.]<br />
*[http://sourceforge.net/tracker/index.php?func=detail&aid=1418249&group_id=93438&atid=604309 Hex Grid.]<br />
*[http://sourceforge.net/tracker/index.php?func=detail&aid=1365504&group_id=93438&atid=604309 Isometric Grid.]<br />
*[http://sourceforge.net/tracker/index.php?func=detail&aid=900270&group_id=93438&atid=604309 Isometric Grid.]<br />
<br />
<b>Mentor:</b> TBD<br />
<br />
<br />
=== Text Tool Improvements ===<br />
<br />
Inkscape's text tool is handy, but still lacks many of the niceties that users would like. This project would seek to address this by implementing various improvements that users have requested.<br />
<br />
Some ideas for improvements:<br />
* When flowing a text which already contains line breaks, provide a way for the line breaks to be conserved<br />
* When the style selected in the the Text and Font dialog is applied it erases any other style applied to some part of the text (like italics on some words, bold on others&hellip;), it would also be better to keep them where appropriate. <br />
* Support [http://www.w3.org/TR/SVG11/text.html#TextDecorationProperties text-decoration] (underline, overline, line-through)<br />
* Better respect different faces of fonts (Light, Book, Normal, Black etc.)<br />
* Support justified text - might be some subset of those proposed at http://www.w3.org/TR/css3-text/; see also http://bowman.csse.monash.edu.au/~pmoulder/text-in-shape.tar.gz as a possible starting point.<br />
* Paragraph styling - space before &amp; after paragraphs, indent left &amp; right.<br />
* Spellchecking. Inkscape includes limited spellchecking support based on aspell but it is not enabled by default. Spellchecking based on enchant could use a much wider range of spellchecking engines and be made more widely available and be good enough to show prominently and enable by default. <br />
* Search through the Inkscape Request for Enhancement (RFE) list for other text and font improvement ideas. <br />
<br />
See also: http://valessio.ul-jb.org/projetos/inkscape/inkscribus.htm<br />
<br />
<b>Mentor:</b> TBD<br />
<br />
=== Color Adjustment Dialog ===<br />
<br />
Currently, it is possible to select, say, 12 objects in the drawing and set them to the same color/gradient/pattern. This project would go a step further, allowing multiple objects of differing color to have aspects of their color (such as brightness/contrast, HSL, etc.) altered, and to operate on vector objects with different fill styles (flat, gradient, or pattern fills), and to bitmaps.<br />
<br />
Note: in 0.45, we have a set of extension effects that do this. But they are clumsy and slow. We need this to be in the core of the program with a good interactive user interface. <br />
<br />
<b>Mentor:</b> Bulia Byak<br />
<br />
<br />
== Import/export ==<br />
<br />
=== Native Import of Encapsulated Poscript (EPS) or Adobe Portable Document Format (PDF) ===<br />
<br />
While SVG is becoming a common format for exchanging data between graphics programs, EPS and PDF are still much more common. Inkscape's current EPS import is brittle, not as well maitained as we might like, and not available for all target platforms as it depends on 3rd party software. The goal is to give Inkscape native EPS or PDF import capability. <br />
<br />
Where the code can be borrowed from: <br />
<br />
*For EPS: Scribus' EPS Import Library<br />
<br />
*For PDF: Poppler library http://poppler.freedesktop.org/<br />
<br />
*For both: Ghostscript (though it may be too heavy for us)<br />
<br />
The student needs to evaluate these (or other) possibilities, lay out a plan, and implement a native importer in Inkscape, either using an external lib to link to, or just importing the necessary code directly into Inkscape tree (as we did for Potrace). The end result will be Inkscape being able to correctly import a reasonable majority of EPS or PDF files in the wild (we can agree on a more formal conformance test if this idea interests anyone).<br />
<br />
<b>Mentor:</b> ???<br />
<br />
=== Native Import/Export of Corel Draw (CDR) files ===<br />
<br />
Corel Draw was and still is a very popular drawing application and many files exist in the Corel Draw format. The user interface of Corel Draw is more similar in many ways to Inkscape than other graphics software making Inkscape more attractive to Corel Draw artists. We are getting a lot of requests from users to support this format. <br />
<br />
While CDR is not an open format, several open source implementations exist, from which you can borrow code:<br />
<br />
* Open source [http://xaralx.org/ Xara LX] can import and export CDR files.<br />
<br />
* [http://sk1.sourceforge.net sK1] is a Corel Draw lookalike vector editor, at early stages of development but claiming to be able to read CDR files. <br />
<br />
* CDR files use [http://en.wikipedia.org/wiki/RIFF RIFF metaformat], which means you can easily find an open source library for reading the top layer of the format (try any open source app that can read WAV or AVI, which are also RIFF-based). http://en.wikipedia.org/wiki/.cdr<br />
<br />
A student for this project will need to plan the scope of the feature (we do not need to do all the fancy features, but basics need to be covered) and assemble, with the help of the mentor, a library of sample CDR files for testing.<br />
<br />
'''Mentor:''' Bulia Byak<br />
<br />
=== ccHost Import/Export ===<br />
<br />
Allow exporting to, or importing from, a remote ccHost instance.<br />
<br />
In particular, export to the [http://www.openclipart.org/ Open Clip Art Library (OCAL)], and import from said library (with some search terms, tag words, and perhaps even browsing.)<br />
<br />
[[LionKimbro]] can help someone spec out the capabilities, interfaces (both programmatic and GUI), and so on. He's written a little on [[Open Clip Art Library Integration]] already. cell: 206.427.2545.<br />
<br />
== SVG features ==<br />
<br />
=== SVG Font support ===<br />
<br />
We need SVG Font support in order to be able to claim SVG Tiny support. While the occurrence of SVG fonts in the wild seems to be pretty low, we will benefit from this by being able to embed fonts and thus ensure rendering of text without converting it to paths. <br />
<br />
<b>Mentor:</b> ???<br />
<br />
=== External Cascading Stylesheet (CSS) Support ===<br />
<br />
Inkscape currently has good support for inline CSS, and limited read-only support for an internal stylesheet in a <style> element, and no support for external stylesheets. Support for editing non-inline CSS would allow better expressiveness and adaptation, and smaller SVG files, and better support for SVG generated by other programs that use non-inline CSS.<br />
<br />
<b>Mentor:</b> Peter Moulder<br />
<br />
=== Multi-page Support ===<br />
<br />
An often requested feature is for Inkscape to support multi-page editing. <br />
Currently, an Inkscape document is set to correspond to 1 printed page. However, the next version of SVG specification (1.2) includes support for [http://jan.kollhof.net/projects/svg/motjuvie/present.xhtml multi-page documents], and lots of people would like to have this capability in Inkscape as well.<br />
<br />
This project would involve several steps: 1) Add internal support for reading and writing SVG 1.2 <pageSet> and <page> elements. 2) When editing a pageSet, create the visual page frames for each <page>. 3) When exporting to Postscript, have it export each <page> as a separate page in the Postscript file.<br />
<br />
(Another frequent request is support for a tabbed interface. To be clear a tabbed interface is quite a different request from this one and any such Tabbed interface would need to accomodate the requirement of single documents with multiple pages like those proposed in SVG and already existing in PDF, OpenDocument Draw, and many others.)<br />
<br />
=== User Interface for SVG Filters ===<br />
<br />
Filters are a very important [http://www.w3.org/TR/SVG/filters.html SVG capability].<br />
<br />
Inkscape has basic support for filters in general thanks to a couple GSoC students' work last year, and more or less complete support for Gaussian Blur. What is needed: (1) adding support for more filters and making sure they work well in combination; (2) designing a UI that will be able to create, view, and modify arbitrarily complex filter stacks.<br />
<br />
<b>Mentor:</b> Bulia Byak<br />
<br />
<br />
<br />
== Raster Graphics ==<br />
<br />
=== Inkscape / GIMP raster graphics Editing Integration ===<br />
<br />
Currently, you can embed raster/bitmap images into Inkscape drawings, but editing them is a bit of a hassle because Inkscape isn't really "aware" of external bitmap editing tools.<br />
<br />
This project would seek to correct this by modifying inkscape's image embedding code to interoperate more directly with external bitmap programs. For instance, there would be an "open external editor" command that could be used when one or more bitmap images are selected. Another idea would be to include some common bitmap modification commands from the external program, that can be run entirely within Inkscape. A third idea is drag and drop of selections from the bitmap editor to Inkscape, and SVG selections from Inkscape to the bitmap tool.<br />
<br />
As a proof of concept, the result should demonstrate this interoperability with GIMP and/or [http://www.gegl.org/ GeGL]. Note that the code should be developed such that in theory it should work with any bitmap editor, but we would only require demonstration of working with GIMP.<br />
<br />
Also see: http://sourceforge.net/tracker/index.php?func=detail&aid=862655&group_id=93438&atid=604309<br />
<br />
<b>Mentor:</b> TBD<br />
<br />
=== Adding raster capabilities to Inkscape ===<br />
<br />
While the purpose of Inkscape is to be a vector editor, design in the real world requires dealing with bitmaps too. Inkscape can import the bitmaps, and have them as full canvas objects, but there is no significant bitmap operations in Inkscape. While there is no reason for Inkscape to replicate the functionality of The GIMP, it would be desirable to have a few simple operations available from Inkscape.<br />
<br />
This project will use the Inkscape extensions system to add a series of bitmap effects. The majority of the effects will be achieved through the integration of the ImageMagick bitmap handling libraries. GIMP may be another source. These effects can then be run on bitmap graphics within Inkscape.<br />
<br />
The work should be encapsulated in such a way that in theory, other vector graphics applications (such as Xara), could also use the work. However, for the scope of this project we only require demonstration of the capabilities in Inkscape.<br />
<br />
There are various requests in the tracker on this topic but they are difficult to identify since a mix of terminology is used, such as bitmap, raster, pixel and other graphics terms. Ask the developers on the mailing lists if in doubt. <br />
<br />
<b>Project Timeline:</b><br />
<br />
* Implement first effect. This involves building Inkscape, linking in ImageMagick and getting one effect written (6 weeks)<br />
* Implement remaining effects within ImageMagick (3 weeks)<br />
* Build a test suite for operations and complete all Doxygen documentation of code (3 weeks)<br />
<br />
<b>Mentor:</b> Ted Gould<br />
<br />
<br />
<br />
<br />
<br />
== Your own original ideas == <br />
<br />
Original ideas are also welcome but students stand a better chance of getting selected by choosing from the suggested projects and where a mentor is available to supervise the work. If in doubt contact the developers on the mailing lists. <br />
<br />
<br />
= Accepted by Google =<br />
<br />
*[http://www.scs.carleton.ca/~gbanaszk/code/soc07/index.htm Text Improvements]<br />
** by Gail Banaszkiewicz, mentored by Richard Hughes<br />
<br />
* Native PDF import capability based on libpoppler <br />
**by Miklos Erdelyi, mentored by Jon Cruz<br />
<br />
* [[GSOC2007 Live path effects in Inkscape|Live path effects in Inkscape]]<br />
** by Johan Engelen, mentored by Aaron Spike<br />
<br />
* [[GSOC2007 3D box tool|3D box tool for Inkscape]]<br />
** by Maximilian Albert, mentored by bulia byak<br />
<br />
* UI for SVG Filter Effects<br />
** by Nicholas Bishop, mentored by MenTaLguY<br />
<br />
* Raster Functionality in Inkscape<br />
** by Christopher Brown, mentored by Theodore J. Gould<br />
<br />
* Importing from, and Exporting to, a remote ccHost instance <br />
**by Bruno Lu Gon-alves Dilly, mentored by Bryce Harrington<br />
<br />
= Past Years =<br />
<br />
* [[Googles Summer of Code 2006]]<br />
* Googles Summer of Code 2005<br />
** [[SOC Accepted Proposals]]<br />
** [[SOC Writing Project Proposals]]<br />
** [[SOC Selection Criteria]]<br />
** [[SOC Original Project Prompts]]</div>NeoPhyte Rephttps://wiki.inkscape.org/wiki/index.php?title=OpenClipArtLibraryIntegration&diff=74096OpenClipArtLibraryIntegration2011-12-02T17:06:25Z<p>NeoPhyte Rep: moved OpenClipArtLibraryIntegration to Open Clip Art Library Integration: Readability</p>
<hr />
<div>#REDIRECT [[Open Clip Art Library Integration]]</div>NeoPhyte Rephttps://wiki.inkscape.org/wiki/index.php?title=Open_Clip_Art_Library_Integration&diff=74090Open Clip Art Library Integration2011-12-02T17:06:25Z<p>NeoPhyte Rep: moved OpenClipArtLibraryIntegration to Open Clip Art Library Integration: Readability</p>
<hr />
<div>This is an idea for 2 ways of integrating [[Inkscape]] with the [[Open Clip Art Library]] [http://www.openclipart.org/ (OCAL)].<br />
<br />
== Keyed Search & Inclusion from OCAL ==<br />
<br />
When the user is making a drawing, the user thinks, "Oh, I need ''penguin'' clip-art here."<br />
<br />
It would be nice if the user could press a key sequence (Control-''N'', for some N,) and then type in the word "penguin." The user then has a penguin, selected, under the cursor.<br />
<br />
If that particular penguin won't do, the user can deleted it (delete key, as usual, to delete a selected item,) and then key in a new search (Control-''N'', key in "penguin baby,") or tap Control-Spacebar repeatedly to flip through different images tagged (or otherwise identified) "penguin."<br />
<br />
This idea is inspired by the way that character selection works for asian characters sets (Chinese, Kanji.)<br />
<br />
=== Multi-Library Support ===<br />
<br />
Ideally, the user could search from local libraries, in addition to the OCAL, or specify the library that is the source of inclusion. This way, the user can control what sorts of images will appear. (Similar to the idea of a "font," but for clipart -- ensuring that the images are the same style, license, and so on.)<br />
<br />
Tagged image libraries is, to me, an obvious and simple way of doing this.<br />
<br />
== Automated Publishing ==<br />
<br />
Have a system for saving directly to the OCAL.<br />
<br />
The system would likely engage in a dialog with the user. The dialog would explain what is happening, allow the user to programmatically register the clipart in the public domain, and collect information about the clipart from the user (author, tags, categories, ...)<br />
<br />
== Research Notes ==<br />
<br />
[http://www.google.com/search?q=Greg%20Steffensen Greg Steffensen] was working on something like this, and may be interested in developing the software, or perhaps has already implemented it; He may have [http://mail.gnome.org/archives/dia-list/2005-March/msg00115.html a current gmail address.]<br />
<br />
* [http://developer.berlios.de/projects/ocalhelper/ OCAL Helper], "A GTK interface for browsing and searching for clip art," registered 2005-Jun-27, source released Sep-21. [http://summerofclipart.blogspot.com/2005/08/w00t.html Blog Post] on it.<br />
<br />
== Author ==<br />
<br />
This page started by LionKimbro, 2006-12-18. Please contact by gmail if you have any supports for this idea, or are interested in developing it.</div>NeoPhyte Rephttps://wiki.inkscape.org/wiki/index.php?title=Open_Clip_Art_Library_Integration&diff=74084Open Clip Art Library Integration2011-12-02T17:05:14Z<p>NeoPhyte Rep: Cleaned up wiki reference to OCAL and added external link</p>
<hr />
<div>This is an idea for 2 ways of integrating [[Inkscape]] with the [[Open Clip Art Library]] [http://www.openclipart.org/ (OCAL)].<br />
<br />
== Keyed Search & Inclusion from OCAL ==<br />
<br />
When the user is making a drawing, the user thinks, "Oh, I need ''penguin'' clip-art here."<br />
<br />
It would be nice if the user could press a key sequence (Control-''N'', for some N,) and then type in the word "penguin." The user then has a penguin, selected, under the cursor.<br />
<br />
If that particular penguin won't do, the user can deleted it (delete key, as usual, to delete a selected item,) and then key in a new search (Control-''N'', key in "penguin baby,") or tap Control-Spacebar repeatedly to flip through different images tagged (or otherwise identified) "penguin."<br />
<br />
This idea is inspired by the way that character selection works for asian characters sets (Chinese, Kanji.)<br />
<br />
=== Multi-Library Support ===<br />
<br />
Ideally, the user could search from local libraries, in addition to the OCAL, or specify the library that is the source of inclusion. This way, the user can control what sorts of images will appear. (Similar to the idea of a "font," but for clipart -- ensuring that the images are the same style, license, and so on.)<br />
<br />
Tagged image libraries is, to me, an obvious and simple way of doing this.<br />
<br />
== Automated Publishing ==<br />
<br />
Have a system for saving directly to the OCAL.<br />
<br />
The system would likely engage in a dialog with the user. The dialog would explain what is happening, allow the user to programmatically register the clipart in the public domain, and collect information about the clipart from the user (author, tags, categories, ...)<br />
<br />
== Research Notes ==<br />
<br />
[http://www.google.com/search?q=Greg%20Steffensen Greg Steffensen] was working on something like this, and may be interested in developing the software, or perhaps has already implemented it; He may have [http://mail.gnome.org/archives/dia-list/2005-March/msg00115.html a current gmail address.]<br />
<br />
* [http://developer.berlios.de/projects/ocalhelper/ OCAL Helper], "A GTK interface for browsing and searching for clip art," registered 2005-Jun-27, source released Sep-21. [http://summerofclipart.blogspot.com/2005/08/w00t.html Blog Post] on it.<br />
<br />
== Author ==<br />
<br />
This page started by LionKimbro, 2006-12-18. Please contact by gmail if you have any supports for this idea, or are interested in developing it.</div>NeoPhyte Rephttps://wiki.inkscape.org/wiki/index.php?title=Xara_X&diff=74078Xara X2011-12-02T16:56:35Z<p>NeoPhyte Rep: /* Features */ Expanded OCAL acronym</p>
<hr />
<div>= Features in Common =<br />
*In brief: both are multi-platform and are protected by the GPL. Inkscape is free software; so is part of [http://xaraxtreme.org/ Xara Xtreme] 3 (the renderer part of Xara is still closed and binary-only) but not 4.<br />
<br />
= Inkscape Advantages = <br />
<br />
=== Fundamental ===<br />
* completely free and open source (Xara Ltd. refuses to open-source its renderer library)<br />
* open, text-based, XML-based standardized format (the [http://www.xara.com/support/docs/webformat/spec/ Xar File Format] is a published standard too, but not XML, and not widely adopted)<br />
* scriptable (rich command line)<br />
* extendable (perl/python extensions)<br />
* more localisations<br />
* ports for OSX and other Unixes, apart from Windows and Linux; all ports have the same functionality (Xara's Linux port is stagnating, only Windows version is being developed)<br />
<br />
=== Features ===<br />
* smoother and more powerful bitmap tracer<br />
* live XML tree editor<br />
* gaussian blur (not the same as feathering; blurs everything, can be squeezed and rotated)<br />
* other generic filters (turbulence, composite, displacement map, etc), ability to compose filter stacks<br />
* live clones (copies that are linked to the original and update when it's changed)<br />
* clone tiler (can be used for two-dimensional object scattering with randomization and coloring)<br />
* tile tracing (tracing anything by a pattern of clones)<br />
* unclumping (two-dimensional, incremental equidistant distribution of objects)<br />
* randomizing object positions<br />
* paint bucket tool to fill any bounded area with a path <br />
* 3D box tool [not the same as Extrude that gives photorealistic rendering of individual objects; rather, this is a building block of coordinated 3D scenes]<br />
* eraser tool<br />
* tweak tool to push, inset, outset, roughen paths and to paint/jitter colors<br />
* live path effects (pattern on path, sketch, various deformations, geometric constructions), stackable and applicable to groups <br />
* Spiro splines (more convenient than Beziers)<br />
* [http://www.openclipart.org/ Open Clip Art Library (OCAL)] integration [Xara can download stuff from its own site only]<br />
* baseline snapping, alignment, distribution<br />
* find dialog (find any object by type, style, id, etc)<br />
* persistent per-object export hints (filename, resolution)<br />
* export and conversions from command line, including batch export with GUI and commandline [Xara has batch export via GUI only, using Names gallery]<br />
* command line query options to examine objects in a drawing<br />
* command line access to verbs (commands) to automate tasks<br />
* hierarchical layers, "enter group" command making it a temporary layer<br />
* pattern fills from arbitrary objects; stock vector patterns<br />
* gradients/patterns on stroke as well as fill<br />
* gradient handles can be multiple-selected, selected by marquee, Alt+dragged to smoothly shape, copy/paste styled; gradient can be simplified to remove extra handles<br />
* transform/not transform switch for patterns and gradients<br />
* switch to preserve rounded rect corners in transforms<br />
* scale/rotate/skew any number of objects separately, each around its own center<br />
* numeric skew (both axes; by angle, %, displacement)<br />
* editing transform matrix<br />
* persistent per-object rotation centers<br />
* pasting of size, width, height<br />
* simplify-like deletion of nodes<br />
* node sculpting<br />
* symmetric nodes<br />
* different star/polygon rounding (both Xara's and Inkscape's approaches have their advantages)<br />
* randomized stars<br />
* spirals<br />
* easy segment and arc from ellipse<br />
* the ability to combine color and transparency in a gradient<br />
* linked offsets and text-on-path remain freely transformable<br />
* convenient calligraphy pen (sensitive to tablet pressure/tilt, speed and direction, with tremor/wiggle)<br />
* guided drawing, tracing background in calligraphic<br />
* flowing text into arbitrary shapes, chaining, exclusion<br />
* one-command removal of kerns from text<br />
* rotating characters in text (including text on path)<br />
* connector tool for diagrams<br />
* automatic diagram layout <br />
* removing overlaps<br />
* extensions for paths: randomize, add nodes, swirl, fractal, function plotter and many others<br />
* extensions for colors (inverse, more saturation, replace etc) and text (sentence case, randomize case, replace etc)<br />
* extensions for rendering barcodes, function plotter, L-systems, and many others<br />
* icon preview<br />
* masks separate from fill<br />
* vector import of PDF and CS AI (Xara either fails or imports by rasterization)<br />
* autosave<br />
<br />
=== convenience ===<br />
* overall, '''times''' more keyboard shortcuts than in xara<br />
* a large part of all keys are configurable (including Xara emulation option) via an XML config file<br />
* keys for canvas scrolling (with acceleration)<br />
* keys for scaling and rotating (including pixel-size)<br />
* keys for scaling and rotating (including pixel-size) of nodes, including scale/rotate of node groups<br />
* keys for letterspacing, linespacing, kerning in text (including pixel-size)<br />
* nodes can be moved with snapping along the adjacent straight line segments or their Bezier controls<br />
* more snapping options, on-canvas snapping indicator<br />
* gradient handles can merge and unmerge<br />
* history of zooms (Xara has a single "previous zoom")<br />
* zooming by single key (+/-, without ctrl)<br />
* any kind of zooming (including area) without tool switching<br />
* "bounding box" per-object selection hints<br />
* cursor changes over selectable objects<br />
* node tool optionally highlights mouseovered paths<br />
* more precision in editable numeric fields<br />
<br />
= Xara advantages =<br />
<br />
* fast renderer<br />
* blends [Inkscape has limited path+style blending via Interpolate extension]<br />
* envelopes, including curvilinear and perspective [Inkscape has non-interactive analog via Envelope and Perspective extensions; also non-perspective destructive distortions can be made via node sculpting or tweak tool]<br />
* linked colors<br />
* Pantone colors<br />
* Photoshop plugins[[/Live]] effects<br />
* integrated Picture Editor for embedded bitmaps<br />
* brushes along path can be used for object scattering with randomization [Inkscape's pattern-along-path LPE has no randomization]<br />
* variable stroke width, with selectable profiles or taken from pressure sensitivity [Inkscape can do this via pattern-along-path LPE]<br />
* feathering objects' edges (not the same as blurring - only inward from edge, like a blurred transparency mask) [can be emulated in Inkscape via clone+blur+mask]<br />
* more gradient types (conic, 4-point etc) [a limitation of the SVG specification, only linear and radial are defined]<br />
* bevel tool (outer/inner; join types; size; light angle and elevation; flat/rounded/chiseled etc types (15 in total)) [some of this can be done in Inkscape via filters]<br />
* "nav bar" tool for buttons (hidden in Xtreme)<br />
* quick transparency gradients separate from fill [to some extent, can be emulated by SVG masks]<br />
* gradient profiles [SVG limitation, in Inkscape can be approximated by multistage gradients]<br />
* rainbow/alt-rainbow gradient options<br />
* different star/polygon rounding (both Xara's and Inkscape's approaches have their advantages)<br />
* some input and output formats that Inkscape does not support, including Flash; but not yet SVG<br />
* non-AA display mode (note: anti-aliasing is _not_ a significant factor in the speed of Inkscape)<br />
* linked stretching (autoscaling objects), e.g. stretching button to fit the text<br />
<br />
==3.2 features:==<br />
* Integrates with external photo editors<br />
* MS Word copy/paste<br />
* RTF, raw photo import<br />
** RTF import can be done via GTK APIs. Raw photo import should use dcraw, or code derived from dcraw.<br />
* PDF-X export<br />
* XPS import/export<br />
** This a royalty-free XML-based PDF replacement format from Microsoft. There is FOSS support for it, i.e. in Okular for KDE4.<br />
* Multipage<br />
* Text tool: paragraph spacing, snapping to pixel grid, soft hyphens, smart quotes<br />
* PSD import/export<br />
** Would require reverse-engineering Photoshop, as there is no published specification<br />
* Flash animations<br />
* Color separations<br />
** This means producing copies of the original image, each one containing one of the channels. This should probably be postponed after the Cairo move.<br />
<br />
==Version 4 features:==<br />
<br />
* 3D extrude tool with 3D rotation and lighting controls<br />
* HTML export with images<br />
* text flow around shapes<br />
* text underline<br />
* optional Adobe-like rubberband selection - objects that are touched by rect<br />
* live selecting while dragging<br />
* fonts grouped into families in Font list<br />
* key shortcuts customizable<br />
<br />
= Per-feature comparison: =<br />
<br />
== Rectangle tool: ==<br />
Xara:<br />
* Corner curves must be the same on each side of a corner, but then stretch if the object is resized. The curvature units aren't either percentages or pixels...?<br />
* Can create with rotation ("Radius creation" and "Diameter creation" options)<br />
* Can edit centre X/Y numerically<br />
* Can convert to ellipse by doubleclicking center<br />
<br />
Inkscape:<br />
* Preview as-you-draw<br />
* Corner radii only in absolute units<br />
* A switch to preserve corner radii in scaling<br />
<br />
== Rotation centers: ==<br />
Xara:<br />
* BAD: looks like once you move a center of an object, ALL objects will use the same center!<br />
* BAD: does not survive save/reload - all objects are reset to geometric centers. (In other words, the center seems to be the property of the Selector tool, not of objects!)<br />
* with Ctrl, center snaps to corners/midsides<br />
<br />
Inkscape:<br />
* Each object has its own center; if you want to rotate multiple objects around one center, just select them all (taking the object with the center first)<br />
* Centers persist through save/reload<br />
* Centers snap to edges and corners/midsides<br />
<br />
== Bitmap tracer: ==<br />
Xara:<br />
* BAD: all parameters are set in some relative values in the range 1..100, except for "number of passes" which does not correspond to anything quantifiable. There's no way I could find to set explicitly the number of colors.<br />
* BAD: as a result, tracing a simple line art such as a two-color logo is nearly impossible. Xara almost always creates a bunch of dirt at the fringes due to antialiasing, and shapes get distorted a lot. The Monochrome option seems to be broken.<br />
* BAD: for photos, there's no stacking option, so full-color traces come out very untidy. The shapes are also more distorted than in Inkscape. If you try to make them less distorted, they start getting pixelated.<br />
<br />
<br />
== Pen/shape editor tool: ==<br />
Xara:<br />
* with the pen tool you can drag curve and nodes (with snapping and closing) while the tool is active but, strangely, not node handles. with the shape editor tool the handles can be moved and new points also added<br />
Inkscape:<br />
* live preview of the next segment (exists in Xara when clicking/holding and dragging with the shape editor tool)<br />
* you can create hor/vert straight line segments with Ctrl (the same in Xara but only with the shape editor tool)<br />
* length/angle display in statusbar (again, in Xara only with the shape editor tool)<br />
* you can easily create disconnected subpaths (starting with Shift)<br />
<br />
== Path simplification: ==<br />
Xara:<br />
* slider for the just-drawn freehand line (only), to refit both ways (looser or tighter) while it's still selected<br />
* interactive 0-100% slider in Node tool, looser only but remembers setting while you have the same nodes selected lets you de-simplify back<br />
* works on selected nodes (actually, ONLY works on selected nodes)<br />
Inkscape:<br />
* Ctrl+L works in any tool, smoothing incrementally with acceleration<br />
* has wider range and works more gradually<br />
* works on multiple objects, and on whole object without node selection<br />
<br />
= Screenshots =<br />
<br />
[http://www.xara.com/products/xarax/screenshots.asp Screenshots on the Xara site] Page mirror: [http://web.archive.org/*/http://www.xara.com/products/xarax/screenshots.asp Web Archive]<br />
<br />
[http://www.xara.com/products/xarax/screenshots/brushes.jpg Screenshot showing Xara Brushes]<br />
<br />
[http://www.xara.com/products/xarax/screenshots/Gallery.jpg Screenshot showing Xara Clipart Gallery]<br />
<br />
[http://www.xara.com/products/xarax/screenshots/55Chevy(outlines).jpg Screenshot of Xara depicting a Chevrolet Automobile]<br />
[http://www.xara.com/products/xarax/screenshots/55Chevy(outlines).jpg Screenshot of Xara Wireframe View of Chevrolet Automobile]<br />
<br />
<br />
= Links =<br />
<br />
[http://www.xara.com/products/xarax/ official site]<br />
<br />
[http://www.xaraxone.com/ community site of artists]<br />
<br />
[http://xaraxtreme.org open source Xara Xtreme]<br />
<br />
[http://www.xara.com/support/docs/webformat/spec/ Xar File Format]<br />
<br />
[http://en.wikipedia.org/wiki/Xara_X Xara at Wikipedia]<br />
<br />
[http://www.talkgraphics.com/showthread.php?t=26337 A relevant thread on Talkgraphics]<br />
<br />
[http://www.talkgraphics.com/showthread.php?t=26742 Another relevant thread on Talkgraphics]<br />
<br />
[http://www.talkgraphics.com/showthread.php?t=31719 Yet another relevant thread on Talkgraphics]</div>NeoPhyte Rephttps://wiki.inkscape.org/wiki/index.php?title=User:NeoPhyte_Rep/abbr&diff=74072User:NeoPhyte Rep/abbr2011-12-02T16:54:59Z<p>NeoPhyte Rep: Provided alternatives for OCAL</p>
<hr />
<div>*<abbr title="abbreviation">abbr.</abbr><br />
**<nowiki><abbr title="abbreviation">abbr.</abbr></nowiki><br />
*[http://www.openclipart.org/ Open Clip Art Library (<abbr title="Open Clip Art Library">OCAL</abbr>)]<br />
**<nowiki>[http://www.openclipart.org/ Open Clip Art Library (<abbr title="Open Clip Art Library">OCAL</abbr>)]</nowiki><br />
**<nowiki>[http://www.openclipart.org/ Open Clip Art Library (OCAL)]</nowiki><br />
**<nowiki><abbr title="Open Clip Art Library">OCAL</abbr></nowiki></div>NeoPhyte Rep