<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.inkscape.org/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=AurelioAHeckert</id>
	<title>Inkscape Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.inkscape.org/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=AurelioAHeckert"/>
	<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/Special:Contributions/AurelioAHeckert"/>
	<updated>2026-05-01T08:23:46Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.36.1</generator>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Working_with_Bazaar&amp;diff=66757</id>
		<title>Working with Bazaar</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Working_with_Bazaar&amp;diff=66757"/>
		<updated>2011-01-11T14:48:57Z</updated>

		<summary type="html">&lt;p&gt;AurelioAHeckert: Conflict handling&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Bazaar concepts==&lt;br /&gt;
&lt;br /&gt;
It is assumed that you are familiar with the basic concepts of version control, like working copy, committing, updating, conflicts. There will be a section that explains the basic functionality soon.&lt;br /&gt;
&lt;br /&gt;
; '''Branch'''&lt;br /&gt;
: is a working copy of the project's code. Typically you use one branch per set of related changes, for example a new output extension. Once your work is finished, you ''merge'' your branch into a larger project. Initially, there is only one branch, the trunk; all other branches are its (probably indirect) descendants. To create a new branch, you have to copy an existing one.&lt;br /&gt;
; '''Checkout'''&lt;br /&gt;
: is a copy of code contained in a branch that is not stored on your computer (a remote branch). Committing to a checkout will immediately apply the changes to the remote branch. Commits will not succeed if somebody else modified the branch while you were working - you need to have an up-to-date working copy - or when you're offline.&lt;br /&gt;
:When branches A and B have a common ancestor branch but each contain changes not present in the other, they have '''diverged'''. For example, when you work on an improved rectangle tool in your own branch and at the same time somebody else applies a PDF export bugfix to the trunk, your rectangle tool branch becomes diverged from the trunk.&lt;br /&gt;
; '''Trunk'''&lt;br /&gt;
: is the main branch, which represents cutting-edge working code. You should start from it when doing any new development.&lt;br /&gt;
; '''Merge'''&lt;br /&gt;
: is the process of reconciling changes made between two branches since they diverged. This operation is asymmetric. When you merge A into B, all changes made to A since it was branched from B are applied to B. A is not changed. When you work on some feature, you typically work in a branch, periodically merging the trunk into your branch (to sync up with the latest changes), then you merge your work into the trunk. Merging is similar to applying a patch - it only changes your working copy. To apply a merge, you need to commit the changes it introduced. Merging un-diverges branches.&lt;br /&gt;
; '''Repository'''&lt;br /&gt;
: is a place where branches of a project are stored. Having a shared repository reduces the storage requirements of multiple branches of one project. Instead of O(number of branches) space, the Bazaar data takes up O(total size of changes in all branches) space.&lt;br /&gt;
; '''Bind'''&lt;br /&gt;
: is the process of converting a non-diverged local branch into a checkout of the remote branch.&lt;br /&gt;
; '''Push'''&lt;br /&gt;
: is the process of publishing an exact copy (a mirror) of your branch in some other location. The difference between pushing and checkouts is that a checked out remote branch is updated every time you commit, while a pushed remote branch is updated only when you push to it - you can commit any amount of changes between pushes. You can only push to a branch if the mirror has not diverged from your local copy. This can happen if more than 1 person can push to the same location.&lt;br /&gt;
; '''Pull'''&lt;br /&gt;
: is the process of creating a local exact copy (mirror) of a branch, in principle a reverse of pushing.&lt;br /&gt;
&lt;br /&gt;
==First steps==&lt;br /&gt;
&lt;br /&gt;
First you need to tell Bazaar your name. This will appear on all your commits. You should use your real e-mail, but you can obfuscate it if you are afraid of spam.&lt;br /&gt;
&lt;br /&gt;
Obfuscated e-mail examples:&lt;br /&gt;
 $ bzr whoami &amp;quot;John Q. Public &amp;lt;john dot q dot public at-sign bigmail dot com&amp;gt;&amp;quot;&lt;br /&gt;
 $ bzr whoami &amp;quot;John Q. Public &amp;lt;removethis.john.q.public@bigmail.com&amp;gt;&amp;quot;&lt;br /&gt;
Unobfuscated e-mail example: &lt;br /&gt;
 $ bzr whoami &amp;quot;John Q. Public &amp;lt;john.q.public@bigmail.com&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
If you have an account on launchpad and want to commit changes there, you need to specify your launchpad login:&lt;br /&gt;
 $ bzr launchpad-login johnq&lt;br /&gt;
&lt;br /&gt;
Then fetch Inkscape's trunk&lt;br /&gt;
 $ bzr branch lp:inkscape&lt;br /&gt;
&lt;br /&gt;
To carry out a later update of Inkscape's trunk&lt;br /&gt;
 $ bzr pull lp:inkscape&lt;br /&gt;
&lt;br /&gt;
==Using a centralized (SVN-like) workflow==&lt;br /&gt;
&lt;br /&gt;
In this case, every commit that you make is immediately sent to the central repository. There are two ways of achieving this:&lt;br /&gt;
&lt;br /&gt;
===SVN-style checkout===&lt;br /&gt;
&lt;br /&gt;
Get the latest Inkscape code as a checkout, rather than a branch:&lt;br /&gt;
 $ bzr checkout lp:inkscape&lt;br /&gt;
&lt;br /&gt;
Now work as in SVN:&lt;br /&gt;
  &amp;lt;do work&amp;gt;&lt;br /&gt;
 $ bzr commit&lt;br /&gt;
  &amp;lt;error, someone else has changed things&amp;gt;&lt;br /&gt;
 $ bzr update&lt;br /&gt;
  &amp;lt;check all is okay&amp;gt;&lt;br /&gt;
 $ bzr commit&lt;br /&gt;
&lt;br /&gt;
If you add new files, add them to version control with &amp;lt;tt&amp;gt;bzr add ''file''&amp;lt;/tt&amp;gt;. You can recursively add all new files by writing simply &amp;lt;tt&amp;gt;bzr add&amp;lt;/tt&amp;gt; in the top level directory.&lt;br /&gt;
&lt;br /&gt;
===Binding a BZR branch===&lt;br /&gt;
&lt;br /&gt;
Get Inkscape's code the regular bzr way:&lt;br /&gt;
 $ bzr branch lp:inkscape&lt;br /&gt;
&lt;br /&gt;
Then transform your banch into a checkout:&lt;br /&gt;
 $ cd inkscape&lt;br /&gt;
 $ bzr bind lp:inkscape&lt;br /&gt;
&lt;br /&gt;
Now work as in SVN:&lt;br /&gt;
  &amp;lt;do work&amp;gt;&lt;br /&gt;
 $ bzr commit&lt;br /&gt;
  &amp;lt;error, someone else has changed things&amp;gt;&lt;br /&gt;
 $ bzr update&lt;br /&gt;
  &amp;lt;check all is okay&amp;gt;&lt;br /&gt;
 $ bzr commit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Differences from SVN===&lt;br /&gt;
&lt;br /&gt;
* Commits will fail if your checkout is not up to date, even if there would be no conflicts.&lt;br /&gt;
* The revision number is an attribute of the working tree, not of individual files. It is not possible to have different portions of the working tree at different revisions.&lt;br /&gt;
* &amp;lt;tt&amp;gt;bzr commit ''file''&amp;lt;/tt&amp;gt; works like &amp;lt;tt&amp;gt; svn commit ''file'' &amp;amp;&amp;amp; svn update ''project-root''&amp;lt;/tt&amp;gt;. After a successful partial commit, the entire tree's revision is increased by 1.&lt;br /&gt;
* No special server is needed to publish a branch. You can push branches to anywhere, including simple FTP shares. In our scenario, Launchpad works like a central repository, but it's not required to publish everything there.&lt;br /&gt;
* You create branches locally. To simulate creating a SVN-style branch on Launchpad, you need to create a local branch, push it, then bind it to the pushed location.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
* In some cases it is possible to create subrevisions. When two branches with a common parent are merged, all commits to one of them since the time they diverged will be grouped into one revision. To avoid this, when committing your work to trunk, you should merge from your branch into trunk and push the trunk, rather than merging trunk into your work and pushing your branch as the new trunk.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Using a decentralized workflow==&lt;br /&gt;
&lt;br /&gt;
In this case you will be working locally until you are ready to publish your changes. The basic idea is to perform the work in a ''branch'' of the Inkscape repository, since committing to a branch stores the changes locally in the branch itself. Then, to share the work with the rest of the Inkscape community, the changes in the branch are merged across to a ''checkout'' of the Inkscape repository. As the previous centralized workflow section describes, committing to a checkout sends the changes directly to the remote repository, making them part of the official Inkscape codebase.&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' this workflow has been updated to avoid the &amp;quot;other people's commits become subrevisions of your commit&amp;quot; problem.&lt;br /&gt;
&lt;br /&gt;
This will assume this directory layout:&lt;br /&gt;
 inkscape&lt;br /&gt;
  +-trunk&lt;br /&gt;
  |  +-doc&lt;br /&gt;
  |  +-share&lt;br /&gt;
  |  +-src&lt;br /&gt;
  |  +-po&lt;br /&gt;
  |  +-...&lt;br /&gt;
  +-myproject&lt;br /&gt;
  +-some-other-branch&lt;br /&gt;
&lt;br /&gt;
In this layout, &amp;quot;trunk&amp;quot; is the checkout used for uploading changes to the central Inkscape repository, while &amp;quot;myproject&amp;quot; and &amp;quot;some-other-branch&amp;quot; are local branches used for working on specific features.&lt;br /&gt;
&lt;br /&gt;
===Repository setup===&lt;br /&gt;
&lt;br /&gt;
To speed things up, it's good to create a local shared repository. This way revision histories will only be stored in one place, instead of in every branch, so local branching will be faster and the branches will take up less space.&lt;br /&gt;
&lt;br /&gt;
Create a shared repository and enter it:&lt;br /&gt;
 $ bzr init-repo inkscape&lt;br /&gt;
 $ cd inkscape&lt;br /&gt;
&lt;br /&gt;
===Working locally===&lt;br /&gt;
&lt;br /&gt;
Get Inkscape's code&lt;br /&gt;
 $ bzr branch lp:inkscape myproject&lt;br /&gt;
&lt;br /&gt;
Now work:&lt;br /&gt;
 $ cd myproject&lt;br /&gt;
   ... work work work ...&lt;br /&gt;
 $ bzr commit -m &amp;quot;Some changes&amp;quot;&lt;br /&gt;
   ... more work work work ...&lt;br /&gt;
 $ bzr commit -m &amp;quot;More changes&amp;quot;&lt;br /&gt;
   ... create new file ...&lt;br /&gt;
 $ bzr add new-file.c&lt;br /&gt;
 $ bzr commit -m &amp;quot;Added new file with kittens&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===Advanced local features===&lt;br /&gt;
&lt;br /&gt;
To undo a commit:&lt;br /&gt;
 $ bzr uncommit&lt;br /&gt;
This will leave your working tree in the state it was just before you wrote &amp;quot;bzr commit&amp;quot;. This is useful for example if you forgot to add a file, and want to keep a clean revision history. This will NOT work on a trunk checkout.&lt;br /&gt;
&lt;br /&gt;
Let's say you started from r770 200 local commits, but you decided that what you did since r954 is completely wrong. You want to go back to revision 825 and do it differently. Here's one way to do this. First branch locally to preserve your work (maybe later you'll find out there's some way to save it). Then uncommit everything up to r954 and revert.&lt;br /&gt;
 $ bzr branch myproject myproject-dead-end&lt;br /&gt;
 $ cd myproject&lt;br /&gt;
 $ bzr uncommit -r 954&lt;br /&gt;
 $ bzr revert&lt;br /&gt;
&lt;br /&gt;
A different scenario: let's say that commit 1524 introduced a bug, but there were 50 other commits since then and you only want to revert the changes introduced by 1524.&lt;br /&gt;
 $ bzr merge -r1524..1523&lt;br /&gt;
&lt;br /&gt;
Sometimes a big change gets committed while you are working on a feature. If you want to check whether your code still works after the big change, merge from trunk.&lt;br /&gt;
 $ bzr merge&lt;br /&gt;
&lt;br /&gt;
In this case, you can omit where you are merging from, because the default is to merge from the branch you started from (the parent).&lt;br /&gt;
&lt;br /&gt;
===Publishing your work on Launchpad===&lt;br /&gt;
&lt;br /&gt;
To publish branches on Launchpad, you have to add an SSH key to your account. If you don't have one yet, generate it:&lt;br /&gt;
 $ ssh-keygen&lt;br /&gt;
   ... follow instructions ...&lt;br /&gt;
&lt;br /&gt;
Once you created the key, go to your Launchpad profile page, edit SSH keys and paste the contents of the key file (by default it's in &amp;lt;tt&amp;gt;~/.ssh/id_rsa.pub&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;~/.ssh/id_dsa.pub&amp;lt;/tt&amp;gt;) into the window. You can now use the Launchpad integration features.&lt;br /&gt;
&lt;br /&gt;
Login to Launchpad, if you didn't do it yet. You only need to do this once on each computer. You need to use your login name, not the display name.&lt;br /&gt;
 $ bzr launchpad-login johnq&lt;br /&gt;
&lt;br /&gt;
Publish your branch on Launchpad.&lt;br /&gt;
 $ bzr push lp:~johnq/inkscape/myproject&lt;br /&gt;
&lt;br /&gt;
The push location will be saved. After more commits, you can simply write&lt;br /&gt;
 $ bzr push&lt;br /&gt;
&lt;br /&gt;
It's sometimes convenient to update the Launchpad copy after each commit. To save on typing, you can bind your working tree to the remote branch. This way every commit will be immediately published on the remote branch. Note that you won't be able to commit while offline.&lt;br /&gt;
 $ bzr bind :push&lt;br /&gt;
&lt;br /&gt;
===Putting your work in the trunk===&lt;br /&gt;
&lt;br /&gt;
Once your new killer feature is ready, you need to merge your changes into a checkout of the trunk.  If you don't have one, do (in the directory ''containing'' myproject):&lt;br /&gt;
  $ bzr checkout lp:inkscape trunk&lt;br /&gt;
  $ cd trunk&lt;br /&gt;
&lt;br /&gt;
If you already have one on hand, make sure it's up to date:&lt;br /&gt;
  $ cd trunk&lt;br /&gt;
  $ bzr update&lt;br /&gt;
&lt;br /&gt;
Now that you have a local checkout of the current trunk:&lt;br /&gt;
  $ bzr merge ../myproject&lt;br /&gt;
  $ bzr commit -m'added my feature'&lt;br /&gt;
&lt;br /&gt;
WARNING: There is an alternative method that consists of merging trunk into your local branch, then pushing the result as trunk. Do not do this! It obfuscates the revision history.&lt;br /&gt;
&lt;br /&gt;
===Working with patch files===&lt;br /&gt;
&lt;br /&gt;
If you don't have permission to commit to the trunk, you can bundle your branch's changes into a patch instead:&lt;br /&gt;
  $ bzr send -o mychanges.patch&lt;br /&gt;
&lt;br /&gt;
To apply patches produced by the above command, just do this:&lt;br /&gt;
  $ bzr merge somechanges.patch&lt;br /&gt;
&lt;br /&gt;
===Local branching===&lt;br /&gt;
&lt;br /&gt;
Naturally, all this also works locally. For example, when you're in the &amp;lt;tt&amp;gt;inkscape&amp;lt;/tt&amp;gt; directory, you can write &amp;lt;tt&amp;gt;bzr branch trunk export-dialog&amp;lt;/tt&amp;gt; to create a new branch of the trunk called &amp;lt;tt&amp;gt;export-dialog&amp;lt;/tt&amp;gt;, where you'll work only on improving the export dialog. Similarly, you can merge between local branches.&lt;br /&gt;
&lt;br /&gt;
==Best Practices for Inkscape Project==&lt;br /&gt;
&lt;br /&gt;
===Registering Bugfixes===&lt;br /&gt;
&lt;br /&gt;
Launchpad will automatically mark a bug &amp;quot;Fix Available&amp;quot; (rather than &amp;quot;Fix Committed&amp;quot;) once somebody commits using the flag --fixes, e.g. (if you fix those two bugs in one commit):&lt;br /&gt;
 bzr commit --fixes lp:123456 --fixes lp:123457 -m 'patch description'&lt;br /&gt;
Then, bugs can be changed automatically from &amp;quot;Fix Available&amp;quot; to &amp;quot;Fix Released&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[http://doc.bazaar-vcs.org/bzr.dev/en/tutorials/using_bazaar_with_launchpad.html#changing-the-state-in-launchpad-while-committing-in-bazaar Read more: &amp;quot;Changing the state in Launchpad while committing in Bazaar&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
===Proper way of merging===&lt;br /&gt;
&lt;br /&gt;
To repeat, NEVER do something like:&lt;br /&gt;
 $ bzr branch lp:inkscape myproject&lt;br /&gt;
 ... work ...&lt;br /&gt;
 $ bzr commit&lt;br /&gt;
 $ bzr merge               # NOOOO!!! We are doomed!&lt;br /&gt;
 $ bzr push lp:inkscape&lt;br /&gt;
&lt;br /&gt;
It will obfuscate the revision history: trunk commits that happened between the time you branched and the time you pushed will get grouped into one. Do the merge the other way around:&lt;br /&gt;
 $ bzr branch lp:inkscape myproject&lt;br /&gt;
 $ cd myproject&lt;br /&gt;
 ... work ...&lt;br /&gt;
 $ bzr commit&lt;br /&gt;
 $ cd ../trunk&lt;br /&gt;
 $ bzr merge ../myproject  # correct!&lt;br /&gt;
 $ bzr commit&lt;br /&gt;
&lt;br /&gt;
You'll need a trunk checkout, but the revision history will be much less confusing, and it's useful to have a trunk checkout anyway.&lt;br /&gt;
&lt;br /&gt;
===Fixing a bug in both trunk and a release branch===&lt;br /&gt;
&lt;br /&gt;
This will assume this directory layout:&lt;br /&gt;
 inkscape&lt;br /&gt;
  +-trunk&lt;br /&gt;
  |  +-src&lt;br /&gt;
  |  +-...&lt;br /&gt;
  +-0.48.x&lt;br /&gt;
  |  +-src&lt;br /&gt;
  |  +-...&lt;br /&gt;
&lt;br /&gt;
Fix the bug in trunk and commit it, let's say it will be revision 1234.&lt;br /&gt;
Then go to the release branch directory, e.g. 0.48.x&lt;br /&gt;
Then write&lt;br /&gt;
&lt;br /&gt;
   bzr merge -r 1233..1234 ../trunk&lt;br /&gt;
&lt;br /&gt;
The operation can take a while...&lt;br /&gt;
Then commit to the release branch, or post the diff to Launchpad.&lt;br /&gt;
&lt;br /&gt;
==Conflict handling==&lt;br /&gt;
&lt;br /&gt;
Sometimes you ''(or the building script)'' change a file in the same place that other one change and when you update your local repository a conflict happens.&lt;br /&gt;
&lt;br /&gt;
  $ bzr update&lt;br /&gt;
  Enter passphrase for key '/home/aurium/.ssh/id_rsa': &lt;br /&gt;
   M  configure.ac&lt;br /&gt;
   M  po/POTFILES.in&lt;br /&gt;
  RN  po/inkscape.pot =&amp;gt; po/inkscape.pot.OTHER&lt;br /&gt;
   M  po/it.po&lt;br /&gt;
   M  src/zoom-context.cpp&lt;br /&gt;
  Contents conflict in po/inkscape.pot&lt;br /&gt;
  Conflict adding id to po/inkscape.pot.OTHER.  Unversioned existing file po/inkscape.pot.&lt;br /&gt;
  2 conflicts encountered.&lt;br /&gt;
  Updated to revision 10002 of branch bzr+ssh://bazaar.launchpad.net/%2Bbranch/inkscape&lt;br /&gt;
&lt;br /&gt;
Now '''po/inkscape.pot''' become two files:&lt;br /&gt;
  $ ls po/inkscape.pot*&lt;br /&gt;
  po/inkscape.pot.BASE  po/inkscape.pot.OTHER&lt;br /&gt;
&lt;br /&gt;
If you forgot/lost the conflict message or has many conflicts to resolve, you may list it wih this command:&lt;br /&gt;
  $ bzr conflicts&lt;br /&gt;
  Contents conflict in po/inkscape.pot&lt;br /&gt;
  Conflict adding id to po/inkscape.pot.OTHER.  Unversioned existing file po/inkscape.pot.&lt;br /&gt;
&lt;br /&gt;
You may use the diff command to help you to discover what was changed and choice for a solution.&lt;br /&gt;
  $ diff po/inkscape.pot.BASE  po/inkscape.pot.OTHER&lt;br /&gt;
  11c11&lt;br /&gt;
  &amp;lt; &amp;quot;POT-Creation-Date: 2010-12-23 18:43+0100\n&amp;quot;&lt;br /&gt;
  ---&lt;br /&gt;
  &amp;gt; &amp;quot;POT-Creation-Date: 2011-01-05 20:49+0100\n&amp;quot;&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
Sometimes the diff will be really big and will not help you. That happens with automatic generated files like '''po/inkscape.pot'''.&lt;br /&gt;
&lt;br /&gt;
On this case my solution was to use the newer pot:&lt;br /&gt;
  $ bzr mv po/inkscape.pot.OTHER po/inkscape.pot&lt;br /&gt;
&lt;br /&gt;
If you resolve all, run it:&lt;br /&gt;
  $ bzr resolve -all&lt;br /&gt;
&lt;br /&gt;
More information on the &amp;quot;[http://doc.bazaar.canonical.com/latest/en/user-guide/resolving_conflicts.html Bazaar manual - Conflict handling]&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
* [http://doc.bazaar-vcs.org/latest/en/ Bazaar manual]&lt;/div&gt;</summary>
		<author><name>AurelioAHeckert</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Multipage&amp;diff=65713</id>
		<title>Multipage</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Multipage&amp;diff=65713"/>
		<updated>2010-11-04T18:17:29Z</updated>

		<summary type="html">&lt;p&gt;AurelioAHeckert: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Multipage support ==&lt;br /&gt;
* this feature is currently not implemented&lt;br /&gt;
* this page describes how the feature should be implemented&lt;br /&gt;
* there should be multiple pages within a document&lt;br /&gt;
* problem arises when saving to singlepage file formats (jpg, png, etc)&lt;br /&gt;
* SVG does not support multipage per se, but upcomming SVG will do [[http://www.w3.org/TR/2004/WD-SVG12-20041027/multipage.html see W3.org]]&lt;br /&gt;
* There are two contrary implementattions in the real world:&lt;br /&gt;
** distribute pages around the graphics elements - the Adobe way&lt;br /&gt;
** distribute graphics elements around the pages - how Corel does it and how SVG propose it&lt;br /&gt;
&lt;br /&gt;
== multipage in the SVG standard ==&lt;br /&gt;
* 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. &lt;br /&gt;
* In a screen-based user agent, only one page element is displayed at any time on the main canvas.&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
== multipage ala Corel ==&lt;br /&gt;
* there is a list of pages as tabs on the lower side of the drawing window&lt;br /&gt;
* all pages share the same page properties&lt;br /&gt;
* a '''master page''' contains elements that are visible on all other pages: drawings, markers&lt;br /&gt;
* in an object browser pages and layers are integrated&lt;br /&gt;
* see a screenshot [[http://wiki.inkscape.org/wiki/images/Corel_pages.PNG here]]&lt;br /&gt;
&lt;br /&gt;
== Multicanvas (similar to multi-Artboard on adobe illustrator cs4). ==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Each canvas can be printed independently and that feature helps to unify the art conception for the most applications of an art project.&lt;br /&gt;
&lt;br /&gt;
* see this adobe tutorial [[http://www.adobe.com/designcenter/illustrator/articles/lrvid4016_ai.html here]]&lt;br /&gt;
* there is an [[http://www.vimeo.com/2503097 video]] by Valessio Brito presenting an UI mockup how multipage can be handled in inkscape&lt;br /&gt;
&lt;br /&gt;
The multicanvas feature may be incompatible with the multipage feature, so, the user may chose the working mode on the &amp;quot;document properties&amp;quot; dialog. The default must be multipage and that will show the page tabs on the interface and the &amp;quot;new page&amp;quot; button, when selecting multicanvas that will show the canvas controls and the &amp;quot;new canvas&amp;quot; button.&lt;br /&gt;
&lt;br /&gt;
Feature request registered: https://bugs.launchpad.net/inkscape/+bug/671081&lt;br /&gt;
&lt;br /&gt;
== implementation ==&lt;br /&gt;
* see this [http://www.nabble.com/Multipage-plan-td16394431.html thread]&lt;br /&gt;
* all export dialogues must becom extra properties to handle multiple pages, in order to specify not only the elements but also the pages to be exported&lt;/div&gt;</summary>
		<author><name>AurelioAHeckert</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Multipage&amp;diff=65707</id>
		<title>Multipage</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Multipage&amp;diff=65707"/>
		<updated>2010-11-04T18:03:28Z</updated>

		<summary type="html">&lt;p&gt;AurelioAHeckert: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Multipage support ==&lt;br /&gt;
* this feature is currently not implemented&lt;br /&gt;
* this page describes how the feature should be implemented&lt;br /&gt;
* there should be multiple pages within a document&lt;br /&gt;
* problem arises when saving to singlepage file formats (jpg, png, etc)&lt;br /&gt;
* SVG does not support multipage per se, but upcomming SVG will do [[http://www.w3.org/TR/2004/WD-SVG12-20041027/multipage.html see W3.org]]&lt;br /&gt;
* There are two contrary implementattions in the real world:&lt;br /&gt;
** distribute pages around the graphics elements - the Adobe way&lt;br /&gt;
** distribute graphics elements around the pages - how Corel does it and how SVG propose it&lt;br /&gt;
&lt;br /&gt;
== multipage in the SVG standard ==&lt;br /&gt;
* 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. &lt;br /&gt;
* In a screen-based user agent, only one page element is displayed at any time on the main canvas.&lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
== multipage ala Corel ==&lt;br /&gt;
* there is a list of pages as tabs on the lower side of the drawing window&lt;br /&gt;
* all pages share the same page properties&lt;br /&gt;
* a '''master page''' contains elements that are visible on all other pages: drawings, markers&lt;br /&gt;
* in an object browser pages and layers are integrated&lt;br /&gt;
* see a screenshot [[http://wiki.inkscape.org/wiki/images/Corel_pages.PNG here]]&lt;br /&gt;
&lt;br /&gt;
== Multicanvas (similar to multi-Artboard on adobe illustrator cs4). ==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Each canvas can be printed independently and that feature helps to unify the art conception for the most applications of an art project.&lt;br /&gt;
&lt;br /&gt;
* see this adobe tutorial [[http://www.adobe.com/designcenter/illustrator/articles/lrvid4016_ai.html here]]&lt;br /&gt;
* there is an [[http://www.vimeo.com/2503097 video]] by Valessio Brito presenting an UI mockup how multipage can be handled in inkscape&lt;br /&gt;
&lt;br /&gt;
The multicanvas feature may be incompatible with the multipage feature, so, the user may chose the working mode on the &amp;quot;document properties&amp;quot; dialog. The default must be multipage and that will show the page tabs on the interface and the &amp;quot;new page&amp;quot; button, when selecting multicanvas that will show the canvas controls and the &amp;quot;new canvas&amp;quot; button.&lt;br /&gt;
&lt;br /&gt;
== implementation ==&lt;br /&gt;
* see this [http://www.nabble.com/Multipage-plan-td16394431.html thread]&lt;br /&gt;
* all export dialogues must becom extra properties to handle multiple pages, in order to specify not only the elements but also the pages to be exported&lt;/div&gt;</summary>
		<author><name>AurelioAHeckert</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Class_Inkscape::UI::Widget::ProgressPannel&amp;diff=61795</id>
		<title>Class Inkscape::UI::Widget::ProgressPannel</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Class_Inkscape::UI::Widget::ProgressPannel&amp;diff=61795"/>
		<updated>2010-05-02T01:35:11Z</updated>

		<summary type="html">&lt;p&gt;AurelioAHeckert: /* Inkscape::UI::Widget::ProgressPannel */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Inkscape::UI::Widget::ProgressPannel ==&lt;br /&gt;
&lt;br /&gt;
Discussion and documentation about Inkscape::UI::Widget::ProgressPannel class, a specific Inkscape widget.&lt;br /&gt;
&lt;br /&gt;
ProgressPannel will replace the current content of the extension working dialog, defined inside [http://bazaar.launchpad.net/~inkscape.dev/inkscape/trunk/files/head%3A/src/extension/execution-env.cpp execution-env.cpp] and may be used on any other progress or loading related action on Inkscape.&lt;br /&gt;
&lt;br /&gt;
The GUI pieces:&lt;br /&gt;
[[File:Progress-pannel-mockup.png|center|link=File:Progress-pannel-mockup.svg]]&lt;br /&gt;
&lt;br /&gt;
The panel by default starts with a empty icon, but set it is important for a fast and beauty visual communication.&lt;br /&gt;
&lt;br /&gt;
Stock icons can be used with this constructor:&lt;br /&gt;
  Gtk::Image ( const Gtk::StockID&amp;amp; stock_id, IconSize size )&lt;br /&gt;
Example values:&lt;br /&gt;
  Gtk::Stock::DIALOG_INFO&lt;br /&gt;
  Gtk::ICON_SIZE_DIALOG&lt;br /&gt;
&lt;br /&gt;
progressText may have variables to show optional values:&lt;br /&gt;
* '''%1''' : minimum value&lt;br /&gt;
* '''%2''' : maxmum value&lt;br /&gt;
* '''%3''' : current value&lt;br /&gt;
* '''%4''' : percentage value&lt;br /&gt;
Example: &amp;quot;building %3 of %2 pieces. %4%% done.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[[File:Extension-progress.png]]&lt;br /&gt;
[[File:Saveing-progress.png]]&lt;br /&gt;
[[File:Loading-fonts-progress.png]]&lt;br /&gt;
&lt;br /&gt;
Source SVGs: [http://wiki.inkscape.org/wiki/images/Progress-pannel-mockup.svg Progress-pannel-mockup.svg] [http://wiki.inkscape.org/wiki/images/Progress-pannel-examples-mockup.svg Progress-pannel-examples-mockup.svg]&lt;br /&gt;
&lt;br /&gt;
=== Code ===&lt;br /&gt;
&lt;br /&gt;
The progress_text must be updated together to the progress bar values. A possible updater code is:&lt;br /&gt;
  [http://library.gnome.org/devel/gtkmm/stable/classGtk_1_1ProgressBar.html progress]-&amp;gt;set_text( Glib::ustring::compose(&lt;br /&gt;
      progress_text,&lt;br /&gt;
      Glib::ustring::format(std::dec, min),&lt;br /&gt;
      Glib::ustring::format(std::dec, max),&lt;br /&gt;
      Glib::ustring::format(std::dec, val),&lt;br /&gt;
      Glib::ustring::format(std::fixed, std::setprecision(pct_precision),&lt;br /&gt;
                            ((double)val-min)*100/(max-min) )&lt;/div&gt;</summary>
		<author><name>AurelioAHeckert</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Class_Inkscape::UI::Widget::ProgressPannel&amp;diff=61789</id>
		<title>Class Inkscape::UI::Widget::ProgressPannel</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Class_Inkscape::UI::Widget::ProgressPannel&amp;diff=61789"/>
		<updated>2010-05-02T01:34:27Z</updated>

		<summary type="html">&lt;p&gt;AurelioAHeckert: code to update progress_text&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Inkscape::UI::Widget::ProgressPannel ==&lt;br /&gt;
&lt;br /&gt;
Discussion and documentation about Inkscape::UI::Widget::ProgressPannel class, a specific Inkscape widget.&lt;br /&gt;
&lt;br /&gt;
ProgressPannel will replace the current content of the extension working dialog, defined inside [http://bazaar.launchpad.net/~inkscape.dev/inkscape/trunk/files/head%3A/src/extension/execution-env.cpp execution-env.cpp] and may be used on any other progress or loading related action on Inkscape.&lt;br /&gt;
&lt;br /&gt;
The GUI pieces:&lt;br /&gt;
[[File:Progress-pannel-mockup.png|center|link=File:Progress-pannel-mockup.svg]]&lt;br /&gt;
&lt;br /&gt;
The panel by default starts with a empty icon, but set it is important for a fast and beauty visual communication.&lt;br /&gt;
&lt;br /&gt;
Stock icons can be used with this constructor:&lt;br /&gt;
  Gtk::Image ( const Gtk::StockID&amp;amp; stock_id, IconSize size )&lt;br /&gt;
Example values:&lt;br /&gt;
  Gtk::Stock::DIALOG_INFO&lt;br /&gt;
  Gtk::ICON_SIZE_DIALOG&lt;br /&gt;
&lt;br /&gt;
progressText may have variables to show optional values:&lt;br /&gt;
* '''%1''' : minimum value&lt;br /&gt;
* '''%2''' : maxmum value&lt;br /&gt;
* '''%3''' : current value&lt;br /&gt;
* '''%4''' : percentage value&lt;br /&gt;
Example: &amp;quot;building %3 of %2 pieces. %4%% done.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[[File:Extension-progress.png]]&lt;br /&gt;
[[File:Saveing-progress.png]]&lt;br /&gt;
[[File:Loading-fonts-progress.png]]&lt;br /&gt;
Source SVGs: [http://wiki.inkscape.org/wiki/images/Progress-pannel-mockup.svg Progress-pannel-mockup.svg] [http://wiki.inkscape.org/wiki/images/Progress-pannel-examples-mockup.svg Progress-pannel-examples-mockup.svg]&lt;br /&gt;
&lt;br /&gt;
=== Code ===&lt;br /&gt;
&lt;br /&gt;
The progress_text must be updated together to the progress bar values. A possible updater code is:&lt;br /&gt;
  [http://library.gnome.org/devel/gtkmm/stable/classGtk_1_1ProgressBar.html progress]-&amp;gt;set_text( Glib::ustring::compose(&lt;br /&gt;
      progress_text,&lt;br /&gt;
      Glib::ustring::format(std::dec, min),&lt;br /&gt;
      Glib::ustring::format(std::dec, max),&lt;br /&gt;
      Glib::ustring::format(std::dec, val),&lt;br /&gt;
      Glib::ustring::format(std::fixed, std::setprecision(pct_precision),&lt;br /&gt;
                            ((double)val-min)*100/(max-min) )&lt;/div&gt;</summary>
		<author><name>AurelioAHeckert</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=File:Progress-pannel-mockup.png&amp;diff=61783</id>
		<title>File:Progress-pannel-mockup.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=File:Progress-pannel-mockup.png&amp;diff=61783"/>
		<updated>2010-05-02T01:11:56Z</updated>

		<summary type="html">&lt;p&gt;AurelioAHeckert: uploaded a new version of &amp;quot;File:Progress-pannel-mockup.png&amp;quot;: Mockup with pieces of Class Inkscape::UI::Widget::ProgressPannel&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Mockup with pieces of [[Class Inkscape::UI::Widget::ProgressPannel]]&lt;/div&gt;</summary>
		<author><name>AurelioAHeckert</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=File:Progress-pannel-mockup.svg&amp;diff=61777</id>
		<title>File:Progress-pannel-mockup.svg</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=File:Progress-pannel-mockup.svg&amp;diff=61777"/>
		<updated>2010-05-02T01:11:32Z</updated>

		<summary type="html">&lt;p&gt;AurelioAHeckert: Mockup with pieces of Class Inkscape::UI::Widget::ProgressPannel&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Mockup with pieces of [[Class Inkscape::UI::Widget::ProgressPannel]]&lt;/div&gt;</summary>
		<author><name>AurelioAHeckert</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=UI_Mockup_Screenshots&amp;diff=61771</id>
		<title>UI Mockup Screenshots</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=UI_Mockup_Screenshots&amp;diff=61771"/>
		<updated>2010-05-02T01:01:56Z</updated>

		<summary type="html">&lt;p&gt;AurelioAHeckert: /* UI Mockup Screenshots */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== UI Mockup Screenshots ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery caption=&amp;quot;Load splash&amp;quot; widths=&amp;quot;200px&amp;quot; perrow=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
Image:Compact_load_splash.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery caption=&amp;quot;Commom Progress Pannel&amp;quot; widths=&amp;quot;300px&amp;quot; perrow=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
File:Extension-progress.png&lt;br /&gt;
File:Saveing-progress.png&lt;br /&gt;
File:Loading-fonts-progress.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
Read [[Class Inkscape::UI::Widget::ProgressPannel]] for more information&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery caption=&amp;quot;Fill and Stroke&amp;quot; widths=&amp;quot;300px&amp;quot; perrow=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
Image:Fillstroke1.png&lt;br /&gt;
Image:Fillstroke2.png&lt;br /&gt;
Image:Mockup-Fill-Stroke-Toolbar.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery caption=&amp;quot;Styles editor and Toolbars&amp;quot; widths=&amp;quot;300px&amp;quot; perrow=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
Image:Styleseditor.png&lt;br /&gt;
Image:Mockup-Font-Style-Toolbar.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery caption=&amp;quot;Others and Bug fix&amp;quot; widths=&amp;quot;300px&amp;quot; perrow=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
Image:Nitpicksquad1.png&lt;br /&gt;
Image:Nitpicksquad2.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== UI Source SVG Version ==&lt;br /&gt;
&lt;br /&gt;
Get Version UI SVG to create Mockups: http://valessiobrito.info/projetos/inkscape/ink-ui/&lt;/div&gt;</summary>
		<author><name>AurelioAHeckert</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Class_Inkscape::UI::Widget::ProgressPannel&amp;diff=61765</id>
		<title>Class Inkscape::UI::Widget::ProgressPannel</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Class_Inkscape::UI::Widget::ProgressPannel&amp;diff=61765"/>
		<updated>2010-05-02T00:24:25Z</updated>

		<summary type="html">&lt;p&gt;AurelioAHeckert: Created page with '== Inkscape::UI::Widget::ProgressPannel ==  Discussion and documentation about Inkscape::UI::Widget::ProgressPannel class, a specific Inkscape widget.  ProgressPannel will replac...'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Inkscape::UI::Widget::ProgressPannel ==&lt;br /&gt;
&lt;br /&gt;
Discussion and documentation about Inkscape::UI::Widget::ProgressPannel class, a specific Inkscape widget.&lt;br /&gt;
&lt;br /&gt;
ProgressPannel will replace the current content of the extension working dialog, defined inside [http://bazaar.launchpad.net/~inkscape.dev/inkscape/trunk/files/head%3A/src/extension/execution-env.cpp execution-env.cpp] and may be used on any other progress or loading related action on Inkscape.&lt;br /&gt;
&lt;br /&gt;
The GUI pieces:&lt;br /&gt;
[[File:Progress-pannel-mockup.png|center]]&lt;br /&gt;
&lt;br /&gt;
The panel by default starts with a empty icon, but set it is important for a fast and beauty visual communication.&lt;br /&gt;
&lt;br /&gt;
Stock icons can be used with this constructor:&lt;br /&gt;
  Gtk::Image ( const Gtk::StockID&amp;amp; stock_id, IconSize size )&lt;br /&gt;
Example values:&lt;br /&gt;
  Gtk::Stock::DIALOG_INFO&lt;br /&gt;
  Gtk::ICON_SIZE_DIALOG&lt;br /&gt;
&lt;br /&gt;
progressText may have variables to show optional values:&lt;br /&gt;
* '''%1''' : minimum value&lt;br /&gt;
* '''%2''' : maxmum value&lt;br /&gt;
* '''%3''' : current value&lt;br /&gt;
* '''%4''' : percentage value&lt;br /&gt;
Example: &amp;quot;building %3 of %2 pieces. %4%% done.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[[File:Extension-progress.png]]&lt;br /&gt;
[[File:Saveing-progress.png]]&lt;br /&gt;
[[File:Loading-fonts-progress.png]]&lt;br /&gt;
&lt;br /&gt;
Source SVGs: [http://wiki.inkscape.org/wiki/images/Progress-pannel-mocup.svg Progress-pannel-mocup.svg] [http://wiki.inkscape.org/wiki/images/Progress-pannel-examples-mockup.svg Progress-pannel-examples-mockup.svg]&lt;/div&gt;</summary>
		<author><name>AurelioAHeckert</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=File:Progress-pannel-mockup.png&amp;diff=61759</id>
		<title>File:Progress-pannel-mockup.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=File:Progress-pannel-mockup.png&amp;diff=61759"/>
		<updated>2010-05-02T00:11:40Z</updated>

		<summary type="html">&lt;p&gt;AurelioAHeckert: Mockup with pieces of Class Inkscape::UI::Widget::ProgressPannel&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Mockup with pieces of [[Class Inkscape::UI::Widget::ProgressPannel]]&lt;/div&gt;</summary>
		<author><name>AurelioAHeckert</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=File:Loading-fonts-progress.png&amp;diff=61753</id>
		<title>File:Loading-fonts-progress.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=File:Loading-fonts-progress.png&amp;diff=61753"/>
		<updated>2010-05-01T23:59:54Z</updated>

		<summary type="html">&lt;p&gt;AurelioAHeckert: Mockup with usage example of Class Inkscape::UI::Widget::ProgressPannel&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Mockup with usage example of [[Class Inkscape::UI::Widget::ProgressPannel]]&lt;/div&gt;</summary>
		<author><name>AurelioAHeckert</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=File:Extension-progress.png&amp;diff=61747</id>
		<title>File:Extension-progress.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=File:Extension-progress.png&amp;diff=61747"/>
		<updated>2010-05-01T23:59:42Z</updated>

		<summary type="html">&lt;p&gt;AurelioAHeckert: Mockup with usage example of Class Inkscape::UI::Widget::ProgressPannel&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Mockup with usage example of [[Class Inkscape::UI::Widget::ProgressPannel]]&lt;/div&gt;</summary>
		<author><name>AurelioAHeckert</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=File:Saveing-progress.png&amp;diff=61741</id>
		<title>File:Saveing-progress.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=File:Saveing-progress.png&amp;diff=61741"/>
		<updated>2010-05-01T23:59:12Z</updated>

		<summary type="html">&lt;p&gt;AurelioAHeckert: Mockup with usage example of Class Inkscape::UI::Widget::ProgressPannel&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Mockup with usage example of [[Class Inkscape::UI::Widget::ProgressPannel]]&lt;/div&gt;</summary>
		<author><name>AurelioAHeckert</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=File:Progress-pannel-examples-mockup.svg&amp;diff=61735</id>
		<title>File:Progress-pannel-examples-mockup.svg</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=File:Progress-pannel-examples-mockup.svg&amp;diff=61735"/>
		<updated>2010-05-01T23:56:49Z</updated>

		<summary type="html">&lt;p&gt;AurelioAHeckert: Mockup with usage examples of Class Inkscape::UI::Widget::ProgressPannel&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Mockup with usage examples of [[Class Inkscape::UI::Widget::ProgressPannel]]&lt;/div&gt;</summary>
		<author><name>AurelioAHeckert</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=User_Interface_Modules&amp;diff=61729</id>
		<title>User Interface Modules</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=User_Interface_Modules&amp;diff=61729"/>
		<updated>2010-05-01T23:50:42Z</updated>

		<summary type="html">&lt;p&gt;AurelioAHeckert: Created page with '== User Interface Modules ==  Discussion and documentation about specific Inkscape dialogs, widgets, tools and more inside the [http://bazaar.launchpad.net/~inkscape.dev/inkscape...'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== User Interface Modules ==&lt;br /&gt;
&lt;br /&gt;
Discussion and documentation about specific Inkscape dialogs, widgets, tools and more inside the [http://bazaar.launchpad.net/~inkscape.dev/inkscape/trunk/files/head%3A/src/ui/ src/ui] directory.&lt;br /&gt;
&lt;br /&gt;
=== src/ui/dialogs ===&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
=== src/ui/widgets ===&lt;br /&gt;
* [[Class Inkscape::UI::Widget::ProgressPannel]]&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
=== src/ui/tools ===&lt;br /&gt;
* ...&lt;/div&gt;</summary>
		<author><name>AurelioAHeckert</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Architectural_overview&amp;diff=61723</id>
		<title>Architectural overview</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Architectural_overview&amp;diff=61723"/>
		<updated>2010-05-01T22:57:16Z</updated>

		<summary type="html">&lt;p&gt;AurelioAHeckert: Main subsystems - User Interface Modules&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a high-level overview of how Inkscape works.&lt;br /&gt;
&lt;br /&gt;
==Main subsystems==&lt;br /&gt;
Inkscape can be roughly subdivided into a few subsystems:&lt;br /&gt;
* [[Display subsystem]] - contained in the &amp;lt;tt&amp;gt;src/display/&amp;lt;/tt&amp;gt; directory of the source tree. It is responsible for rendering graphic primitives, displaying things on the screen, and providing the main canvas widget. It also dispatches events to tools.&lt;br /&gt;
* [[XML subsystem]] - provides classes to store the parsed XML of an SVG document. It is fairly generic and does not contain significant SVG-related functionality. The main feature that distinguishes it from e.g. libxml++ is that it provides notification about XML changes and undo functionality. The classes of this subsystem are garbage collected. Because the XML nodes were formerly C structures called &amp;lt;tt&amp;gt;SPRepr&amp;lt;/tt&amp;gt;, the XML tree is sometimes called the &amp;quot;repr tree&amp;quot;, and XML nodes &amp;quot;reprs&amp;quot; - a short form of &amp;quot;representation&amp;quot;.&lt;br /&gt;
* [[Object tree]] - implements a mapping from the XML to display primitives, and provides a hierarchy of objects that can be modified using the tools. This is where the bulk of Inkscape's functionality is contained. This system is based on GObject. Each document has an object tree and an XML tree. Changes in the XML tree are automatically propagated to the object tree via observers, but not the other way around - a function called &amp;lt;tt&amp;gt;updateRepr()&amp;lt;/tt&amp;gt; needs to be explicitly called.&lt;br /&gt;
* [[Tools subsystem]] - provides tools, internally called event contexts, that process input events happening on the canvas and translate them into document changes. This subsystem is based on GObject, dispersed in the &amp;lt;tt&amp;gt;src/&amp;lt;/tt&amp;gt; directory and several subdirs. Files that contain event handling code end with &amp;lt;tt&amp;gt;-context.cpp&amp;lt;/tt&amp;gt;.&lt;br /&gt;
* [[Extension subsystem]] - allows Inkscape to use third-party extensions without modifying Inkscape's code. Currently extensions can provide additional input and output formats, effects, path effects and printing backends.&lt;br /&gt;
* [[Preferences subsystem]] - this small, but relatively self-contained piece of code provides a shared storage for all of Inkscape's user settings. It keeps the parsed XML tree of the preferences file, but it's not directly accessible - the intent is to separate the preferences implementation (which in future might not be based on an XML file) from the API used to access them. It is contained in &amp;lt;tt&amp;gt;preferences.cpp&amp;lt;/tt&amp;gt;&lt;br /&gt;
* [[User Interface Modules]] - contains specific Inkscape dialogs, widgets, tools and more.&lt;br /&gt;
&lt;br /&gt;
==How Inkscape starts==&lt;br /&gt;
# First, the &amp;lt;tt&amp;gt;main()&amp;lt;/tt&amp;gt; function is called. On Windows, it is called from a &amp;lt;tt&amp;gt;WinMain()&amp;lt;/tt&amp;gt; stub, so that the command prompt is not displayed.&lt;br /&gt;
# &amp;lt;tt&amp;gt;main()&amp;lt;/tt&amp;gt; determines whether Inkscape was run in command-line mode or in graphical mode.&lt;br /&gt;
# Based on that decision, &amp;lt;tt&amp;gt;sp_main_console()&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;sp_main_gui()&amp;lt;/tt&amp;gt; is called. Both those functions call &amp;lt;tt&amp;gt;sp_common_main()&amp;lt;/tt&amp;gt;, which handles parameter parsing. Parameters are parsed into a lot global variables (needs to be heavily refactored).&lt;br /&gt;
# An &amp;lt;tt&amp;gt;Inkscape::NSApplication::Application&amp;lt;/tt&amp;gt; object is instantiated. This object is an unfinished attempt at converting top-level Inkscape structures to C++ classes. It creates the legacy &amp;lt;tt&amp;gt;Inkscape::Application&amp;lt;/tt&amp;gt; structure and creates &amp;lt;tt&amp;gt;SPDesktop&amp;lt;/tt&amp;gt;s for each opened document. (&amp;lt;tt&amp;gt;SPDesktop&amp;lt;/tt&amp;gt;, &amp;quot;desktop&amp;quot; for short is a window used to edit a document - the main window you see when you start Inkscape.)&lt;br /&gt;
# Finally, the created desktops are shown.&lt;br /&gt;
&lt;br /&gt;
==Historical note==&lt;br /&gt;
Inkscape is derived from an earlier vector drawing program called Sodipodi. Sodipodi was written entirely in plain C using GObject, the C object system used by GTK+. Writing and maintaining GObject code is cumbersome, because C lacks any syntax support for this system. There are still many places that use old GObject-based code, notably the tools and the SPObject tree. The long-term goal is to convert GObject-based code to regular C++ objects, but in the meanwhile some knowledge of GObject is needed to develop Inkscape.&lt;/div&gt;</summary>
		<author><name>AurelioAHeckert</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=File:Progress-pannel-mocup.svg&amp;diff=61717</id>
		<title>File:Progress-pannel-mocup.svg</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=File:Progress-pannel-mocup.svg&amp;diff=61717"/>
		<updated>2010-05-01T21:23:26Z</updated>

		<summary type="html">&lt;p&gt;AurelioAHeckert: The GUI for Inkscape::UI::Widget::ProgressPannel. A new Widget for progress notification like the extension execution.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The GUI for Inkscape::UI::Widget::ProgressPannel. A new Widget for progress notification like the extension execution.&lt;/div&gt;</summary>
		<author><name>AurelioAHeckert</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Release_notes/0.48&amp;diff=61573</id>
		<title>Release notes/0.48</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Release_notes/0.48&amp;diff=61573"/>
		<updated>2010-04-25T03:14:41Z</updated>

		<summary type="html">&lt;p&gt;AurelioAHeckert: Web &amp;gt; Slicer&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Inkscape 0.48==&lt;br /&gt;
'''(not released yet - [[AnnouncePlanning048]])'''&lt;br /&gt;
&lt;br /&gt;
==Release highlights==&lt;br /&gt;
&lt;br /&gt;
(TODO)&lt;br /&gt;
&lt;br /&gt;
==Tools==&lt;br /&gt;
&lt;br /&gt;
===Node Tool===&lt;br /&gt;
&lt;br /&gt;
During Google Summer of Code 2009, the node tool underwent an extensive rewrite. Along with more maintainable code, it brings several new features.&lt;br /&gt;
&lt;br /&gt;
; '''Multi-path editing'''&lt;br /&gt;
: Any number of paths can be selected for node editing at once.&lt;br /&gt;
; '''Improved clippath / mask editing'''&lt;br /&gt;
: The clipping path or mask of an object can be edited at the same time as the object. The clip / mask editing buttons in the node tool are now toggle buttons, rather than mode switch buttons. If the object is transformed after applying a clipping path, the clipping path is no longer offset when editing it in the node tool. If the clipping path is a group, all paths in the group can be edited simultaneously.&lt;br /&gt;
; '''Improved node join'''&lt;br /&gt;
: It is now possible to join nodes from different paths. More than two endnodes can be joined at once—the distances between nodes will be used to determine which nodes to join, with the closest pairs being joined first. When nothing can be joined (less than 2 endnodes in selecion), each selected stretch of nodes will be joined into one node.&lt;br /&gt;
; '''Improved segment join'''&lt;br /&gt;
: It is now possible to create a segment between endnodes from different paths. More than one segment can be created at once—the distances between nodes will be used to determine which nodes to join with a segment, with the closest pairs being joined first. When nothing can be joined (less than 2 endnodes in selection), each selected stretch of nodes will have its middle nodes removed, leaving only one segment.&lt;br /&gt;
; '''Node transforms'''&lt;br /&gt;
: It is now possible to transform the nodes using the mouse and transformation handles similar to those in the selector tool. They can be turned on and off using the button in the node toolbar. When the handles are visible, clicking on a selected node will switch between scaling and rotation mode, instead of selecting only that node. You can also use Shift+H to switch the mode. All other operations work normally when transform handles are shown.&lt;br /&gt;
; '''Path direction tools'''&lt;br /&gt;
: Little harpoons are optionally shown in the middle of each segment, visualizing the direction of the path. This is useful when preparing a guide path for text, setting markers, and debugging extensions and Inkscape itself. The &amp;quot;Reverse&amp;quot; command (Shift+R) reverses the direction of subpaths that have some selected nodes, or all subpaths if the node selection is empty.&lt;br /&gt;
; '''Customizable path update'''&lt;br /&gt;
: Two new preferences allow you to specify when the path and its outline should be updated. Turning off live update of paths will improve performance for complex drawings.&lt;br /&gt;
; '''Improved tips'''&lt;br /&gt;
: The tips displayed for nodes and handles are more concise and affected by what modifier keys are pressed.&lt;br /&gt;
&lt;br /&gt;
For a detailed feature comparison between the old and new tool, see [[GSoC2009 Node Tool Rewrite]].&lt;br /&gt;
&lt;br /&gt;
===Spray Tool===&lt;br /&gt;
You first need to select one or several items, then select the Spray Tool. To spray, click on the canvas, then move the mouse or scroll the mouse wheel.&lt;br /&gt;
&lt;br /&gt;
Three modes are available.&lt;br /&gt;
&lt;br /&gt;
*''Spray Copy mode :'' each sprayed item is independent from the others.&lt;br /&gt;
*''Spray Clone mode :'' each sprayed item is a clone of the selected item. Changing the properties of the original item will affect the clones.&lt;br /&gt;
*''Spray Single Path Mode :'' everything you spray is in a single path. You may need to convert your item into a path to make it work properly.&lt;br /&gt;
&lt;br /&gt;
'''Spray options'''&lt;br /&gt;
&lt;br /&gt;
*Amount : spray more or less items.&lt;br /&gt;
&lt;br /&gt;
*Rotation : randomly rotates items around the original rotation value. &lt;br /&gt;
*Scale : randomly scales items around the original scale value. &lt;br /&gt;
&lt;br /&gt;
*Scatter : low values to spray items under the cursor, high values for a more uniform repartition over the spray zone.&lt;br /&gt;
*Focus : items are sprayed following a ring. This parameters modifies the radius of the circle. Default at 0 to spray a spot. &lt;br /&gt;
&lt;br /&gt;
Use keys ↑ and ↓ to control the size of of sprayed items. Use ← and → to set the width of the cursor.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Spray tool is a perfect match for the transforming, duplicating, and deleting modes of the Tweak tool.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==Live Path Effects (LPE)==&lt;br /&gt;
&lt;br /&gt;
===Node tool changes===&lt;br /&gt;
The new node tool means slightly different LPE editing too. Such as ...&lt;br /&gt;
&lt;br /&gt;
===New effects===&lt;br /&gt;
&lt;br /&gt;
* '''Extrude''' Similar to the Python extension &lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Import/Export==&lt;br /&gt;
===Improved bitmap image import===&lt;br /&gt;
&lt;br /&gt;
Bitmaps are now always embedded when pixel data is pasted or dragged into Inkscape's window (for example when copying parts of an image from GIMP). Files with automatically generated names like &amp;quot;inkscape_pasted_image_...&amp;quot; are no longer created in the document directory. When importing or opening bitmap images, a dialog is displayed that asks whether you want to link the image or embed it.&lt;br /&gt;
&lt;br /&gt;
===New LaTeX export for PDF/EPS/PS===&lt;br /&gt;
&lt;br /&gt;
Similar to GNUPlot's `epslatex' output terminal and Xfig's combined PDF/LaTeX output, Inkscape can now export graphics to PDF with an accompanying LaTeX file that overlays the text over the PDF when inputted in LaTeX. The image's text is typeset by LaTeX, so for example mathematical expressions are rendered correctly, and all text will be in the font and style of the LaTeX document (even when changing the document's font afterwards).&lt;br /&gt;
&lt;br /&gt;
''(the following description assumes export to PDF, but will work the same for EPS and PS)''&lt;br /&gt;
Two files will be created: a PDF file containing all graphics, without text; and a LaTeX file with the same name, containing all text, and code to include the PDF and overlay the text. To include the exported image in LaTeX, one writes&lt;br /&gt;
&lt;br /&gt;
  \begin{figure} &lt;br /&gt;
    \centering&lt;br /&gt;
    \def\svgwidth{\columnwidth} % sets the image width, this is optional&lt;br /&gt;
    \input{image.tex}&lt;br /&gt;
  \end{figure}&lt;br /&gt;
&lt;br /&gt;
A more thorough description of how to use the new feature (and automate the exporting/inclusion of the image in LaTeX) is given in this PDF: [http://wiki.inkscape.org/wiki/images/SVG_in_LaTeX.pdf SVG in LaTeX].&lt;br /&gt;
&lt;br /&gt;
====From the GUI====&lt;br /&gt;
When exporting to PDF/EPS/PS from Inkscape's GUI, the usual dialog pops up after selecting to which PDF/EPS/PS file to export to. In this dialog, you can find the PDF/EPS/PS+LaTeX option.&lt;br /&gt;
&lt;br /&gt;
====Command line option====&lt;br /&gt;
When exporting to PDF/EPS/PS from the command line, adding --export-latex will turn the LaTeX export on. For example&lt;br /&gt;
&lt;br /&gt;
  inkscape image.svg -z -D --export-pdf=image.pdf --export-latex&lt;br /&gt;
&lt;br /&gt;
===Fixed PDF/EPS/PS export of non-integer sized documents===&lt;br /&gt;
The long standing [https://bugs.launchpad.net/inkscape/+bug/168275 bug 168275] has now been fixed. Documents with a non-integer height or width are now correctly exported to PDF, EPS and PS.&lt;br /&gt;
&lt;br /&gt;
==Extensions==&lt;br /&gt;
===New and improved extensions===&lt;br /&gt;
&lt;br /&gt;
* The new '''Generate from Path &amp;gt; Voronoi Pattern''' extension creates a random pattern of Voronoi cells. The pattern will be accessible from the Fill and Stroke dialog. The pattern can be made to be smooth at the edges by choosing a positive border, or sparse at the edges by using a negative border.&lt;br /&gt;
* The new '''Render &amp;gt; Wireframe Sphere''' extension draws the globe as a collection of ellipses representing a sphere's latitude and longitude lines. The number of lines is adjustable, as well as the tilt and rotation. There is an option to hide the lines at the back of the sphere.&lt;br /&gt;
* The new '''Render &amp;gt; Barcode - Datamatrix''' extension renders a DataMatrix 2D barcode, as specified in BS ISO/IEC 16022:2006. The number of rows and columns of the DataMatrix is adjustable. If more data is given than can be contained in one DataMatrix, more than one DataMatrix will be produced.&lt;br /&gt;
* The new '''Modify Path &amp;gt; Pixelsnap''' extension aligns rectangles and paths to pixel boundaries, to create sharp web and digital graphics.&lt;br /&gt;
* The new '''Color &amp;gt; Black and White''' extension turns the selection colors into black and white.&lt;br /&gt;
* The new '''Text &amp;gt; Split Text''' extension splits texts into different lines, words or letters.&lt;br /&gt;
* The new '''Web &amp;gt; Slicer''' extensions to slice web layouts into multiple images and help the HTML+CSS creation.&lt;br /&gt;
* '''Images &amp;gt; Extract Image''': all relative paths (or filenames without path) are now relative to the user's home directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ==Filters==&lt;br /&gt;
&lt;br /&gt;
==SVG Support==&lt;br /&gt;
&lt;br /&gt;
==Editing Aids== --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Other features==&lt;br /&gt;
&lt;br /&gt;
* Arch paper sizes are added in the Document Properties dialog&lt;br /&gt;
* Displaying the '''font samples''' in the drop-down list of the Text tool is now optional. In Inkscape Preferences, go to Tools, Text, and uncheck &amp;quot;Show font samples in the drop-down list&amp;quot; if you don't want to see the samples. This will speed up displaying the list the first time you open it&lt;br /&gt;
* Items in the File &amp;gt; Open Recent menu, when mouseovered, show tooltips with the full URI of each file in the list. Also, files that are in the list but are missing or unaccessible are automatically hidden&lt;br /&gt;
* When a flowed text is truncated (i.e. the frame is too small for the entire text), the frame is shown red, and the statusbar hint includes '''[truncated]'''. You need to resize the frame to see the truncated end of the text. Analogously, if the path of a text-on-path object is too short to display the entire text, the statusbar will report it as '''[truncated]'''&lt;br /&gt;
* Clicking the text alignment buttons (Left, Center, Right) on the Text tool's controls bar now does not let the text jump: it stays within the same bounding box as before, only changing the alignment&lt;br /&gt;
* The position of text's baseline anchor (the small square) is now dependent of the alignment: for left-aligned text it is, as before, at the left end, for centered text in the middle, and for the right-aligned text it is at the right end of the text's first line (this is for horizontal text; for vertical, it is correspondingly at top, middle, or bottom of the first column). This allows snapping, aligning and distributing of text relative the side to which it's aligned&lt;br /&gt;
* Snapping of gradient handles has been improved and now behaves similar to the snapping of all other handles and objects&lt;br /&gt;
* When snapping to a bounding box, that bounding box will be shown for a moment (tied to the snap indicator)&lt;br /&gt;
* If a new object is being created on the canvas with snapping enabled, then a snap indicator will also be shown for the first point&lt;br /&gt;
* There are now options for Margins when resizing a document to a selection or the drawing in Document Properties&lt;br /&gt;
* Preferences have been added to allow automatic grouping when setting a Clippath or Mask&lt;br /&gt;
* Bitmap copies created using the Make a Bitmap Copy command (Alt+B) are now embedded. Previously they were saved in an automatically generated file and linked&lt;br /&gt;
* The file preview size limit (in the File &amp;gt; Open and File &amp;gt; Import dialog box) is now 10 MB (1.3 MB in 0.47)&lt;br /&gt;
&lt;br /&gt;
===Extended input device configuration===&lt;br /&gt;
&lt;br /&gt;
The stock Input Devices dialog has been replaced with a completely redone version that provides a more useful representation of settings. It also contains a simple area for testing different inputs of different devices.&lt;br /&gt;
&lt;br /&gt;
Additionally hardware setup itself has been separated from general settings to allow for easier dynamic switching of settings appropriate to the task at hand.&lt;br /&gt;
&lt;br /&gt;
==User interface==&lt;br /&gt;
&lt;br /&gt;
===Adaptive UI===&lt;br /&gt;
(In progress [[User:JonCruz|JonCruz]])&lt;br /&gt;
&lt;br /&gt;
===Custom Swatches===&lt;br /&gt;
&lt;br /&gt;
Custom swatches can be created and used on a per-document basis. An &amp;quot;Auto&amp;quot; color palette will track swatches in the current document and allow them to be set and used. The use is &amp;quot;live&amp;quot; with changes to the swatch being applied automatically to all objects set to it. The swatches can also be gradients and not just simple colors.&lt;br /&gt;
&lt;br /&gt;
===New cursors in Selector===&lt;br /&gt;
&lt;br /&gt;
Selector tool has a new mouse cursor (arrow with an open hand) for when your mouse is over a selectable object, and another (arrow with clinched hand) for when you're dragging an object. This improves precision of selection and UI consistency (previously, the mouse cursor over a selectable object was different across platforms, e.g. hand icon on Linux or four-way arrow on Windows).&lt;br /&gt;
&lt;br /&gt;
===Translations===&lt;br /&gt;
&lt;br /&gt;
New Farsi translation (in progress).&lt;br /&gt;
&lt;br /&gt;
==Tutorials==&lt;br /&gt;
&lt;br /&gt;
* SVG files are now optimized with Scour (filesize reduced by 40%).&lt;br /&gt;
* Bitstream Vera fonts replaced with generic sans and serif fonts (solves many font substitution issues).&lt;br /&gt;
* New Interpolate tutorial (Help &amp;gt; Tutorials &amp;gt; Inkscape: Interpolate).&lt;br /&gt;
* New translations in Farsi, Belarussian and Dutch.&lt;br /&gt;
&lt;br /&gt;
==Windows port improvements==&lt;br /&gt;
&lt;br /&gt;
The quality of the Windows port was improved substantially.&lt;br /&gt;
&lt;br /&gt;
===Command line interface===&lt;br /&gt;
&lt;br /&gt;
Command line functionality on Windows is now on par with Unix.&lt;br /&gt;
&lt;br /&gt;
'''Single executable'''&lt;br /&gt;
:It's no longer needed to compile Inkscape with special flags or use third-party wrapper executables to see the command line output. Just type &amp;quot;inkscape&amp;quot; (without any extension) in the command prompt. This is made possible by a command-line wrapper named &amp;lt;tt&amp;gt;inkscape.com&amp;lt;/tt&amp;gt;.&lt;br /&gt;
'''Relative paths'''&lt;br /&gt;
:You can now specify relative paths to files in options like &amp;lt;tt&amp;gt;--export-png&amp;lt;/tt&amp;gt;. Commands like this will now execute correctly:&lt;br /&gt;
 C:\svg&amp;gt; inkscape tiger.svgz --export-png=tiger.png&lt;br /&gt;
&lt;br /&gt;
===Stability improvements===&lt;br /&gt;
&lt;br /&gt;
Thanks to library updates, Inkscape should no longer randomly crash when editing documents. Most of them were caused by a GDI resource leak in Pango. It will also no longer crash when trying to import a corrupted image.&lt;br /&gt;
&lt;br /&gt;
===Unicode compatibility===&lt;br /&gt;
&lt;br /&gt;
Inkscape will now work correctly regardless of installation path. Previously, it was unusable when installed into a directory that contains characters not representable in the system codepage (icons were not shown in the UI, and no language files were found).&lt;br /&gt;
&lt;br /&gt;
==Notable bug fixes==&lt;br /&gt;
&lt;br /&gt;
* The 3D tool no longer inserts an inkscape:perspective element into SVG when it is not needed (i.e. when the document has no 3D box objects).&lt;br /&gt;
* Wrong clippaths and masks with cyclic recursion (i.e. clippaths or masks that refer to themselves via other clippaths or masks) no longer crash Inkscape.&lt;br /&gt;
* Default unit setting for the XY grid is now respected when creating a new grid.&lt;br /&gt;
* Pasting Live Path Effect stacks now works. It adds the stack of the copied object to the end of the LPE stack (if present) of the object it is pasted to.&lt;br /&gt;
* The accuracy of the bounding box calculation has been significantly improved when converting objects to patterns or markers. This should make it much easier to create patterns where the tiles should 'connect' to each other, e.g. a tile with a plus sign to create a hatched pattern.&lt;br /&gt;
&lt;br /&gt;
==Known issues==&lt;br /&gt;
&lt;br /&gt;
==Previous releases==&lt;br /&gt;
&lt;br /&gt;
* [[ReleaseNotes047]]&lt;br /&gt;
* [[ReleaseNotes046]]&lt;br /&gt;
* [[ReleaseNotes045]]&lt;br /&gt;
* [[ReleaseNotes044]]&lt;br /&gt;
* [[ReleaseNotes043]]&lt;br /&gt;
* [[ReleaseNotes042]]&lt;br /&gt;
* [[ReleaseNotes041]]&lt;br /&gt;
* [[ReleaseNotes040]]&lt;br /&gt;
* [[ReleaseNotes039]]&lt;br /&gt;
* [[ReleaseNotes038]]&lt;br /&gt;
* [[ReleaseNotes037]]&lt;br /&gt;
* [[ReleaseNotes036]]&lt;br /&gt;
* [[ReleaseNotes035]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Marketing]]&lt;/div&gt;</summary>
		<author><name>AurelioAHeckert</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=INX_extension_descriptor_format&amp;diff=59527</id>
		<title>INX extension descriptor format</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=INX_extension_descriptor_format&amp;diff=59527"/>
		<updated>2010-03-02T21:39:05Z</updated>

		<summary type="html">&lt;p&gt;AurelioAHeckert: effect needs-live-preview&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction == &lt;br /&gt;
&lt;br /&gt;
In order for Inkscape to make use of an external script or program, you must describe that script to inkscape using an INX file. See the inkscape share directory for examples. The INX file allows the author to:&lt;br /&gt;
* label strings for translation &lt;br /&gt;
* define parameters&lt;br /&gt;
* chain extensions&lt;br /&gt;
* etc&lt;br /&gt;
Be sure to read through the INX files that come with Inkscape. Nothing beats a working example.&lt;br /&gt;
&lt;br /&gt;
== Localisation of extensions ==&lt;br /&gt;
&lt;br /&gt;
To allow localisation of strings in extension for Inkscape, some xml tags have to be adapted to variant readable by intltool. It means that tags or parametres has to have &amp;quot;_&amp;quot; prepended to their name, e.g. &amp;lt;_name&amp;gt;name of extension&amp;lt;/_name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also the path to the extension has to be included in POTFILES.in file to tell intltool where to look for translatable content.&lt;br /&gt;
&lt;br /&gt;
Usefull information, before this section gets fully updated, can be found at [http://gould.cx/ted/blog/Translating_Custom_XML Ted's blog].&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
More example INX files are available in the Inkscape distribution or in the Inkscape [http://inkscape.svn.sourceforge.net/viewvc/inkscape/inkscape/trunk/share/extensions/ SVN repository].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;inkscape-extension&amp;gt;&lt;br /&gt;
  &amp;lt;_name&amp;gt;{Friendly Extension Name}&amp;lt;/_name&amp;gt;&lt;br /&gt;
  &amp;lt;id&amp;gt;{org.domain.sub-domain.extension-name}&amp;lt;/id&amp;gt;&lt;br /&gt;
  &amp;lt;dependency type=&amp;quot;executable&amp;quot; location=&amp;quot;[extensions|path|plugins|{location}]&amp;quot;&amp;gt;program.ext&amp;lt;/dependency&amp;gt;&lt;br /&gt;
  &amp;lt;param name=&amp;quot;tab&amp;quot; type=&amp;quot;notebook&amp;quot;&amp;gt;  &lt;br /&gt;
    &amp;lt;page name=&amp;quot;controls&amp;quot; _gui-text=&amp;quot;Controls&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;param name=&amp;quot;{argumentName}&amp;quot; type=&amp;quot;[int|float|string|boolean|description]&amp;quot; min=&amp;quot;{number}&amp;quot; max=&amp;quot;{number}&amp;quot;&lt;br /&gt;
        _gui-text=&amp;quot;{Friendly Argument Name}&amp;quot;&amp;gt;{default value}&amp;lt;/param&amp;gt;&lt;br /&gt;
    &amp;lt;/page&amp;gt;&lt;br /&gt;
    &amp;lt;page name=&amp;quot;help&amp;quot; _gui-text=&amp;quot;Help&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;param name=&amp;quot;help_text&amp;quot; type=&amp;quot;description&amp;quot;&amp;gt;{Friendly Extension Help}&amp;lt;/param&amp;gt;&lt;br /&gt;
    &amp;lt;/page&amp;gt;&lt;br /&gt;
  &amp;lt;/param&amp;gt;&lt;br /&gt;
  &amp;lt;effect&amp;gt;&lt;br /&gt;
    &amp;lt;object-type&amp;gt;[all|{element type}]&amp;lt;/object-type&amp;gt;&lt;br /&gt;
      &amp;lt;effects-menu&amp;gt;&lt;br /&gt;
        &amp;lt;submenu _name=&amp;quot;{Extension Group Name}&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/effects-menu&amp;gt;&lt;br /&gt;
  &amp;lt;/effect&amp;gt;&lt;br /&gt;
  &amp;lt;script&amp;gt;&lt;br /&gt;
    &amp;lt;command reldir=&amp;quot;extensions&amp;quot; interpreter=&amp;quot;[python|perl|ruby|bash|{some other}]&amp;quot;&amp;gt;program.ext&amp;lt;/command&amp;gt;&lt;br /&gt;
  &amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/inkscape-extension&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== DTD ==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!ELEMENT inkscape-extension (name, id, dependency*, param*,(input|output|effect),(script|plugin))&amp;gt;&lt;br /&gt;
 &amp;lt;!ELEMENT input (extension, mimetype, filetype, filetypetooltip, output_extension?)&amp;gt;&lt;br /&gt;
 &amp;lt;!ELEMENT output (extension, mimetype, filetype, filetypetooltip, dataloss?)&amp;gt;&lt;br /&gt;
 &amp;lt;!ELEMENT effect (object-type|submenu?)&amp;gt;&lt;br /&gt;
 &amp;lt;!ELEMENT script (command, helper_extension*, check*)&amp;gt;&lt;br /&gt;
 &amp;lt;!ELEMENT plugin (name)&amp;gt;&lt;br /&gt;
 &amp;lt;!ELEMENT name (#PCDATA)&amp;gt;&lt;br /&gt;
 &amp;lt;!ELEMENT id (#PCDATA)&amp;gt;&lt;br /&gt;
 &amp;lt;!ELEMENT item (#PCDATA)&amp;gt;&lt;br /&gt;
 &amp;lt;!ELEMENT option (#PCDATA)&amp;gt;&lt;br /&gt;
 &amp;lt;!ELEMENT dependency (#PCDATA)&amp;gt;&lt;br /&gt;
 &amp;lt;!ELEMENT param (#PCDATA|page|item|option)*&amp;gt;&lt;br /&gt;
 &amp;lt;!ELEMENT page (#PCDATA, param*)&amp;gt;&lt;br /&gt;
 &amp;lt;!ELEMENT extension (#PCDATA)&amp;gt;&lt;br /&gt;
 &amp;lt;!ELEMENT mimetype (#PCDATA)&amp;gt;&lt;br /&gt;
 &amp;lt;!ELEMENT filetype (#PCDATA)&amp;gt;&lt;br /&gt;
 &amp;lt;!ELEMENT filetooltip (#PCDATA)&amp;gt;&lt;br /&gt;
 &amp;lt;!ELEMENT object-type (#PCDATA)&amp;gt;&lt;br /&gt;
 &amp;lt;!ELEMENT command (#PCDATA)&amp;gt;&lt;br /&gt;
 &amp;lt;!ELEMENT check (#PCDATA)&amp;gt;&lt;br /&gt;
 &amp;lt;!ELEMENT dataloss (#PCDATA)&amp;gt;&lt;br /&gt;
 &amp;lt;!ELEMENT helper_extension (#PCDATA)&amp;gt;&lt;br /&gt;
 &amp;lt;!ELEMENT output_extension (#PCDATA)&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;!ATTLIST check reldir (absolute|path|extensions|plugins) #REQUIRED&amp;gt;&lt;br /&gt;
 &amp;lt;!ATTLIST command reldir (absolute|path|extensions|plugins) #REQUIRED&amp;gt;&lt;br /&gt;
 &amp;lt;!ATTLIST command interpreter CDATA #REQUIRED&amp;gt;&lt;br /&gt;
 &amp;lt;!ATTLIST dependency type (executable|extension) #REQUIRED&amp;gt;&lt;br /&gt;
 &amp;lt;!ATTLIST dependency location (absolute|path|extensions|plugins) #IMPLIED&amp;gt;&lt;br /&gt;
 &amp;lt;!ATTLIST dependency description CDATA #IMPLIED&amp;gt;&lt;br /&gt;
 &amp;lt;!ATTLIST effect needs-live-preview (true|false) #REQUIRED&amp;gt;&lt;br /&gt;
 &amp;lt;!ATTLIST page name CDATA #REQUIRED&amp;gt;&lt;br /&gt;
 &amp;lt;!ATTLIST page gui-text CDATA #IMPLIED&amp;gt;&lt;br /&gt;
 &amp;lt;!ATTLIST param name CDATA #REQUIRED&amp;gt;&lt;br /&gt;
 &amp;lt;!ATTLIST param type (int|float|string|boolean|enum|notebook|description|optiongroup|color) #REQUIRED&amp;gt;&lt;br /&gt;
 &amp;lt;!ATTLIST param min CDATA #IMPLIED&amp;gt;&lt;br /&gt;
 &amp;lt;!ATTLIST param max CDATA #IMPLIED&amp;gt;&lt;br /&gt;
 &amp;lt;!ATTLIST param max_length CDATA #IMPLIED&amp;gt;&lt;br /&gt;
 &amp;lt;!ATTLIST param precision CDATA #IMPLIED&amp;gt;&lt;br /&gt;
 &amp;lt;!ATTLIST param gui-text CDATA #IMPLIED&amp;gt;&lt;br /&gt;
 &amp;lt;!ATTLIST param gui-tip CDATA #IMPLIED&amp;gt;&lt;br /&gt;
 &amp;lt;!ATTLIST param gui-description CDATA #IMPLIED&amp;gt;&lt;br /&gt;
 &amp;lt;!ATTLIST param scope CDATA #IMPLIED&amp;gt;&lt;br /&gt;
 &amp;lt;!ATTLIST param gui-hidden CDATA #IMPLIED&amp;gt;&lt;br /&gt;
 &amp;lt;!ATTLIST param appearance (minimal|) &amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;!ATTLIST submenu name CDATA #REQUIRED&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
*[[INX Parameters]]&lt;br /&gt;
*[[ScriptingHOWTO]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer Documentation]]&lt;br /&gt;
[[Category:Help Wanted]]&lt;br /&gt;
[[Category:Extensions]]&lt;/div&gt;</summary>
		<author><name>AurelioAHeckert</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Talk:Inkscape&amp;diff=55191</id>
		<title>Talk:Inkscape</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Talk:Inkscape&amp;diff=55191"/>
		<updated>2009-12-16T14:54:31Z</updated>

		<summary type="html">&lt;p&gt;AurelioAHeckert: Created page with '* The Working with SVN link must be removed from the front page and consider to remove the refereed svn page from this wiki.'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* The [[Working with SVN]] link must be removed from the front page and consider to remove the refereed svn page from this wiki.&lt;/div&gt;</summary>
		<author><name>AurelioAHeckert</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Working_with_Bazaar&amp;diff=55049</id>
		<title>Working with Bazaar</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Working_with_Bazaar&amp;diff=55049"/>
		<updated>2009-12-01T17:15:41Z</updated>

		<summary type="html">&lt;p&gt;AurelioAHeckert: Registering Bugfixes doc link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''WARNING: &amp;lt;tt&amp;gt;lp:inkscape&amp;lt;/tt&amp;gt; is currently out of date. Do not use it until the migration to Launchpad is complete.'''&lt;br /&gt;
&lt;br /&gt;
==Bazaar concepts==&lt;br /&gt;
&lt;br /&gt;
It is assumed that you are familiar with the basic concepts of version control, like working copy, committing, updating, conflicts. There will be a section that explains the basic functionality soon.&lt;br /&gt;
&lt;br /&gt;
* '''Branch''' is a working copy of the project's code. Typically you use one branch per set of related changes, for example a new output extension. Once your work is finished, you ''merge'' your branch into a larger project. Initially, there is only one branch, the trunk; all other branches are its (probably indirect) descendants. To create a new branch, you have to copy an existing one.&lt;br /&gt;
* '''Checkout''' is a copy of code contained in a branch that is not stored on your computer (a remote branch). Committing to a checkout will immediately apply the changes to the remote branch. Commits will not succeed if somebody else&lt;br /&gt;
* When branches A and B have a common ancestor branch but each contain changes not present in the other, they have '''diverged'''. For example, when you work on an improved rectangle tool in your own branch and at the same time somebody else applies a PDF export bugfix to the trunk, your rectangle tool branch becomes diverged from the trunk.&lt;br /&gt;
* '''Trunk''' is the main branch, which represents cutting-edge working code. You should start from it when doing any new development.&lt;br /&gt;
* '''Merge''' is the process of reconciling changes made between two branches since they diverged. This operation is asymmetric. When you merge A into B, all changes made to A since it was branched from B are applied to B. A is not changed. When you work on some feature, you typically work in a branch, periodically merging the trunk into your branch (to sync up with the latest changes), then you merge your work into the trunk. Merging is similar to applying a patch - it only changes your working copy. To apply a merge, you need to commit the changes it introduced. Merging un-diverges branches.&lt;br /&gt;
* '''Repository''' is a place where branches of a project are stored. Having a shared repository reduces the storage requirements of multiple branches of one project. Instead of O(number of branches) space, they take roughly O(size of changes).&lt;br /&gt;
* '''Bind''' is the process of converting a non-diverged local branch into a checkout.&lt;br /&gt;
* '''Push''' is the process of publishing an exact copy (a mirror) of your branch in some other location. The difference between pushing and checkouts is that a checked out remote branch is updated every time you commit, while a pushed remote branch is updated only when you push to it. You can only push to a branch if the mirror has not diverged from your local copy. This can happen if more than 1 person can push to the same location.&lt;br /&gt;
* '''Pull''' is the process of creating a local exact copy (mirror) of a branch, in principle a reverse of pushing.&lt;br /&gt;
&lt;br /&gt;
==First steps==&lt;br /&gt;
&lt;br /&gt;
First you need to tell Bazaar your name. This will appear on all your commits. You should use your real e-mail, but you can obfuscate it if you are afraid of spam.&lt;br /&gt;
&lt;br /&gt;
Obfuscated e-mail example:&lt;br /&gt;
 $ bzr whoami &amp;quot;John Q. Public &amp;lt;john dot q dot public at-sign bigmail dot com&amp;gt;&amp;quot;&lt;br /&gt;
Unobfuscated e-mail example: &lt;br /&gt;
 $ bzr whoami &amp;quot;John Q. Public &amp;lt;john.q.public@bigmail.com&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The basic usage:&lt;br /&gt;
 $ bzr branch lp:inkscape&lt;br /&gt;
 $ cd inkscape&lt;br /&gt;
 $ bzr bind lp:inkscape&lt;br /&gt;
  &amp;lt;do work&amp;gt;&lt;br /&gt;
 $ bzr commit&lt;br /&gt;
  &amp;lt;error, someone else has changed things&amp;gt;&lt;br /&gt;
 $ bzr update&lt;br /&gt;
  &amp;lt;check all is okay&amp;gt;&lt;br /&gt;
 $ bzr commit&lt;br /&gt;
&lt;br /&gt;
==SVN-style checkout==&lt;br /&gt;
&lt;br /&gt;
Bazaar can be used very much like SVN.&lt;br /&gt;
&lt;br /&gt;
* Get the latest Inkscape code: &amp;lt;tt&amp;gt;bzr checkout lp:inkscape&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Make changes to the files. If you add new files, add them to version control with &amp;lt;tt&amp;gt;bzr add ''file''&amp;lt;/tt&amp;gt;. You can recursively add all new files by writing simply &amp;lt;tt&amp;gt;bzr add&amp;lt;/tt&amp;gt; in the top level directory.&lt;br /&gt;
* Commit the changes, making them accessible to others: &amp;lt;tt&amp;gt;bzr commit&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Receive the most up-to-date version of the code: &amp;lt;tt&amp;gt;bzr update&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Differences from SVN===&lt;br /&gt;
&lt;br /&gt;
* Commits will fail if your checkout is not up to date, even if there would be no conflicts.&lt;br /&gt;
* The revision number is an attribute of the working tree, not of individual files. It is not possible to have different portions of the working tree at different revisions.&lt;br /&gt;
* &amp;lt;tt&amp;gt;bzr commit ''file''&amp;lt;/tt&amp;gt; works like &amp;lt;tt&amp;gt; svn commit ''file'' &amp;amp;&amp;amp; svn update ''project-root''&amp;lt;/tt&amp;gt;. After a successful partial commit, the entire tree's revision is increased by 1.&lt;br /&gt;
* No special server is needed to publish a branch. You can push branches to anywhere, including simple FTP shares. In our scenario, Launchpad works like a central repository, but it's not required to publish everything there.&lt;br /&gt;
* You create branches locally. To simulate creating a SVN-style branch on Launchpad, you need to create a local branch, push it, then bind it to the pushed location.&lt;br /&gt;
&lt;br /&gt;
==Using branches==&lt;br /&gt;
This will asumme this directory layout:&lt;br /&gt;
 inkscape&lt;br /&gt;
  +-trunk&lt;br /&gt;
  |  +-doc&lt;br /&gt;
  |  +-share&lt;br /&gt;
  |  +-src&lt;br /&gt;
  |  +-po&lt;br /&gt;
  |  +-...&lt;br /&gt;
  +-my-branch&lt;br /&gt;
  +-some-other-branch&lt;br /&gt;
&lt;br /&gt;
===Repository setup===&lt;br /&gt;
If you are working on several things at once, it's better to use one branch per feature. Here is how to work with branches.&lt;br /&gt;
&lt;br /&gt;
* Create a shared repository for your branches. This brings significant space savings if you have several branches, but is not mandatory: &amp;lt;tt&amp;gt;bzr init-repo --rich-root inkscape&amp;lt;/tt&amp;gt;. This will create the directory &amp;lt;tt&amp;gt;inkscape&amp;lt;/tt&amp;gt;, which will contain a shared repository used by all branches within it, in the rich root format. This is the format currently used by our Launchpad repository - if you choose another format, you might not be able to push your branches to Launchpad. Enter the directory just created: &amp;lt;tt&amp;gt;cd inkscape&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Create a new branch: &amp;lt;tt&amp;gt;bzr branch lp:inkscape my-branch&amp;lt;/tt&amp;gt;. This will retrieve the main branch of Inkscape and put it in the subdirectory &amp;lt;tt&amp;gt;my-branch&amp;lt;/tt&amp;gt;.&lt;br /&gt;
* Make changes. Commit them locally using &amp;lt;tt&amp;gt;bzr commit&amp;lt;/tt&amp;gt;. Note that this doesn't touch the trunk on Launchpad; you are only committing to your local repository.&lt;br /&gt;
* If somebody else modified the trunk, resync with it: &amp;lt;tt&amp;gt;bzr merge&amp;lt;/tt&amp;gt; (merging will automatically use the parent branch if none is specified)&lt;br /&gt;
&lt;br /&gt;
===Publishing branches on Launchpad===&lt;br /&gt;
To publish branches on Launchpad, you have to add an SSH key to your account. You can generate a key using the program &amp;lt;tt&amp;gt;ssh-keygen&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
When you added a key to your account, you can now use the Launchpad integration features.&lt;br /&gt;
&lt;br /&gt;
* First you have to log in: &amp;lt;tt&amp;gt;bzr launchpad-login ''launchpad-username''&amp;lt;/tt&amp;gt;. You need to use your username, not your display name.&lt;br /&gt;
* Publish your branch on Launchpad: &amp;lt;tt&amp;gt;bzr push lp:~''launchpad-username''/inkscape/my-branch&amp;lt;/tt&amp;gt;. Of course if you're working with a different project, substitute &amp;lt;tt&amp;gt;inkscape&amp;lt;/tt&amp;gt; with its Launchpad name.&lt;br /&gt;
* The push location will be saved. To update the branch on Launchpad, write &amp;lt;ttbzr push&amp;lt;/tt&amp;gt; after your commits.&lt;br /&gt;
* If you want to always commit directly to the remote branch on Launchpad, write &amp;lt;tt&amp;gt;bzr bind lp:~''launchpad-username''/inkscape/my-branch&amp;lt;/tt&amp;gt; after the initial push. This will convert your local branch into a checkout of the remote branch.&lt;br /&gt;
&lt;br /&gt;
===Merging branches into trunk===&lt;br /&gt;
&lt;br /&gt;
Way A: commit to a checkout of the trunk. This requires a trunk checkout, but for some people is more logical.&lt;br /&gt;
&lt;br /&gt;
* Navigate to a checkout of the trunk.&lt;br /&gt;
* Execute &amp;lt;tt&amp;gt;bzr merge ''branch-url''&amp;lt;/tt&amp;gt;. This will modify the files to receive the changes from the specified branch but will not modify the trunk.&lt;br /&gt;
* After verifying the changes (e.g. compile the program and see whether it doesn't crash on startup), execute &amp;lt;tt&amp;gt;bzr commit&amp;lt;/tt&amp;gt; to apply the changes from the merge to the trunk.&lt;br /&gt;
&lt;br /&gt;
Way B: merge from trunk, then push. It doesn't require a trunk checkout, but it may be less obvious what is happening.&lt;br /&gt;
&lt;br /&gt;
* Navigate to the branch you want to merge.&lt;br /&gt;
* Execute &amp;lt;tt&amp;gt;bzr merge ''trunk-location''&amp;lt;/tt&amp;gt;, where ''trunk-location'' might be your local trunk checkout or &amp;lt;tt&amp;gt;lp:inkscape&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Verify the changes, then execute &amp;lt;tt&amp;gt;bzr commit&amp;lt;/tt&amp;gt;.&lt;br /&gt;
* Push to trunk: &amp;lt;tt&amp;gt;bzr push lp:inkscape&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Local branching===&lt;br /&gt;
&lt;br /&gt;
Naturally, all this also works locally. For example, when you're in the &amp;lt;tt&amp;gt;inkscape&amp;lt;/tt&amp;gt; directory, you can write &amp;lt;tt&amp;gt;bzr branch trunk export-dialog&amp;lt;/tt&amp;gt; to create a new branch of the trunk called &amp;lt;tt&amp;gt;export-dialog&amp;lt;/tt&amp;gt;, where you'll work only on improving the export dialog. Similarly, you can merge between local branches.&lt;br /&gt;
&lt;br /&gt;
==Best Practicals for Inkscape Project==&lt;br /&gt;
&lt;br /&gt;
===Registering Bugfixes===&lt;br /&gt;
&lt;br /&gt;
Launchpad will automatically mark a bug &amp;quot;Fix Available&amp;quot; (rather than &amp;quot;Fix Committed&amp;quot;) once somebody commits using the flag --fixes, e.g. (if you fix those two bugs in one commit):&lt;br /&gt;
 bzr commit --fixes lp:123456 --fixes lp:123457 -m 'patch description'&lt;br /&gt;
Then, bugs can be changed automatically from &amp;quot;Fix Available&amp;quot; to &amp;quot;Fix Released&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[http://doc.bazaar-vcs.org/bzr.dev/en/tutorials/using_bazaar_with_launchpad.html#changing-the-state-in-launchpad-while-committing-in-bazaar Read more: &amp;quot;Changing the state in Launchpad while committing in Bazaar&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
* [http://doc.bazaar-vcs.org/latest/en/ Bazaar manual]&lt;/div&gt;</summary>
		<author><name>AurelioAHeckert</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Working_with_Bazaar&amp;diff=55045</id>
		<title>Working with Bazaar</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Working_with_Bazaar&amp;diff=55045"/>
		<updated>2009-12-01T17:14:23Z</updated>

		<summary type="html">&lt;p&gt;AurelioAHeckert: /* First steps */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''WARNING: &amp;lt;tt&amp;gt;lp:inkscape&amp;lt;/tt&amp;gt; is currently out of date. Do not use it until the migration to Launchpad is complete.'''&lt;br /&gt;
&lt;br /&gt;
==Bazaar concepts==&lt;br /&gt;
&lt;br /&gt;
It is assumed that you are familiar with the basic concepts of version control, like working copy, committing, updating, conflicts. There will be a section that explains the basic functionality soon.&lt;br /&gt;
&lt;br /&gt;
* '''Branch''' is a working copy of the project's code. Typically you use one branch per set of related changes, for example a new output extension. Once your work is finished, you ''merge'' your branch into a larger project. Initially, there is only one branch, the trunk; all other branches are its (probably indirect) descendants. To create a new branch, you have to copy an existing one.&lt;br /&gt;
* '''Checkout''' is a copy of code contained in a branch that is not stored on your computer (a remote branch). Committing to a checkout will immediately apply the changes to the remote branch. Commits will not succeed if somebody else&lt;br /&gt;
* When branches A and B have a common ancestor branch but each contain changes not present in the other, they have '''diverged'''. For example, when you work on an improved rectangle tool in your own branch and at the same time somebody else applies a PDF export bugfix to the trunk, your rectangle tool branch becomes diverged from the trunk.&lt;br /&gt;
* '''Trunk''' is the main branch, which represents cutting-edge working code. You should start from it when doing any new development.&lt;br /&gt;
* '''Merge''' is the process of reconciling changes made between two branches since they diverged. This operation is asymmetric. When you merge A into B, all changes made to A since it was branched from B are applied to B. A is not changed. When you work on some feature, you typically work in a branch, periodically merging the trunk into your branch (to sync up with the latest changes), then you merge your work into the trunk. Merging is similar to applying a patch - it only changes your working copy. To apply a merge, you need to commit the changes it introduced. Merging un-diverges branches.&lt;br /&gt;
* '''Repository''' is a place where branches of a project are stored. Having a shared repository reduces the storage requirements of multiple branches of one project. Instead of O(number of branches) space, they take roughly O(size of changes).&lt;br /&gt;
* '''Bind''' is the process of converting a non-diverged local branch into a checkout.&lt;br /&gt;
* '''Push''' is the process of publishing an exact copy (a mirror) of your branch in some other location. The difference between pushing and checkouts is that a checked out remote branch is updated every time you commit, while a pushed remote branch is updated only when you push to it. You can only push to a branch if the mirror has not diverged from your local copy. This can happen if more than 1 person can push to the same location.&lt;br /&gt;
* '''Pull''' is the process of creating a local exact copy (mirror) of a branch, in principle a reverse of pushing.&lt;br /&gt;
&lt;br /&gt;
==First steps==&lt;br /&gt;
&lt;br /&gt;
First you need to tell Bazaar your name. This will appear on all your commits. You should use your real e-mail, but you can obfuscate it if you are afraid of spam.&lt;br /&gt;
&lt;br /&gt;
Obfuscated e-mail example:&lt;br /&gt;
 $ bzr whoami &amp;quot;John Q. Public &amp;lt;john dot q dot public at-sign bigmail dot com&amp;gt;&amp;quot;&lt;br /&gt;
Unobfuscated e-mail example: &lt;br /&gt;
 $ bzr whoami &amp;quot;John Q. Public &amp;lt;john.q.public@bigmail.com&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The basic usage:&lt;br /&gt;
 $ bzr branch lp:inkscape&lt;br /&gt;
 $ cd inkscape&lt;br /&gt;
 $ bzr bind lp:inkscape&lt;br /&gt;
  &amp;lt;do work&amp;gt;&lt;br /&gt;
 $ bzr commit&lt;br /&gt;
  &amp;lt;error, someone else has changed things&amp;gt;&lt;br /&gt;
 $ bzr update&lt;br /&gt;
  &amp;lt;check all is okay&amp;gt;&lt;br /&gt;
 $ bzr commit&lt;br /&gt;
&lt;br /&gt;
==SVN-style checkout==&lt;br /&gt;
&lt;br /&gt;
Bazaar can be used very much like SVN.&lt;br /&gt;
&lt;br /&gt;
* Get the latest Inkscape code: &amp;lt;tt&amp;gt;bzr checkout lp:inkscape&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Make changes to the files. If you add new files, add them to version control with &amp;lt;tt&amp;gt;bzr add ''file''&amp;lt;/tt&amp;gt;. You can recursively add all new files by writing simply &amp;lt;tt&amp;gt;bzr add&amp;lt;/tt&amp;gt; in the top level directory.&lt;br /&gt;
* Commit the changes, making them accessible to others: &amp;lt;tt&amp;gt;bzr commit&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Receive the most up-to-date version of the code: &amp;lt;tt&amp;gt;bzr update&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Differences from SVN===&lt;br /&gt;
&lt;br /&gt;
* Commits will fail if your checkout is not up to date, even if there would be no conflicts.&lt;br /&gt;
* The revision number is an attribute of the working tree, not of individual files. It is not possible to have different portions of the working tree at different revisions.&lt;br /&gt;
* &amp;lt;tt&amp;gt;bzr commit ''file''&amp;lt;/tt&amp;gt; works like &amp;lt;tt&amp;gt; svn commit ''file'' &amp;amp;&amp;amp; svn update ''project-root''&amp;lt;/tt&amp;gt;. After a successful partial commit, the entire tree's revision is increased by 1.&lt;br /&gt;
* No special server is needed to publish a branch. You can push branches to anywhere, including simple FTP shares. In our scenario, Launchpad works like a central repository, but it's not required to publish everything there.&lt;br /&gt;
* You create branches locally. To simulate creating a SVN-style branch on Launchpad, you need to create a local branch, push it, then bind it to the pushed location.&lt;br /&gt;
&lt;br /&gt;
==Using branches==&lt;br /&gt;
This will asumme this directory layout:&lt;br /&gt;
 inkscape&lt;br /&gt;
  +-trunk&lt;br /&gt;
  |  +-doc&lt;br /&gt;
  |  +-share&lt;br /&gt;
  |  +-src&lt;br /&gt;
  |  +-po&lt;br /&gt;
  |  +-...&lt;br /&gt;
  +-my-branch&lt;br /&gt;
  +-some-other-branch&lt;br /&gt;
&lt;br /&gt;
===Repository setup===&lt;br /&gt;
If you are working on several things at once, it's better to use one branch per feature. Here is how to work with branches.&lt;br /&gt;
&lt;br /&gt;
* Create a shared repository for your branches. This brings significant space savings if you have several branches, but is not mandatory: &amp;lt;tt&amp;gt;bzr init-repo --rich-root inkscape&amp;lt;/tt&amp;gt;. This will create the directory &amp;lt;tt&amp;gt;inkscape&amp;lt;/tt&amp;gt;, which will contain a shared repository used by all branches within it, in the rich root format. This is the format currently used by our Launchpad repository - if you choose another format, you might not be able to push your branches to Launchpad. Enter the directory just created: &amp;lt;tt&amp;gt;cd inkscape&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Create a new branch: &amp;lt;tt&amp;gt;bzr branch lp:inkscape my-branch&amp;lt;/tt&amp;gt;. This will retrieve the main branch of Inkscape and put it in the subdirectory &amp;lt;tt&amp;gt;my-branch&amp;lt;/tt&amp;gt;.&lt;br /&gt;
* Make changes. Commit them locally using &amp;lt;tt&amp;gt;bzr commit&amp;lt;/tt&amp;gt;. Note that this doesn't touch the trunk on Launchpad; you are only committing to your local repository.&lt;br /&gt;
* If somebody else modified the trunk, resync with it: &amp;lt;tt&amp;gt;bzr merge&amp;lt;/tt&amp;gt; (merging will automatically use the parent branch if none is specified)&lt;br /&gt;
&lt;br /&gt;
===Publishing branches on Launchpad===&lt;br /&gt;
To publish branches on Launchpad, you have to add an SSH key to your account. You can generate a key using the program &amp;lt;tt&amp;gt;ssh-keygen&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
When you added a key to your account, you can now use the Launchpad integration features.&lt;br /&gt;
&lt;br /&gt;
* First you have to log in: &amp;lt;tt&amp;gt;bzr launchpad-login ''launchpad-username''&amp;lt;/tt&amp;gt;. You need to use your username, not your display name.&lt;br /&gt;
* Publish your branch on Launchpad: &amp;lt;tt&amp;gt;bzr push lp:~''launchpad-username''/inkscape/my-branch&amp;lt;/tt&amp;gt;. Of course if you're working with a different project, substitute &amp;lt;tt&amp;gt;inkscape&amp;lt;/tt&amp;gt; with its Launchpad name.&lt;br /&gt;
* The push location will be saved. To update the branch on Launchpad, write &amp;lt;ttbzr push&amp;lt;/tt&amp;gt; after your commits.&lt;br /&gt;
* If you want to always commit directly to the remote branch on Launchpad, write &amp;lt;tt&amp;gt;bzr bind lp:~''launchpad-username''/inkscape/my-branch&amp;lt;/tt&amp;gt; after the initial push. This will convert your local branch into a checkout of the remote branch.&lt;br /&gt;
&lt;br /&gt;
===Merging branches into trunk===&lt;br /&gt;
&lt;br /&gt;
Way A: commit to a checkout of the trunk. This requires a trunk checkout, but for some people is more logical.&lt;br /&gt;
&lt;br /&gt;
* Navigate to a checkout of the trunk.&lt;br /&gt;
* Execute &amp;lt;tt&amp;gt;bzr merge ''branch-url''&amp;lt;/tt&amp;gt;. This will modify the files to receive the changes from the specified branch but will not modify the trunk.&lt;br /&gt;
* After verifying the changes (e.g. compile the program and see whether it doesn't crash on startup), execute &amp;lt;tt&amp;gt;bzr commit&amp;lt;/tt&amp;gt; to apply the changes from the merge to the trunk.&lt;br /&gt;
&lt;br /&gt;
Way B: merge from trunk, then push. It doesn't require a trunk checkout, but it may be less obvious what is happening.&lt;br /&gt;
&lt;br /&gt;
* Navigate to the branch you want to merge.&lt;br /&gt;
* Execute &amp;lt;tt&amp;gt;bzr merge ''trunk-location''&amp;lt;/tt&amp;gt;, where ''trunk-location'' might be your local trunk checkout or &amp;lt;tt&amp;gt;lp:inkscape&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Verify the changes, then execute &amp;lt;tt&amp;gt;bzr commit&amp;lt;/tt&amp;gt;.&lt;br /&gt;
* Push to trunk: &amp;lt;tt&amp;gt;bzr push lp:inkscape&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Local branching===&lt;br /&gt;
&lt;br /&gt;
Naturally, all this also works locally. For example, when you're in the &amp;lt;tt&amp;gt;inkscape&amp;lt;/tt&amp;gt; directory, you can write &amp;lt;tt&amp;gt;bzr branch trunk export-dialog&amp;lt;/tt&amp;gt; to create a new branch of the trunk called &amp;lt;tt&amp;gt;export-dialog&amp;lt;/tt&amp;gt;, where you'll work only on improving the export dialog. Similarly, you can merge between local branches.&lt;br /&gt;
&lt;br /&gt;
==Best Practicals for Inkscape Project==&lt;br /&gt;
&lt;br /&gt;
===Registering Bugfixes===&lt;br /&gt;
&lt;br /&gt;
Launchpad will automatically mark a bug &amp;quot;Fix Available&amp;quot; (rather than &amp;quot;Fix Committed&amp;quot;) once somebody commits using the flag --fixes, e.g. (if you fix those two bugs in one commit):&lt;br /&gt;
 bzr commit --fixes lp:123456 --fixes lp:123457 -m 'patch description'&lt;br /&gt;
Then, bugs can be changed automatically from &amp;quot;Fix Available&amp;quot; to &amp;quot;Fix Released&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[[http://doc.bazaar-vcs.org/bzr.dev/en/tutorials/using_bazaar_with_launchpad.html#changing-the-state-in-launchpad-while-committing-in-bazaar Read more: &amp;quot;Changing the state in Launchpad while committing in Bazaar&amp;quot;]]&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
* [http://doc.bazaar-vcs.org/latest/en/ Bazaar manual]&lt;/div&gt;</summary>
		<author><name>AurelioAHeckert</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Working_with_Bazaar&amp;diff=55041</id>
		<title>Working with Bazaar</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Working_with_Bazaar&amp;diff=55041"/>
		<updated>2009-12-01T17:10:53Z</updated>

		<summary type="html">&lt;p&gt;AurelioAHeckert: /* First steps */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''WARNING: &amp;lt;tt&amp;gt;lp:inkscape&amp;lt;/tt&amp;gt; is currently out of date. Do not use it until the migration to Launchpad is complete.'''&lt;br /&gt;
&lt;br /&gt;
==Bazaar concepts==&lt;br /&gt;
&lt;br /&gt;
It is assumed that you are familiar with the basic concepts of version control, like working copy, committing, updating, conflicts. There will be a section that explains the basic functionality soon.&lt;br /&gt;
&lt;br /&gt;
* '''Branch''' is a working copy of the project's code. Typically you use one branch per set of related changes, for example a new output extension. Once your work is finished, you ''merge'' your branch into a larger project. Initially, there is only one branch, the trunk; all other branches are its (probably indirect) descendants. To create a new branch, you have to copy an existing one.&lt;br /&gt;
* '''Checkout''' is a copy of code contained in a branch that is not stored on your computer (a remote branch). Committing to a checkout will immediately apply the changes to the remote branch. Commits will not succeed if somebody else&lt;br /&gt;
* When branches A and B have a common ancestor branch but each contain changes not present in the other, they have '''diverged'''. For example, when you work on an improved rectangle tool in your own branch and at the same time somebody else applies a PDF export bugfix to the trunk, your rectangle tool branch becomes diverged from the trunk.&lt;br /&gt;
* '''Trunk''' is the main branch, which represents cutting-edge working code. You should start from it when doing any new development.&lt;br /&gt;
* '''Merge''' is the process of reconciling changes made between two branches since they diverged. This operation is asymmetric. When you merge A into B, all changes made to A since it was branched from B are applied to B. A is not changed. When you work on some feature, you typically work in a branch, periodically merging the trunk into your branch (to sync up with the latest changes), then you merge your work into the trunk. Merging is similar to applying a patch - it only changes your working copy. To apply a merge, you need to commit the changes it introduced. Merging un-diverges branches.&lt;br /&gt;
* '''Repository''' is a place where branches of a project are stored. Having a shared repository reduces the storage requirements of multiple branches of one project. Instead of O(number of branches) space, they take roughly O(size of changes).&lt;br /&gt;
* '''Bind''' is the process of converting a non-diverged local branch into a checkout.&lt;br /&gt;
* '''Push''' is the process of publishing an exact copy (a mirror) of your branch in some other location. The difference between pushing and checkouts is that a checked out remote branch is updated every time you commit, while a pushed remote branch is updated only when you push to it. You can only push to a branch if the mirror has not diverged from your local copy. This can happen if more than 1 person can push to the same location.&lt;br /&gt;
* '''Pull''' is the process of creating a local exact copy (mirror) of a branch, in principle a reverse of pushing.&lt;br /&gt;
&lt;br /&gt;
==First steps==&lt;br /&gt;
&lt;br /&gt;
First you need to tell Bazaar your name. This will appear on all your commits. You should use your real e-mail, but you can obfuscate it if you are afraid of spam.&lt;br /&gt;
&lt;br /&gt;
Obfuscated e-mail example: &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;bzr whoami &amp;quot;John Q. Public &amp;lt;john dot q dot public at-sign bigmail dot com&amp;gt;&amp;quot;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Unobfuscated e-mail example: &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;bzr whoami &amp;quot;John Q. Public &amp;lt;john.q.public@bigmail.com&amp;gt;&amp;quot;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The basic usage:&lt;br /&gt;
 $ bzr branch lp:inkscape&lt;br /&gt;
 $ cd inkscape&lt;br /&gt;
 $ bzr bind lp:inkscape&lt;br /&gt;
  &amp;lt;do work&amp;gt;&lt;br /&gt;
 $ bzr commit&lt;br /&gt;
  &amp;lt;error, someone else has changed things&amp;gt;&lt;br /&gt;
 $ bzr update&lt;br /&gt;
  &amp;lt;check all is okay&amp;gt;&lt;br /&gt;
 $ bzr commit&lt;br /&gt;
&lt;br /&gt;
==SVN-style checkout==&lt;br /&gt;
&lt;br /&gt;
Bazaar can be used very much like SVN.&lt;br /&gt;
&lt;br /&gt;
* Get the latest Inkscape code: &amp;lt;tt&amp;gt;bzr checkout lp:inkscape&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Make changes to the files. If you add new files, add them to version control with &amp;lt;tt&amp;gt;bzr add ''file''&amp;lt;/tt&amp;gt;. You can recursively add all new files by writing simply &amp;lt;tt&amp;gt;bzr add&amp;lt;/tt&amp;gt; in the top level directory.&lt;br /&gt;
* Commit the changes, making them accessible to others: &amp;lt;tt&amp;gt;bzr commit&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Receive the most up-to-date version of the code: &amp;lt;tt&amp;gt;bzr update&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Differences from SVN===&lt;br /&gt;
&lt;br /&gt;
* Commits will fail if your checkout is not up to date, even if there would be no conflicts.&lt;br /&gt;
* The revision number is an attribute of the working tree, not of individual files. It is not possible to have different portions of the working tree at different revisions.&lt;br /&gt;
* &amp;lt;tt&amp;gt;bzr commit ''file''&amp;lt;/tt&amp;gt; works like &amp;lt;tt&amp;gt; svn commit ''file'' &amp;amp;&amp;amp; svn update ''project-root''&amp;lt;/tt&amp;gt;. After a successful partial commit, the entire tree's revision is increased by 1.&lt;br /&gt;
* No special server is needed to publish a branch. You can push branches to anywhere, including simple FTP shares. In our scenario, Launchpad works like a central repository, but it's not required to publish everything there.&lt;br /&gt;
* You create branches locally. To simulate creating a SVN-style branch on Launchpad, you need to create a local branch, push it, then bind it to the pushed location.&lt;br /&gt;
&lt;br /&gt;
==Using branches==&lt;br /&gt;
This will asumme this directory layout:&lt;br /&gt;
 inkscape&lt;br /&gt;
  +-trunk&lt;br /&gt;
  |  +-doc&lt;br /&gt;
  |  +-share&lt;br /&gt;
  |  +-src&lt;br /&gt;
  |  +-po&lt;br /&gt;
  |  +-...&lt;br /&gt;
  +-my-branch&lt;br /&gt;
  +-some-other-branch&lt;br /&gt;
&lt;br /&gt;
===Repository setup===&lt;br /&gt;
If you are working on several things at once, it's better to use one branch per feature. Here is how to work with branches.&lt;br /&gt;
&lt;br /&gt;
* Create a shared repository for your branches. This brings significant space savings if you have several branches, but is not mandatory: &amp;lt;tt&amp;gt;bzr init-repo --rich-root inkscape&amp;lt;/tt&amp;gt;. This will create the directory &amp;lt;tt&amp;gt;inkscape&amp;lt;/tt&amp;gt;, which will contain a shared repository used by all branches within it, in the rich root format. This is the format currently used by our Launchpad repository - if you choose another format, you might not be able to push your branches to Launchpad. Enter the directory just created: &amp;lt;tt&amp;gt;cd inkscape&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Create a new branch: &amp;lt;tt&amp;gt;bzr branch lp:inkscape my-branch&amp;lt;/tt&amp;gt;. This will retrieve the main branch of Inkscape and put it in the subdirectory &amp;lt;tt&amp;gt;my-branch&amp;lt;/tt&amp;gt;.&lt;br /&gt;
* Make changes. Commit them locally using &amp;lt;tt&amp;gt;bzr commit&amp;lt;/tt&amp;gt;. Note that this doesn't touch the trunk on Launchpad; you are only committing to your local repository.&lt;br /&gt;
* If somebody else modified the trunk, resync with it: &amp;lt;tt&amp;gt;bzr merge&amp;lt;/tt&amp;gt; (merging will automatically use the parent branch if none is specified)&lt;br /&gt;
&lt;br /&gt;
===Publishing branches on Launchpad===&lt;br /&gt;
To publish branches on Launchpad, you have to add an SSH key to your account. You can generate a key using the program &amp;lt;tt&amp;gt;ssh-keygen&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
When you added a key to your account, you can now use the Launchpad integration features.&lt;br /&gt;
&lt;br /&gt;
* First you have to log in: &amp;lt;tt&amp;gt;bzr launchpad-login ''launchpad-username''&amp;lt;/tt&amp;gt;. You need to use your username, not your display name.&lt;br /&gt;
* Publish your branch on Launchpad: &amp;lt;tt&amp;gt;bzr push lp:~''launchpad-username''/inkscape/my-branch&amp;lt;/tt&amp;gt;. Of course if you're working with a different project, substitute &amp;lt;tt&amp;gt;inkscape&amp;lt;/tt&amp;gt; with its Launchpad name.&lt;br /&gt;
* The push location will be saved. To update the branch on Launchpad, write &amp;lt;ttbzr push&amp;lt;/tt&amp;gt; after your commits.&lt;br /&gt;
* If you want to always commit directly to the remote branch on Launchpad, write &amp;lt;tt&amp;gt;bzr bind lp:~''launchpad-username''/inkscape/my-branch&amp;lt;/tt&amp;gt; after the initial push. This will convert your local branch into a checkout of the remote branch.&lt;br /&gt;
&lt;br /&gt;
===Merging branches into trunk===&lt;br /&gt;
&lt;br /&gt;
Way A: commit to a checkout of the trunk. This requires a trunk checkout, but for some people is more logical.&lt;br /&gt;
&lt;br /&gt;
* Navigate to a checkout of the trunk.&lt;br /&gt;
* Execute &amp;lt;tt&amp;gt;bzr merge ''branch-url''&amp;lt;/tt&amp;gt;. This will modify the files to receive the changes from the specified branch but will not modify the trunk.&lt;br /&gt;
* After verifying the changes (e.g. compile the program and see whether it doesn't crash on startup), execute &amp;lt;tt&amp;gt;bzr commit&amp;lt;/tt&amp;gt; to apply the changes from the merge to the trunk.&lt;br /&gt;
&lt;br /&gt;
Way B: merge from trunk, then push. It doesn't require a trunk checkout, but it may be less obvious what is happening.&lt;br /&gt;
&lt;br /&gt;
* Navigate to the branch you want to merge.&lt;br /&gt;
* Execute &amp;lt;tt&amp;gt;bzr merge ''trunk-location''&amp;lt;/tt&amp;gt;, where ''trunk-location'' might be your local trunk checkout or &amp;lt;tt&amp;gt;lp:inkscape&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Verify the changes, then execute &amp;lt;tt&amp;gt;bzr commit&amp;lt;/tt&amp;gt;.&lt;br /&gt;
* Push to trunk: &amp;lt;tt&amp;gt;bzr push lp:inkscape&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Local branching===&lt;br /&gt;
&lt;br /&gt;
Naturally, all this also works locally. For example, when you're in the &amp;lt;tt&amp;gt;inkscape&amp;lt;/tt&amp;gt; directory, you can write &amp;lt;tt&amp;gt;bzr branch trunk export-dialog&amp;lt;/tt&amp;gt; to create a new branch of the trunk called &amp;lt;tt&amp;gt;export-dialog&amp;lt;/tt&amp;gt;, where you'll work only on improving the export dialog. Similarly, you can merge between local branches.&lt;br /&gt;
&lt;br /&gt;
==Best Practicals for Inkscape Project==&lt;br /&gt;
&lt;br /&gt;
===Registering Bugfixes===&lt;br /&gt;
&lt;br /&gt;
Launchpad will automatically mark a bug &amp;quot;Fix Available&amp;quot; (rather than &amp;quot;Fix Committed&amp;quot;) once somebody commits using the flag --fixes, e.g. (if you fix those two bugs in one commit):&lt;br /&gt;
 bzr commit --fixes lp:123456 --fixes lp:123457 -m 'patch description'&lt;br /&gt;
Then, bugs can be changed automatically from &amp;quot;Fix Available&amp;quot; to &amp;quot;Fix Released&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[[http://doc.bazaar-vcs.org/bzr.dev/en/tutorials/using_bazaar_with_launchpad.html#changing-the-state-in-launchpad-while-committing-in-bazaar Read more: &amp;quot;Changing the state in Launchpad while committing in Bazaar&amp;quot;]]&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
* [http://doc.bazaar-vcs.org/latest/en/ Bazaar manual]&lt;/div&gt;</summary>
		<author><name>AurelioAHeckert</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Working_with_Bazaar&amp;diff=55039</id>
		<title>Working with Bazaar</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Working_with_Bazaar&amp;diff=55039"/>
		<updated>2009-12-01T17:05:54Z</updated>

		<summary type="html">&lt;p&gt;AurelioAHeckert: Registering Bugfixes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''WARNING: &amp;lt;tt&amp;gt;lp:inkscape&amp;lt;/tt&amp;gt; is currently out of date. Do not use it until the migration to Launchpad is complete.'''&lt;br /&gt;
&lt;br /&gt;
==Bazaar concepts==&lt;br /&gt;
&lt;br /&gt;
It is assumed that you are familiar with the basic concepts of version control, like working copy, committing, updating, conflicts. There will be a section that explains the basic functionality soon.&lt;br /&gt;
&lt;br /&gt;
* '''Branch''' is a working copy of the project's code. Typically you use one branch per set of related changes, for example a new output extension. Once your work is finished, you ''merge'' your branch into a larger project. Initially, there is only one branch, the trunk; all other branches are its (probably indirect) descendants. To create a new branch, you have to copy an existing one.&lt;br /&gt;
* '''Checkout''' is a copy of code contained in a branch that is not stored on your computer (a remote branch). Committing to a checkout will immediately apply the changes to the remote branch. Commits will not succeed if somebody else&lt;br /&gt;
* When branches A and B have a common ancestor branch but each contain changes not present in the other, they have '''diverged'''. For example, when you work on an improved rectangle tool in your own branch and at the same time somebody else applies a PDF export bugfix to the trunk, your rectangle tool branch becomes diverged from the trunk.&lt;br /&gt;
* '''Trunk''' is the main branch, which represents cutting-edge working code. You should start from it when doing any new development.&lt;br /&gt;
* '''Merge''' is the process of reconciling changes made between two branches since they diverged. This operation is asymmetric. When you merge A into B, all changes made to A since it was branched from B are applied to B. A is not changed. When you work on some feature, you typically work in a branch, periodically merging the trunk into your branch (to sync up with the latest changes), then you merge your work into the trunk. Merging is similar to applying a patch - it only changes your working copy. To apply a merge, you need to commit the changes it introduced. Merging un-diverges branches.&lt;br /&gt;
* '''Repository''' is a place where branches of a project are stored. Having a shared repository reduces the storage requirements of multiple branches of one project. Instead of O(number of branches) space, they take roughly O(size of changes).&lt;br /&gt;
* '''Bind''' is the process of converting a non-diverged local branch into a checkout.&lt;br /&gt;
* '''Push''' is the process of publishing an exact copy (a mirror) of your branch in some other location. The difference between pushing and checkouts is that a checked out remote branch is updated every time you commit, while a pushed remote branch is updated only when you push to it. You can only push to a branch if the mirror has not diverged from your local copy. This can happen if more than 1 person can push to the same location.&lt;br /&gt;
* '''Pull''' is the process of creating a local exact copy (mirror) of a branch, in principle a reverse of pushing.&lt;br /&gt;
&lt;br /&gt;
==First steps==&lt;br /&gt;
&lt;br /&gt;
First you need to tell Bazaar your name. This will appear on all your commits. You should use your real e-mail, but you can obfuscate it if you are afraid of spam.&lt;br /&gt;
&lt;br /&gt;
Obfuscated e-mail example: &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;bzr whoami &amp;quot;John Q. Public &amp;lt;john dot q dot public at-sign bigmail dot com&amp;gt;&amp;quot;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Unobfuscated e-mail example: &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;bzr whoami &amp;quot;John Q. Public &amp;lt;john.q.public@bigmail.com&amp;gt;&amp;quot;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==SVN-style checkout==&lt;br /&gt;
&lt;br /&gt;
Bazaar can be used very much like SVN.&lt;br /&gt;
&lt;br /&gt;
* Get the latest Inkscape code: &amp;lt;tt&amp;gt;bzr checkout lp:inkscape&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Make changes to the files. If you add new files, add them to version control with &amp;lt;tt&amp;gt;bzr add ''file''&amp;lt;/tt&amp;gt;. You can recursively add all new files by writing simply &amp;lt;tt&amp;gt;bzr add&amp;lt;/tt&amp;gt; in the top level directory.&lt;br /&gt;
* Commit the changes, making them accessible to others: &amp;lt;tt&amp;gt;bzr commit&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Receive the most up-to-date version of the code: &amp;lt;tt&amp;gt;bzr update&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Differences from SVN===&lt;br /&gt;
&lt;br /&gt;
* Commits will fail if your checkout is not up to date, even if there would be no conflicts.&lt;br /&gt;
* The revision number is an attribute of the working tree, not of individual files. It is not possible to have different portions of the working tree at different revisions.&lt;br /&gt;
* &amp;lt;tt&amp;gt;bzr commit ''file''&amp;lt;/tt&amp;gt; works like &amp;lt;tt&amp;gt; svn commit ''file'' &amp;amp;&amp;amp; svn update ''project-root''&amp;lt;/tt&amp;gt;. After a successful partial commit, the entire tree's revision is increased by 1.&lt;br /&gt;
* No special server is needed to publish a branch. You can push branches to anywhere, including simple FTP shares. In our scenario, Launchpad works like a central repository, but it's not required to publish everything there.&lt;br /&gt;
* You create branches locally. To simulate creating a SVN-style branch on Launchpad, you need to create a local branch, push it, then bind it to the pushed location.&lt;br /&gt;
&lt;br /&gt;
==Using branches==&lt;br /&gt;
This will asumme this directory layout:&lt;br /&gt;
 inkscape&lt;br /&gt;
  +-trunk&lt;br /&gt;
  |  +-doc&lt;br /&gt;
  |  +-share&lt;br /&gt;
  |  +-src&lt;br /&gt;
  |  +-po&lt;br /&gt;
  |  +-...&lt;br /&gt;
  +-my-branch&lt;br /&gt;
  +-some-other-branch&lt;br /&gt;
&lt;br /&gt;
===Repository setup===&lt;br /&gt;
If you are working on several things at once, it's better to use one branch per feature. Here is how to work with branches.&lt;br /&gt;
&lt;br /&gt;
* Create a shared repository for your branches. This brings significant space savings if you have several branches, but is not mandatory: &amp;lt;tt&amp;gt;bzr init-repo --rich-root inkscape&amp;lt;/tt&amp;gt;. This will create the directory &amp;lt;tt&amp;gt;inkscape&amp;lt;/tt&amp;gt;, which will contain a shared repository used by all branches within it, in the rich root format. This is the format currently used by our Launchpad repository - if you choose another format, you might not be able to push your branches to Launchpad. Enter the directory just created: &amp;lt;tt&amp;gt;cd inkscape&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Create a new branch: &amp;lt;tt&amp;gt;bzr branch lp:inkscape my-branch&amp;lt;/tt&amp;gt;. This will retrieve the main branch of Inkscape and put it in the subdirectory &amp;lt;tt&amp;gt;my-branch&amp;lt;/tt&amp;gt;.&lt;br /&gt;
* Make changes. Commit them locally using &amp;lt;tt&amp;gt;bzr commit&amp;lt;/tt&amp;gt;. Note that this doesn't touch the trunk on Launchpad; you are only committing to your local repository.&lt;br /&gt;
* If somebody else modified the trunk, resync with it: &amp;lt;tt&amp;gt;bzr merge&amp;lt;/tt&amp;gt; (merging will automatically use the parent branch if none is specified)&lt;br /&gt;
&lt;br /&gt;
===Publishing branches on Launchpad===&lt;br /&gt;
To publish branches on Launchpad, you have to add an SSH key to your account. You can generate a key using the program &amp;lt;tt&amp;gt;ssh-keygen&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
When you added a key to your account, you can now use the Launchpad integration features.&lt;br /&gt;
&lt;br /&gt;
* First you have to log in: &amp;lt;tt&amp;gt;bzr launchpad-login ''launchpad-username''&amp;lt;/tt&amp;gt;. You need to use your username, not your display name.&lt;br /&gt;
* Publish your branch on Launchpad: &amp;lt;tt&amp;gt;bzr push lp:~''launchpad-username''/inkscape/my-branch&amp;lt;/tt&amp;gt;. Of course if you're working with a different project, substitute &amp;lt;tt&amp;gt;inkscape&amp;lt;/tt&amp;gt; with its Launchpad name.&lt;br /&gt;
* The push location will be saved. To update the branch on Launchpad, write &amp;lt;ttbzr push&amp;lt;/tt&amp;gt; after your commits.&lt;br /&gt;
* If you want to always commit directly to the remote branch on Launchpad, write &amp;lt;tt&amp;gt;bzr bind lp:~''launchpad-username''/inkscape/my-branch&amp;lt;/tt&amp;gt; after the initial push. This will convert your local branch into a checkout of the remote branch.&lt;br /&gt;
&lt;br /&gt;
===Merging branches into trunk===&lt;br /&gt;
&lt;br /&gt;
Way A: commit to a checkout of the trunk. This requires a trunk checkout, but for some people is more logical.&lt;br /&gt;
&lt;br /&gt;
* Navigate to a checkout of the trunk.&lt;br /&gt;
* Execute &amp;lt;tt&amp;gt;bzr merge ''branch-url''&amp;lt;/tt&amp;gt;. This will modify the files to receive the changes from the specified branch but will not modify the trunk.&lt;br /&gt;
* After verifying the changes (e.g. compile the program and see whether it doesn't crash on startup), execute &amp;lt;tt&amp;gt;bzr commit&amp;lt;/tt&amp;gt; to apply the changes from the merge to the trunk.&lt;br /&gt;
&lt;br /&gt;
Way B: merge from trunk, then push. It doesn't require a trunk checkout, but it may be less obvious what is happening.&lt;br /&gt;
&lt;br /&gt;
* Navigate to the branch you want to merge.&lt;br /&gt;
* Execute &amp;lt;tt&amp;gt;bzr merge ''trunk-location''&amp;lt;/tt&amp;gt;, where ''trunk-location'' might be your local trunk checkout or &amp;lt;tt&amp;gt;lp:inkscape&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Verify the changes, then execute &amp;lt;tt&amp;gt;bzr commit&amp;lt;/tt&amp;gt;.&lt;br /&gt;
* Push to trunk: &amp;lt;tt&amp;gt;bzr push lp:inkscape&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Local branching===&lt;br /&gt;
&lt;br /&gt;
Naturally, all this also works locally. For example, when you're in the &amp;lt;tt&amp;gt;inkscape&amp;lt;/tt&amp;gt; directory, you can write &amp;lt;tt&amp;gt;bzr branch trunk export-dialog&amp;lt;/tt&amp;gt; to create a new branch of the trunk called &amp;lt;tt&amp;gt;export-dialog&amp;lt;/tt&amp;gt;, where you'll work only on improving the export dialog. Similarly, you can merge between local branches.&lt;br /&gt;
&lt;br /&gt;
==Best Practicals for Inkscape Project==&lt;br /&gt;
&lt;br /&gt;
===Registering Bugfixes===&lt;br /&gt;
&lt;br /&gt;
Launchpad will automatically mark a bug &amp;quot;Fix Available&amp;quot; (rather than &amp;quot;Fix Committed&amp;quot;) once somebody commits using the flag --fixes, e.g. (if you fix those two bugs in one commit):&lt;br /&gt;
 bzr commit --fixes lp:123456 --fixes lp:123457 -m 'patch description'&lt;br /&gt;
Then, bugs can be changed automatically from &amp;quot;Fix Available&amp;quot; to &amp;quot;Fix Released&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[[http://doc.bazaar-vcs.org/bzr.dev/en/tutorials/using_bazaar_with_launchpad.html#changing-the-state-in-launchpad-while-committing-in-bazaar Read more: &amp;quot;Changing the state in Launchpad while committing in Bazaar&amp;quot;]]&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
* [http://doc.bazaar-vcs.org/latest/en/ Bazaar manual]&lt;/div&gt;</summary>
		<author><name>AurelioAHeckert</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Release_notes/0.47&amp;diff=48384</id>
		<title>Release notes/0.47</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Release_notes/0.47&amp;diff=48384"/>
		<updated>2009-03-10T14:17:53Z</updated>

		<summary type="html">&lt;p&gt;AurelioAHeckert: /* New and improved effects */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Inkscape 0.47==&lt;br /&gt;
'''(not released yet)'''&lt;br /&gt;
&lt;br /&gt;
==Refactoring effort==&lt;br /&gt;
&lt;br /&gt;
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 less bugs and more new features, because it will be easier to develop and find bugs in Inkscape.&lt;br /&gt;
&lt;br /&gt;
===Migration to lib2geom===&lt;br /&gt;
Many parts of the code have been changed to use the 2Geom library for geometrical calculations instead of the old libnr and Livarot libraries.&lt;br /&gt;
&lt;br /&gt;
===Preferences===&lt;br /&gt;
Instead of global functions directly manipulating an XML document, the preferences API is now exposed through the &amp;lt;code&amp;gt;Inkscape::Preferences&amp;lt;/code&amp;gt; singleton. It abstracts away the way the preferences are stored in memory. In fitire 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.&lt;br /&gt;
&lt;br /&gt;
==Tools==&lt;br /&gt;
&lt;br /&gt;
===Node tool===&lt;br /&gt;
&lt;br /&gt;
* When hovering over a path in the Node tool, the path's outline will be displayed for a short time. This effect, its duration and the color of the outline is configurable.&lt;br /&gt;
* 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).&lt;br /&gt;
* Snapping has been improved (more details in Snapping below)&lt;br /&gt;
* 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).&lt;br /&gt;
* The behavior of the buttons/shortcuts that make a node smooth or cusp has been improved:&lt;br /&gt;
** 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.&lt;br /&gt;
** 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.&lt;br /&gt;
*'''Auto smooth nodes''': a new &amp;quot;auto&amp;quot; node type was added, 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, it 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 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.&lt;br /&gt;
&lt;br /&gt;
===Tweak tool===&lt;br /&gt;
&lt;br /&gt;
Several new modes are added to the Tweak tool for transforming, duplicating, and deleting selected objects using the same &amp;quot;soft brush&amp;quot; metaphor that the path editing and coloring modes use. Using these new modes, it is easy to &amp;quot;sculpt&amp;quot; scatterings of small objects, such as clone tilings, into complex and naturalistic textures.&lt;br /&gt;
&lt;br /&gt;
* '''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.&lt;br /&gt;
&lt;br /&gt;
* '''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.&lt;br /&gt;
&lt;br /&gt;
* '''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.&lt;br /&gt;
&lt;br /&gt;
* '''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.&lt;br /&gt;
&lt;br /&gt;
* '''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. &lt;br /&gt;
&lt;br /&gt;
* '''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). &lt;br /&gt;
&lt;br /&gt;
*'''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. &lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
 Shift+m, Shift+0	        move mode&lt;br /&gt;
 Shift+i, Shift+1	attract/repel objects mode&lt;br /&gt;
 Shift+z, Shift+2	jitter mode&lt;br /&gt;
 Shift+&amp;lt;, Shift+&amp;gt;, Shift+3	scale mode&lt;br /&gt;
 Shift+[, Shift+], Shift+4	rotate mode&lt;br /&gt;
 Shift+d, Shift+5	duplicate/delete mode&lt;br /&gt;
 Shift+p, Shift+6	push path mode&lt;br /&gt;
 Shift+s, Shift+7	shrink/grow path mode&lt;br /&gt;
 Shift+a, Shift+8	attract/repel path mode&lt;br /&gt;
 Shift+r, Shift+9	roughen mode&lt;br /&gt;
 Shift+c	        paint mode&lt;br /&gt;
 Shift+j	        color jitter mode&lt;br /&gt;
 Shift+b	        blur mode&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
===Calligraphy tool===&lt;br /&gt;
&lt;br /&gt;
* The tool's settings can now be saved and restored as presets.&lt;br /&gt;
&lt;br /&gt;
* When drawing with Alt pressed, Inkscape subtracts the path you have created from the selected path. With Shift, it unions with the selected path. This allows you to quickly patch or fix problems in a stroke you have drawn without leaving the tool.&lt;br /&gt;
&lt;br /&gt;
* The behavior of the tool when tracking a guide (drawing with Ctrl) has been improved:&lt;br /&gt;
&lt;br /&gt;
** The initial &amp;quot;jerk&amp;quot; when you start drawing is suppressed.&lt;br /&gt;
&lt;br /&gt;
** The undesired flipping of the stroke to the other side of the guide path, when drawing along closed paths, is fixed. &lt;br /&gt;
&lt;br /&gt;
** 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.&lt;br /&gt;
&lt;br /&gt;
===Paint Bucket tool===&lt;br /&gt;
* Paint Bucket is now more tightly integrated with potrace.  As a result, memory and CPU usage on each fill operation have been reduced significantly.&lt;br /&gt;
&lt;br /&gt;
===Eraser Tool===&lt;br /&gt;
A new eraser tool has been added. Its shortcut is Shift+E. It has two main modes:&lt;br /&gt;
&lt;br /&gt;
* Delete Objects mode where any shape touched by the tool is deleted completely. This operation is in line with &amp;quot;vector&amp;quot; editing.&lt;br /&gt;
* Cut mode where erasing acts similar to erasing in a standard bitmap editor. It acts on all objects in the current layer.&lt;br /&gt;
&lt;br /&gt;
===Pen and Pencil===&lt;br /&gt;
&lt;br /&gt;
Apart from the regular Bezier mode, the pen tool now provides several new modes:&lt;br /&gt;
&lt;br /&gt;
* '''Spiro mode''': This mode automatically applies the new Spiro Splines LPE (see the section on new effects) to any newly drawn path. As mentioned below, it is not yet possible to preview Spiros before the path is finished.&lt;br /&gt;
&lt;br /&gt;
* '''Polyline mode''': This mode makes it easy to draw many straight line segments in quick succession by disallowing curves (even when you drag with the mouse).&lt;br /&gt;
&lt;br /&gt;
* '''Paraxial polyline mode''': In this mode, you can create straight line segments that are parallel to one of the coordinate axes. Normally, each line segment is drawn perpendicular to the previous one. The direction of the line segment being drawn can be toggled with Shift. When clicking on the start anchor, the path is closed with an L-shaped segment (the direction of which can also be flipped with Shift).&lt;br /&gt;
&lt;br /&gt;
Furthermore, it is now possible to automatically apply predefined vector brushes to path strokes in pen and pencil tools. This is a first step towards [http://wiki.inkscape.org/wiki/index.php/Vector-brushes this blueprint].&lt;br /&gt;
&lt;br /&gt;
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 line. 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.&lt;br /&gt;
&lt;br /&gt;
====Pencil sketch mode====&lt;br /&gt;
[johan]&lt;br /&gt;
Press alt and sketch away, release alt to finalize result.&lt;br /&gt;
&lt;br /&gt;
===Text tool===&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Path effects==&lt;br /&gt;
===Notable bug fixes and effect changes===&lt;br /&gt;
We try to refrain from changing the behavior of LPE's, because it will change appearance in old files when opened in 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:&lt;br /&gt;
&lt;br /&gt;
* The Pattern Along Path effect:&lt;br /&gt;
**The pattern used to be stretched across discontinuities. This has been fixed; now it treats a discontinuous path as a group of continuous paths and applies the effect separately to each. &lt;br /&gt;
** Successive copies of the pattern can now be fused into continuous paths (using the new &amp;quot;fuse nearby ends&amp;quot; feature) so that &amp;quot;filling&amp;quot; the result works as expected.&lt;br /&gt;
&lt;br /&gt;
===New effects===&lt;br /&gt;
&lt;br /&gt;
* '''Sketch''': Simulates hand-drawn lines. A set of parameters lets you tune the effect. They are all summarized in this [[:Image:SketchParameters.png|picture]].&lt;br /&gt;
&lt;br /&gt;
:[[Image:SketchExemple.png|300px]]&lt;br /&gt;
&lt;br /&gt;
* '''Hatches''' Fills the given shape with rough, configurable and randomized hatches, simulating a quick hand drawing.&lt;br /&gt;
:[[Image:hatches-lpe.png|300px]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
* '''von Koch''': This effect creates fractal pictures. The segments of the shape are recursively replaced with copies of itself. This effect is a generalization of the [http://en.wikipedia.org/wiki/Koch_snowflake Koch snowflake].&lt;br /&gt;
:[[Image:VonKochExample.png|300px]]&lt;br /&gt;
&lt;br /&gt;
:''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.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''Knot''': Creates a knot from a flat self intersecting curve. At each crossing, one string is interrupted to make it look like going under the other. The &amp;quot;sign&amp;quot; of each crossing can be set independantly. &lt;br /&gt;
:[[Image:KnotExample.png|300px]]&lt;br /&gt;
&lt;br /&gt;
:''Known limitation'': can not be applied to groups nor be shared by different objects.&lt;br /&gt;
&lt;br /&gt;
* '''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]&lt;br /&gt;
&lt;br /&gt;
* '''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.&lt;br /&gt;
&lt;br /&gt;
: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. &lt;br /&gt;
&lt;br /&gt;
:To create a Spiro path, select any path and assign the &amp;quot;Spiro spline&amp;quot; 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:&lt;br /&gt;
&lt;br /&gt;
:* 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.&lt;br /&gt;
&lt;br /&gt;
:* 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.&lt;br /&gt;
&lt;br /&gt;
:* Half-smooth nodes - those with one Bezier handle collinear with a straight line segment on the other hand - become &amp;quot;left&amp;quot; or &amp;quot;right&amp;quot; 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.&lt;br /&gt;
&lt;br /&gt;
: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. &lt;br /&gt;
&lt;br /&gt;
:Some configurations of points do not converge and produce wild loops and spirals instead of a smooth curve. According to Raph, &amp;quot;The spline solver in this release is _not_ numerically robust. When you start drawing random points, you'll quickly run into divergence. However, &amp;quot;sensible&amp;quot; plates based on real fonts usually converge.&amp;quot; Avoid too sharp changes in direction between points to prevent divergence. Hopefully, the robustness of the algorithm will be improved in future releases.&lt;br /&gt;
&lt;br /&gt;
: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. &lt;br /&gt;
&lt;br /&gt;
: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.&lt;br /&gt;
&lt;br /&gt;
* '''Construct Grid'''  [johan]&lt;br /&gt;
&lt;br /&gt;
* '''Perpendicular bisector''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''Angle bisector''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''Tangent to a curve''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''Circle through 3 points''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''Circle with radius''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''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.&lt;br /&gt;
&lt;br /&gt;
* '''Lattice Deformation''' allows you to deform an object (or a group of objects) by moving 16 control points.&lt;br /&gt;
&lt;br /&gt;
* '''Ruler''': [max]&lt;br /&gt;
&lt;br /&gt;
* '''Freehand Shape''': [max]&lt;br /&gt;
&lt;br /&gt;
* '''Interpolate Subpaths''': [Johan]&lt;br /&gt;
&lt;br /&gt;
* '''Path Length''': [max]&lt;br /&gt;
&lt;br /&gt;
* '''Text Label''': [max]&lt;br /&gt;
&lt;br /&gt;
===New features===&lt;br /&gt;
* The '''Paste Path Effect''' command is enabled to assign the path effect of the clipboard to any number of paths, going recursively into groups if necessary.&lt;br /&gt;
&lt;br /&gt;
* A new command, '''Remove path effect''' removes any path effects from all selected objects, going recursively into groups if necessary. &lt;br /&gt;
&lt;br /&gt;
* Along with the commands to open the path effects dialog and to paste path effects, the three commands were collected in a submenu under Path menu.&lt;br /&gt;
&lt;br /&gt;
* Live path effects can now be assigned to the sides of a 3D box (use Ctrl+click to select individual sides).&lt;br /&gt;
&lt;br /&gt;
* The Pen and Pencil tools now correctly work with paths with LPEs: you can continue such a path or add a new subpath to it by drawing with Shift, all preserving the effect applied to it.&lt;br /&gt;
&lt;br /&gt;
* Path type parameters can now link to existing shapes &amp;lt;b&amp;gt;and text&amp;lt;/b&amp;gt;, like clones do. Now it is possible to use text as input for the Pattern Along Path effect for example!&lt;br /&gt;
&lt;br /&gt;
* Lib2geom now has an implementation for EllipticalArc. For Inkscape, this means that it is now possible to directly copy-paste ellipse shapes on path parameters (e.g. 'pattern' in Pattern along Path), without the need to convert the ellipse object to path first. [needs coding and checking]&lt;br /&gt;
&lt;br /&gt;
===Live Path Effects for groups===&lt;br /&gt;
&lt;br /&gt;
LPE can now be assigned to a group. For most LPEs, the effect is applied recursively but for Bend Path or Deformations the result is more powerful : the distortion applies on the whole group. &lt;br /&gt;
&lt;br /&gt;
*You can as usual enter the group by double-clicking on it. &lt;br /&gt;
*It applies recursively, this means that a LPE can be assigned to groups of groups &lt;br /&gt;
*The Effect can be applied definitively with &amp;quot;Convert Object to path&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===Live Path Effects stacking===&lt;br /&gt;
&lt;br /&gt;
With Live Path Effects stacking, more than one Live Path Effect can be assigned to an item. A new UI was created to control the stack.&lt;br /&gt;
&lt;br /&gt;
==Import/Export==&lt;br /&gt;
===PostScript and EPS import===&lt;br /&gt;
&lt;br /&gt;
Inkscape's capability to open or import PS and EPS files now uses Ghostscript instead of pstoedit. If you need to open files of these types, install Ghostscript and make sure the directory with the &amp;lt;code&amp;gt;ps2pdf&amp;lt;/code&amp;gt; utility from Ghostscript installation is in your PATH. On opening, you will see a preferences dialog similar to PDF import, which, for multipage PS files, allows you to select the page to open.&lt;br /&gt;
&lt;br /&gt;
===PDF import from the command line===&lt;br /&gt;
&lt;br /&gt;
Now you can use, for example,&lt;br /&gt;
&lt;br /&gt;
 inkscape file.pdf --export-plain-svg=file.svg&lt;br /&gt;
&lt;br /&gt;
It will take the first page of the PDF and all the default import options, and save the result to SVG. If you try to import PDF without an &amp;lt;code&amp;gt;--export&amp;lt;/code&amp;gt; command, it will show the import options dialog as before and open the file in the UI.&lt;br /&gt;
&lt;br /&gt;
===PDF, PostScript, and EPS export===&lt;br /&gt;
&lt;br /&gt;
The new Cairo-based PS and EPS exporter provides a much better support for various vector features, including clipping paths, patterns, and non-ASCII characters. Those features that are not supported by the target formats are exported via embedded rasters that preserve the appearance; in particular:&lt;br /&gt;
&lt;br /&gt;
* transparency is always rasterized in PS or EPS (but not PDF, as PDF supports vector transparency);&lt;br /&gt;
&lt;br /&gt;
* filters, such as blur, are by default rasterized in all three formats (PS, EPS, PDF), but this can be turned off by unchecking the &amp;quot;Rasterize filter effects&amp;quot; option in the UI or adding the --export-ignore-filters option via the command line, in which case filtered objects are rendered as vectors without filters and without rasterization.&lt;br /&gt;
&lt;br /&gt;
All of PS, EPS, and PDF export formats uniformly support the export area options (canvas or drawing) and the new export-id option: &lt;br /&gt;
&lt;br /&gt;
* 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 &amp;quot;Limit export to the object with ID&amp;quot; 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 at all). The BoundingBox (page size) of the exported PS/EPS/PDF file will correspond to the bounding box of that object; you can override that with &amp;quot;Export area is whole canvas&amp;quot; (GUI) or '''--export-area-canvas''' (command line) option which forces the output to have the size of the SVG document's canvas (this may not be possible with EPS, see below).&lt;br /&gt;
&lt;br /&gt;
* The &amp;quot;Export area is whole canvas&amp;quot; (GUI) or '''--export-area-canvas''' (command line) option forces the output to have the size of the SVG document's canvas. This is the default for PS and PDF but not for EPS. &lt;br /&gt;
&lt;br /&gt;
**Note that for EPS, the specification of the format does not allow its bounding box to extend beyond its content. This means that when --export-area-canvas is used with EPS export, the canvas bounding box will be trimmed inwards (but never 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.&lt;br /&gt;
&lt;br /&gt;
** The &amp;lt;b&amp;gt;--export-bbox-page&amp;lt;/b&amp;gt; command line parameter is removed; use &amp;lt;b&amp;gt;--export-area-canvas&amp;lt;/b&amp;gt; instead. &lt;br /&gt;
&lt;br /&gt;
* The &amp;quot;Export area is the drawing&amp;quot; (GUI) or '''--export-area-drawing''' (command line) option forces the output to have the size of the exported objects' bounding box, regardless of canvas 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. &lt;br /&gt;
&lt;br /&gt;
* The &amp;lt;b&amp;gt;--export-embed-fonts&amp;lt;/b&amp;gt; option is removed; now Inkscape always embeds and subsets all fonts used in the document when exporting PS, EPS, or PDF.&lt;br /&gt;
&lt;br /&gt;
===CUniConvertor-based import import===&lt;br /&gt;
&lt;br /&gt;
Inkscape can now use UniConvertor to import files of the following types:&lt;br /&gt;
&lt;br /&gt;
* Corel DRAW Compressed Exchange files (CCX)&lt;br /&gt;
* Corel DRAW 7-X4 Template files (CDT)&lt;br /&gt;
* Corel DRAW Presentation Exchange files (CMX)&lt;br /&gt;
* sK1 files&lt;br /&gt;
* Computer Graphics Metafiles (CGM)&lt;br /&gt;
&lt;br /&gt;
Text objects are not supported as of UniConvertor 1.1.1.&lt;br /&gt;
&lt;br /&gt;
===HPGL export===&lt;br /&gt;
&lt;br /&gt;
Inkscape can now export to HPGL (Hewlett-Packard Graphics Language). It is a file format that is used for various cutters/plotters.&lt;br /&gt;
&lt;br /&gt;
===JavaFX export===&lt;br /&gt;
&lt;br /&gt;
[]&lt;br /&gt;
&lt;br /&gt;
===DXF export===&lt;br /&gt;
&lt;br /&gt;
DXF export is much faster than in previous versions.&lt;br /&gt;
&lt;br /&gt;
===PNG export===&lt;br /&gt;
&lt;br /&gt;
* If you specify a relative path for exported PNG file (e.g. &amp;lt;code&amp;gt;../&amp;lt;/code&amp;gt;) it will now be resolved relative to the current document's location.&lt;br /&gt;
&lt;br /&gt;
* PNG export has been updated to include metadata if present in the source SVG.&lt;br /&gt;
&lt;br /&gt;
==Autosave==&lt;br /&gt;
&lt;br /&gt;
Autosave has now been added to 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 and each other. Go to Inkscape Preferences, Autosave tab, to enable this feature and specify the backup time interval, the directory, and the maximum number of saved backups (if this number is exceeded, old backups will start to be deleted).&lt;br /&gt;
&lt;br /&gt;
==Extensions==&lt;br /&gt;
&lt;br /&gt;
* 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. &lt;br /&gt;
&lt;br /&gt;
===New and improved effects===&lt;br /&gt;
&lt;br /&gt;
* The new '''Arrange &amp;gt; Restack''' extension restacks the Z-order of selected objects, from left to right, top to bottom (or vice versa), with radial outward or inward or by an arbitrary angle, specifying the base point for comparison (top, left, middle, etc.).&lt;br /&gt;
* The improved '''Modify Path &amp;gt; Add Nodes''' extension now also allows segments to be divided into a given number of subsegments.&lt;br /&gt;
* The new '''Printing &amp;gt; Add printing marks''' extension add useful printing marks and color bars required by printing bureaus. You can either manually define margins by which cut marks are created.&lt;br /&gt;
* The new '''Render &amp;gt; 3D Polyhedron''' extension allows drawing polyhedrons from scratch and render them from OBJ files.&lt;br /&gt;
* The new '''Render &amp;gt; Alphabet Soup''' extension is a vector rework of Matt Chrisholm's [http://www.theory.org/artprojects/alphabetsoup/main.html GPLed script]. Alphabet Soup randomly mashes glyph-elements together to make exotic looking text.&lt;br /&gt;
* The new '''Render &amp;gt; 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 customisable line width. All like elements (eg x-axis subminor divisions) are put into subgroups together. A proper border is also drawn, with an independent line thickness.&lt;br /&gt;
* The new '''Render &amp;gt; 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 allows entry of custom trilinear coordinated and triangle centre functions, as well as computation of basic triangle properties such as area and semiperimeter.&lt;br /&gt;
* The new '''Render &amp;gt; Guides Creator''' extension allows creating easily horizontal and vertical guides for dividing equally the canvas. You can choose the divisions from None, 1/2, 1/3 ... to 1/10.&lt;br /&gt;
* The new '''Render &amp;gt; Polar Grid''' extension plots a polar co-ordinate grid, with options for arbitrary-base logarithmic subdivisions, clutter-reduction around the origin, circumferential labels and custom line widths.&lt;br /&gt;
* The new '''Render &amp;gt; Calendar''' extension draws a calendar for a given year with localizable month/weekday names, colors, and other options.&lt;br /&gt;
* The new '''Text &amp;gt; Convert to Braille''' extension recodes English (or just Latin letters) text to [http://en.wikipedia.org/wiki/Braille Braille] code. This is obviously just an aesthetical feature. It is not intended to create real braille text for visually impaired people but instead it is meant to enable an accurate graphical representation of braille text to be used in illustrations.&lt;br /&gt;
* The new '''Render &amp;gt; Foldable Box''' extension helps to design and construct paper boxes.&lt;br /&gt;
&lt;br /&gt;
===API changes===&lt;br /&gt;
&lt;br /&gt;
While the &amp;quot;Live preview&amp;quot; checkbox is useful for most effects, for some it just does not make sense. Now, you can add the attribute &amp;lt;code&amp;gt;needs-live-preview=&amp;quot;false&amp;quot;&amp;lt;/code&amp;gt; in the &amp;lt;code&amp;gt;effect&amp;lt;/code&amp;gt; element in the .inx file of the effect to suppress this checkbox for your effect.&lt;br /&gt;
&lt;br /&gt;
Parameters passed to extensions (via the &amp;lt;param&amp;gt; element) now have a new boolean attribute - &amp;lt;code&amp;gt;gui-hidden&amp;lt;/code&amp;gt; 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.&lt;br /&gt;
&lt;br /&gt;
All '''.inx''' files are now properly formatted XML files with its own namespace of: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://www.inkscape.org/namespace/inkscape/extension&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; and a Relax NG schema to define it. More information can be found in the [[Extensions]] Article.&lt;br /&gt;
&lt;br /&gt;
==Filters==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
===Preset filters===&lt;br /&gt;
&lt;br /&gt;
The Filter Editor is powerful, but can be quite cumbersome. You can now add complex preset filters to the selected objects with a single command by choosing it from the new '''Filters''' top-level menu. Submenus categorize the filters by function or appearance. 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 &amp;quot;...&amp;quot; at the end of the command in the menu). If the selected object already has some filter applied, the chosen filter will be merged with the existing filter for combined effect. &lt;br /&gt;
&lt;br /&gt;
You can easily add your own filters to these menus. Simply place any SVG file with the filters to the &amp;lt;code&amp;gt;filters&amp;lt;/code&amp;gt; subdirectory of your config directory (&amp;lt;code&amp;gt;~/.config/Inkscape/&amp;lt;/code&amp;gt; on Linux) and the filters will be picked up. By default, they will be placed in the Personal submenu under Effects &amp;gt; Filters. If you want to control this, add the following attributes to the &amp;lt;code&amp;gt;filter&amp;lt;/code&amp;gt; element:&lt;br /&gt;
&lt;br /&gt;
 inkscape:label         is the command label&lt;br /&gt;
 inkscape:menu          is the submenu to place the command into&lt;br /&gt;
 inkscape:menu-tooltip  is the tooltip (displayed in the statusbar &lt;br /&gt;
                        as you select the command)&lt;br /&gt;
&lt;br /&gt;
===''No Filters'' rendering mode===&lt;br /&gt;
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 its menu.  This provides an intermediate step between &amp;quot;normal&amp;quot; and &amp;quot;outline&amp;quot; view modes.&lt;br /&gt;
&lt;br /&gt;
The Toggle view command in the Display mode submenu (Ctrl+keypad 5) toggles between the outline view and either regular or no-filters view, depending on which was used most recent.&lt;br /&gt;
&lt;br /&gt;
===Filter quality setting===&lt;br /&gt;
&lt;br /&gt;
Instead of the 'blur quality' setting, Inkscape now has a general 'filter effects quality' setting. It affects all filters and gives you an opportunity to find optimum balance between speed and accuracy when rendering filters.&lt;br /&gt;
&lt;br /&gt;
==SVG support==&lt;br /&gt;
&lt;br /&gt;
===Optimized CSS properties===&lt;br /&gt;
&lt;br /&gt;
* As a file size optimization, Inkscape does not write into SVG some of the stroke properties if the object has &amp;lt;code&amp;gt;stroke:none&amp;lt;/code&amp;gt; and some of the fill properties when it has &amp;lt;code&amp;gt;fill:none&amp;lt;/code&amp;gt;. 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. &lt;br /&gt;
&lt;br /&gt;
: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.&lt;br /&gt;
&lt;br /&gt;
:Specifically, if stroke:none, the following properties do not get written to SVG:&lt;br /&gt;
&lt;br /&gt;
 stroke-width&lt;br /&gt;
 stroke-linecap&lt;br /&gt;
 stroke-linejoin&lt;br /&gt;
 stroke-miterlimit&lt;br /&gt;
 stroke-opacity&lt;br /&gt;
 stroke-dasharray&lt;br /&gt;
 stroke-dashoffset&lt;br /&gt;
&lt;br /&gt;
:Note that this does not include marker properties, which means you can still have markers on a path without visible stroke.&lt;br /&gt;
&lt;br /&gt;
:If fill:none, the following properties do not get written to SVG:&lt;br /&gt;
&lt;br /&gt;
 fill-opacity&lt;br /&gt;
 fill-rule&lt;br /&gt;
&lt;br /&gt;
*The &amp;lt;code&amp;gt;opacity&amp;lt;/code&amp;gt; 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).&lt;br /&gt;
&lt;br /&gt;
*The &amp;lt;code&amp;gt;marker-start&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;marker-mid&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;marker-end&amp;lt;/code&amp;gt; properties are not written if the &amp;lt;code&amp;gt;marker&amp;lt;/code&amp;gt; property is already present with the same value.&lt;br /&gt;
&lt;br /&gt;
===Optimized path data===&lt;br /&gt;
&lt;br /&gt;
In this version, the size of the path data written in the &amp;lt;code&amp;gt;d=&amp;lt;/code&amp;gt; attribute of &amp;lt;code&amp;gt;path&amp;lt;/code&amp;gt; elements is reduced by about 10%. Inkscape generates the shortest possible path strings by avoiding repeated operators and using relative coordinates (when it helps).&lt;br /&gt;
&lt;br /&gt;
This is controlled by the '''SVG output''' page of Inkscape Preferences dialog, as well as the following attributes in &amp;lt;code&amp;gt;group id=&amp;quot;svgoutput&amp;quot;&amp;lt;/code&amp;gt; in your preferences.xml file:&lt;br /&gt;
&lt;br /&gt;
* allowrelativecoordinates (default 1) to switch relative coordinates on (1) or off (0)&lt;br /&gt;
* forcerepeatcommands (default 0) to force repeating operators (1) or allow use of the more compact representation without repeated operators (0)&lt;br /&gt;
&lt;br /&gt;
===No more explicit closing line segment===&lt;br /&gt;
Inkscape used to always explicitly write the closing line segment to SVG for closed paths. For example: &amp;quot;M 0,0 L 1,0 L 1,1 L 0,1 L 0,0 z&amp;quot;. With the improved SVG path data writing, Inkscape no longer generates this closing line segment, resulting in &amp;quot;M 0,0 L 1,0 L 1,1 L 0,1 z&amp;quot;.&lt;br /&gt;
When SVG path data input contains this explicit closing segment, it is maintained throughout transformations, but is removed after using the node edit tool.&lt;br /&gt;
[this seems no longer to be true, fix it!!! -johan]&lt;br /&gt;
&lt;br /&gt;
===Horizontal and vertical path segments===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;script&amp;gt; tag preserved===&lt;br /&gt;
&lt;br /&gt;
While Inkscape does not yet support SVG scripting via the &amp;lt;script&amp;gt; element, this element is now preserved after editing the file in Inkscape.&lt;br /&gt;
&lt;br /&gt;
===Initial SVG Fonts support===&lt;br /&gt;
&lt;br /&gt;
As a SoC 2008 project, JucaBlues implemented initial parsing and rendering of [http://www.w3.org/TR/SVG11/fonts.html SVG Fonts].&lt;br /&gt;
You can design fonts within Inkscape, but using them to render text on the canvas is not yet supported. Currently the main benefit of this feature is to improve the font design workflow when working with FontForge: you only need one file per font instead of one file per glyph.&lt;br /&gt;
&lt;br /&gt;
You can open the SVG Font dialog through Text-&amp;gt;SVG Fonts menu option.&lt;br /&gt;
&lt;br /&gt;
===SVG Test Suite Compliance===&lt;br /&gt;
&lt;br /&gt;
[describe what has been improved over 0.46 and point to recent test result website]&lt;br /&gt;
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 list] for up-to-date rendering results. Also see [[TestingInkscape]] for information on running and creating rendering tests.&lt;br /&gt;
&lt;br /&gt;
List of render test changes with respect to 0.46:&lt;br /&gt;
...[files which failed on 0.46 and now pass, and vice versa]&lt;br /&gt;
&lt;br /&gt;
==Editing Aids==&lt;br /&gt;
&lt;br /&gt;
===Grids===&lt;br /&gt;
* The dotted rectangular grid now shows small crosses at the intersection points of emphasis lines.&lt;br /&gt;
&lt;br /&gt;
===Guides===&lt;br /&gt;
&lt;br /&gt;
* Guides can now be rotated using the mouse. Each guide has an anchor that determines the point around which it rotates.&lt;br /&gt;
* There is now an option to treat groups as single objects during conversion to guides (as opposed to converting each object inside the group separately).&lt;br /&gt;
&lt;br /&gt;
===Snapping===&lt;br /&gt;
&lt;br /&gt;
The code relating to the snapping mechanisms has undergone major changes to make it more reliable and easier to use from a developer's perspective. Snapping to objects now invokes routines from the 2geom library, which is actively maintained and less error prone than the old Livarot library. This fixes at least two known snapping bugs.&lt;br /&gt;
&lt;br /&gt;
There is a new toolbar to control the snapping options and modes. Use View &amp;gt; Show/Hide &amp;gt; Snap controls bar to show or hide this toolbar. To control some other new snapping features, a dedicated tab has been created in the preferences dialog. The new features found on this tab are:&lt;br /&gt;
* '''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&lt;br /&gt;
* '''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. &lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
Other improvements are:&lt;br /&gt;
* 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. It is now also possible to snap while moving nodes along a vertical or horizontal constraint.&lt;br /&gt;
* In the document properties dialog, the checkbox for &amp;quot;always snap&amp;quot; has been replaced by two radiobuttons; this should eliminate most of the confusion surrounding this option.&lt;br /&gt;
* Holding the Shift key now also disables snapping while dragging node handles, and while creating single dots&lt;br /&gt;
* During constrained drawing (using Ctrl), Inkscape will now only snap to the points on the constrained line.&lt;br /&gt;
* In the selector tool, snapping while skewing or moving with a constraint (with Ctrl) has been improved.&lt;br /&gt;
&lt;br /&gt;
Inkscape now also considers the following objects for snapping:&lt;br /&gt;
* Clipping paths and masks&lt;br /&gt;
* Midpoints of line segments&lt;br /&gt;
* Midpoints of bounding box edges&lt;br /&gt;
* Page border&lt;br /&gt;
* Intersections of any kind of paths&lt;br /&gt;
* Smooth nodes&lt;br /&gt;
* Cusp nodes&lt;br /&gt;
* Each of the handle points when creating new shapes&lt;br /&gt;
* Single dots&lt;br /&gt;
&lt;br /&gt;
==Other features==&lt;br /&gt;
&lt;br /&gt;
===Spell checker===&lt;br /&gt;
&lt;br /&gt;
There's now a built-in spell checker. Press '''Ctrl+Alt+K''' or choose ''Text &amp;gt; 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. &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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&lt;br /&gt;
document. &lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
===Desktop integration improvements===&lt;br /&gt;
&lt;br /&gt;
* '''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).&lt;br /&gt;
&lt;br /&gt;
* '''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).&lt;br /&gt;
&lt;br /&gt;
* '''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]].&lt;br /&gt;
&lt;br /&gt;
===Shell mode===&lt;br /&gt;
&lt;br /&gt;
TODO: if it is intended for scripts, why does it spam the console so much? It should only print anything when there are errors. --[[User:Tweenk|Tweenk]] 00:04, 27 February 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
If you run inkscape with &amp;lt;code&amp;gt;--shell&amp;lt;/code&amp;gt;, 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:&lt;br /&gt;
&lt;br /&gt;
 $ inkscape --shell&lt;br /&gt;
 Inkscape 0.46+devel interactive shell mode. Type 'quit' to quit.&lt;br /&gt;
 &amp;gt;file.svg --export-pdf=file.pdf&lt;br /&gt;
 &amp;gt;otherfile.svg --export-png=bitmap.png&lt;br /&gt;
 Background RRGGBBAA: ffffff00&lt;br /&gt;
 Area 0:0:744.094:1052.36 exported to 744 x 1052 pixels (90 dpi)&lt;br /&gt;
 Bitmap saved as: bitmap.png&lt;br /&gt;
 &amp;gt;quit&lt;br /&gt;
&lt;br /&gt;
===Gesture-based stroke width adjustment===&lt;br /&gt;
&lt;br /&gt;
Similar to editing the fill or stroke colors by dragging away from the swatch in the status bar, which was added in the last version, 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 twice the original width), dragging below it decreases the width (down to half the original width). With this feature, quick and precise stroke width adjustments are possible without opening any dialogs or menus.&lt;br /&gt;
&lt;br /&gt;
===Enhanced tablet support===&lt;br /&gt;
&lt;br /&gt;
====Input device tool switching====&lt;br /&gt;
&lt;br /&gt;
Tablets and other input devices that report separate hardware are now recognized and current tool and/or settings can be set to switch in response to the physical tool being used.&lt;br /&gt;
&lt;br /&gt;
====Extended input device configuration====&lt;br /&gt;
&lt;br /&gt;
The stock Input Devices dialog has been replaced with a completely redone version that provides a more useful representation of settings. It also contains a simple area for testing different inputs of different devices.&lt;br /&gt;
&lt;br /&gt;
Additionally hardware setup itself has been separated from general settings to allow for easier dynamic switching of settings appropriate to the task at hand.&lt;br /&gt;
&lt;br /&gt;
===Layers===&lt;br /&gt;
&lt;br /&gt;
The Layers dialog now allows for hiding or showing all layers other than the current layer. This &amp;quot;solo&amp;quot; feature allows for faster switching between working layers and for quick checking with and without others shown.&lt;br /&gt;
&lt;br /&gt;
A new command, '''Duplicate Layer''', has been added to the Layers menu to allow for duplicating an existing layer with all of its objects (even hidden or locked objects) and any sub-layers.&lt;br /&gt;
&lt;br /&gt;
The New Layer dialog can be opened with '''Ctrl+Shift+N''' shortcut.&lt;br /&gt;
&lt;br /&gt;
Layer names can now be non-unique.&lt;br /&gt;
&lt;br /&gt;
Several layer-handling inconsistencies have been fixed.&lt;br /&gt;
&lt;br /&gt;
===Linked bitmaps===&lt;br /&gt;
Linked bitmaps have a context menu option to launch editing in an external application. Linked images now will reload when the linked file changes on disk. Both the external editor application and the reload behavior is configurable.&lt;br /&gt;
&lt;br /&gt;
===Command for relinking clones===&lt;br /&gt;
&lt;br /&gt;
A new command, '''Relink Clone to Copied''' in ''Edit &amp;gt; 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.&lt;br /&gt;
&lt;br /&gt;
===Automatic relinking of clones on Duplicate===&lt;br /&gt;
&lt;br /&gt;
If you turn on the '''When duplicating original+clones: Relink duplicated clones''' option on 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.&lt;br /&gt;
&lt;br /&gt;
===Pattern editing===&lt;br /&gt;
&lt;br /&gt;
When editing pattern fills:&lt;br /&gt;
* The pattern origin and scale handles now snap.&lt;br /&gt;
* The pattern scaling can now be different in X and Y direction. Press '''Ctrl''' to have a fixed 1:1 ratio scaling (old behavior).&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
===Transform dialog: spacing out option===&lt;br /&gt;
&lt;br /&gt;
TODO: is this feature really useful? It will look like a bug. --[[User:Tweenk|Tweenk]] 00:04, 27 February 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Previously, the '''Apply to each object separately''' checkbox had no effect for the '''Move''' tab. Now, if several objects are selected, this checkbox is on, and &amp;quot;Relative move&amp;quot; is on, each object is shifted relative to the closest selected object on the left (for X) or below (for Y). &lt;br /&gt;
&lt;br /&gt;
For example, if you have a horizontal row of objects and you move them relatively by x = 5 px with &amp;quot;Apply to each object separately&amp;quot; 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).&lt;br /&gt;
&lt;br /&gt;
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. Order of selecting the objects or z-order does not matter.&lt;br /&gt;
&lt;br /&gt;
===Converting text to path produces a group===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
===Combine works on groups===&lt;br /&gt;
&lt;br /&gt;
The Combine command now works transparently on groups, i.e. combines paths inside selected groups at any level of grouping.&lt;br /&gt;
&lt;br /&gt;
===Path exclusion===&lt;br /&gt;
The Exclusion boolean operation can now operate on an arbitrary number of paths.&lt;br /&gt;
&lt;br /&gt;
==User interface==&lt;br /&gt;
&lt;br /&gt;
===Inkscape Preferences dialog===&lt;br /&gt;
&lt;br /&gt;
* 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), and '''SVG Output''' (options for SVG formatting, introduced in 0.46 and now editable from the dialog as well). &lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
* '''Zoom correction factor''': the Interface tab has an adjustable ruler. Move the slider until the ruler's on-screen size matches its true size. This is used as a reference point for 100% (original size) zoom.&lt;br /&gt;
&lt;br /&gt;
* The application's interface language can be set from the preferences dialog. You'll have to restart Inkscape to see the changes.&lt;br /&gt;
&lt;br /&gt;
===Toolbars===&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
* The main tools toolbar has been converted to a standard GtkToolbar, removing the problem of it pushing the main window taller. Tools that don't fit automatically flow into a popup menu.&lt;br /&gt;
* 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.&lt;br /&gt;
* 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 much precision, this makes adjusting them much easier and faster.&lt;br /&gt;
&lt;br /&gt;
===Clone/original visualization===&lt;br /&gt;
&lt;br /&gt;
When you press Shift+D to find and select the original of the selected clone, Inkscape draws a dashed line between the centers of the bounding boxes of the clone and the original. This line disappears after one second.&lt;br /&gt;
&lt;br /&gt;
===Miscellaneous===&lt;br /&gt;
* The Windows builds of Inkscape now have Windows-native file dialogs to keep consistency with other Windows applications.&lt;br /&gt;
* The file dialogs have two new entries in the File type list, All Bitmaps and All Vectors, allowing you to limit the listing to bitmap or vector formats only.&lt;br /&gt;
* In the Align and Distribute dialog there is now an option to treat all selected objects as a group when aligning. This spares the trouble of manually grouping them, aligning, and ungrouping afterwards).&lt;br /&gt;
* The confusing icons on buttons in the controls bar of the Dropper tool (pick/assign opacity) are replaced by text labels.&lt;br /&gt;
* The Document Properties dialog now has a Color Management tab. In this new tab, you can declare multiple ICC color profiles for the current document.&lt;br /&gt;
* 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 is difficult.&lt;br /&gt;
* Title and Description fields in the Object Properties dialog [sas]&lt;br /&gt;
&lt;br /&gt;
==Notable bug fixes==&lt;br /&gt;
&lt;br /&gt;
* 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. &lt;br /&gt;
&lt;br /&gt;
* Inkscape is now able to handle paths with only 'movetos', i.e. &amp;quot;M 0,0 M 1,1 M 2,2&amp;quot;. These kind of paths can be used to only show markers on a path without the rest of the path visible.&lt;br /&gt;
&lt;br /&gt;
* 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 &amp;quot;Filter general settings&amp;quot; tab of the Filter Effects dialog.&lt;br /&gt;
&lt;br /&gt;
: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.&lt;br /&gt;
&lt;br /&gt;
* Bounding box calculation does not include the invisible objects. [https://bugs.launchpad.net/inkscape/+bug/252547 bug #252547]&lt;br /&gt;
&lt;br /&gt;
* Several fixes allows Inkscape to correctly render and edit SVG files that use &amp;lt;code&amp;gt;currentColor&amp;lt;/code&amp;gt; in objects' style (this includes files created by gnuplot).&lt;br /&gt;
&lt;br /&gt;
* '''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.&lt;br /&gt;
&lt;br /&gt;
* File dialogs remember last visited directory.&lt;br /&gt;
&lt;br /&gt;
* The --vacuum-defs command line parameter erroneously deleted markers which are in use.&lt;br /&gt;
&lt;br /&gt;
* No more garbage lines in outline mode.&lt;br /&gt;
&lt;br /&gt;
* No more artifacts left by the circle cursor in Tweak tool.&lt;br /&gt;
&lt;br /&gt;
* The Live Path Effects '''Bend Path''' and '''Pattern along Path''' now work correctly with closed paths.&lt;br /&gt;
&lt;br /&gt;
* Several '''[[ViewBoxToDo|viewBox]]''' related bugs fixed&lt;br /&gt;
** 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]&lt;br /&gt;
** Resizing the page adjusts viewBox. [https://bugs.launchpad.net/inkscape/+bug/167682 bug #167682]&lt;br /&gt;
** preserveAspectRatio parsing code fixed. [https://bugs.launchpad.net/inkscape/+bug/166885 bug #166885]&lt;br /&gt;
&lt;br /&gt;
* open paths (as opposed to closed paths) are now correctly drawn when start and end points are equal. (SVG test suite ''paths-data-10-t.svg'')&lt;br /&gt;
&lt;br /&gt;
* The shorthand 'marker' property is now correctly interpreted (SVG test suite ''painting-marker-03-f.svg'')&lt;br /&gt;
&lt;br /&gt;
* Coordinates and lengths specified in percentages are now correctly interpreted (SVG test suite ''coords-units-02-b.svg'')&lt;br /&gt;
&lt;br /&gt;
==Previous releases==&lt;br /&gt;
&lt;br /&gt;
* [[ReleaseNotes046]]&lt;br /&gt;
* [[ReleaseNotes045]]&lt;br /&gt;
* [[ReleaseNotes044]]&lt;br /&gt;
* [[ReleaseNotes043]]&lt;br /&gt;
* [[ReleaseNotes042]]&lt;br /&gt;
* [[ReleaseNotes041]]&lt;br /&gt;
* [[ReleaseNotes040]]&lt;br /&gt;
* [[ReleaseNotes039]]&lt;br /&gt;
* [[ReleaseNotes038]]&lt;br /&gt;
* [[ReleaseNotes037]]&lt;br /&gt;
* [[ReleaseNotes036]]&lt;br /&gt;
* [[ReleaseNotes035]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Marketing]]&lt;/div&gt;</summary>
		<author><name>AurelioAHeckert</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Google_Summer_of_Code_2008&amp;diff=39844</id>
		<title>Google Summer of Code 2008</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Google_Summer_of_Code_2008&amp;diff=39844"/>
		<updated>2008-12-02T16:05:30Z</updated>

		<summary type="html">&lt;p&gt;AurelioAHeckert: /* Suggested Ideas */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Welcome to Inkscape! =&lt;br /&gt;
&lt;br /&gt;
We've mentored about half a dozen students a year since GSoC started.  Many students enjoyed their work and continue to be involved; perhaps your mentor will be a past GSoC student!  We have a high rate of acceptance of student code into the core codebase. Indeed, GSoC projects have been a key source of some of Inkscape's best features in the past several releases.&lt;br /&gt;
&lt;br /&gt;
The Inkscape team plans to focus this summer on codebase cleanup and refactoring.  This will affect the type of projects we can accept this year; we're looking for ones that either won't affect core code too significantly (such as Extension scripts, or File Input/Output formats) or that would actually result in improving the state of the codebase (adding tests, modularization, etc.).  Students who have already been active developers in Inkscape previously will be allowed more latitude to work on core code (particularly if it will result in cleanup/refactoring of their past work).&lt;br /&gt;
&lt;br /&gt;
= Student Applications =&lt;br /&gt;
&lt;br /&gt;
* Google program information&lt;br /&gt;
** Summer of Code Application form&lt;br /&gt;
* Inkscape-specific information&lt;br /&gt;
** [[SOC Application Template]]&lt;br /&gt;
** [[Roadmap | Inkscape Roadmap]] - to see our overall objectives&lt;br /&gt;
** [[SOC Writing Project Proposals]] - some guidelines for proposals&lt;br /&gt;
** [[SOC Selection Criteria]] - how we rate applications&lt;br /&gt;
&lt;br /&gt;
= Suggested Ideas =&lt;br /&gt;
&lt;br /&gt;
* [https://blueprints.launchpad.net/inkscape/+spec/test-suite Inkscape test suite]&lt;br /&gt;
* Python extensions test suite&lt;br /&gt;
* Python effects/extension scripts&lt;br /&gt;
* New file import or export support&lt;br /&gt;
* [https://blueprints.launchpad.net/inkscape/+spec/lib2geom-integration Integrate lib2geom] - &lt;br /&gt;
* [https://blueprints.launchpad.net/inkscape/+spec/xar-to-svg-converter xar-to-svg converter] - Converter for Xara Xtreme to Inkscape&lt;br /&gt;
* [https://blueprints.launchpad.net/inkscape/+spec/new-from-template-dialog 'New From Template' dialog]&lt;br /&gt;
* [https://blueprints.launchpad.net/inkscape/+spec/lpe-blueprint More Live Path Effects] - There is a lengthy list of ideas to choose from here.&lt;br /&gt;
* [https://blueprints.launchpad.net/inkscape/+spec/kml-svg-translation KML SVG translation] - For use of Inkscape with Google Earth or Maps&lt;br /&gt;
* [https://blueprints.launchpad.net/inkscape/+spec/kidscape-project kidscape] - Condensed version of Inkscape aimed at young kids and small form factor devices&lt;br /&gt;
* [https://blueprints.launchpad.net/inkscape/+spec/cutter-control Cutter control] - Enable Inkscape's use with vinyl cutters.&lt;br /&gt;
* [https://blueprints.launchpad.net/inkscape/+spec/icc-for-cairo ICC Color Management for cairo outputs] - Would allow Inkscape to produce CMYK PDFs and PSs with Cairo.&lt;br /&gt;
* [https://blueprints.launchpad.net/inkscape/+spec/guides-improvement Guides Improvements]&lt;br /&gt;
* [https://blueprints.launchpad.net/inkscape/+spec/transformation-anchors Transformation Anchors]&lt;br /&gt;
* Add a palette of objects to Inkscape. Such a palette would contain often used objects and would allow categorizing such objects. Examples of categories: UML, electric, network.&lt;br /&gt;
* [https://blueprints.launchpad.net/inkscape/+spec/power-stroke Power Stroke] - Modulated width stroke LPE.&lt;br /&gt;
&lt;br /&gt;
* [http://bugzilla.gnome.org/show_bug.cgi?id=496958 Tablet on windows] - Fix up tablet support on windows.&lt;br /&gt;
&lt;br /&gt;
Please do not feel limited to the above ideas - some of our best contributions have been unique ideas that students had in mind from other sources!&lt;br /&gt;
&lt;br /&gt;
For more ideas, please see https://blueprints.launchpad.net/inkscape/&lt;/div&gt;</summary>
		<author><name>AurelioAHeckert</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Extension_repository&amp;diff=35244</id>
		<title>Extension repository</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Extension_repository&amp;diff=35244"/>
		<updated>2008-08-25T18:48:54Z</updated>

		<summary type="html">&lt;p&gt;AurelioAHeckert: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;It would be very useful to have a central Internet repository for Inkscape extensions, similarly as Firefox has. This way, Inkscape could update installed extensions from the web site, with no need for the user to know if an extension is updated.&lt;br /&gt;
&lt;br /&gt;
== Extensions ==&lt;br /&gt;
&lt;br /&gt;
'''What extensions are there? We can start listing them here:'''&lt;br /&gt;
* [http://www.ekips.org/comp/inkscape/ Inkscape Effects] - Aaron Spikes set of extensions is now included in Inkscape.&lt;br /&gt;
* [[ExtrudeEffect]] - extrude polygons to &amp;quot;3d&amp;quot;, also make &amp;quot;string art&amp;quot;&lt;br /&gt;
* [http://www.colibre.com.br/bin/view/Aurium/InkscapeCalendarShellScript InkscapeCalendarShellScript] - Create Calendars sucks or is impracticable if you do not have something that automatizes the process of to put the days organized in blocks of months to you. To format manually is easy, but this extension can help you on this too [Bash script, works for win32 with cygwin].&lt;br /&gt;
* [http://www.colibre.com.br/bin/view/Aurium/InkscapeAreaCuter InkscapeAreaCutter] - For Webdesigners, layout for sites, slice area into .png images. util! (pt_BR)&lt;br /&gt;
* [http://julvitard.free.fr/eqtexsvg/ EQTeXSVG] - EQTeXSVG is an extension for Inkscape used to convert an inline LATEX equation into SVG path using Python.&lt;br /&gt;
* [http://www.kono.cis.iwate-u.ac.jp/~arakit/inkscape/inklatex.html InkLaTeX] Insert LaTeX text or equations into Inkscape.&lt;br /&gt;
* [http://www.iki.fi/pav/software/textext/ TexText] Embed re-editable LaTeX objects in SVG drawings.&lt;br /&gt;
* [http://math.univ-lille1.fr/~barraud/Inkscape/pathdeform/ PathDeform] - Here is an Inkscape extension whose purpose is to bend a path according to another one. Note: it was added to Inkscape 0.45 as &amp;quot;Pattern along Path&amp;quot;.&lt;br /&gt;
* [http://www.inkbar.lineaire.net/ InkBar] - This is an Inkscape extension whose purpose is to draw EAN13 bar code.&lt;br /&gt;
* [http://technoargia.free.fr/swftools/ SWF output] - A little extension to save as Swf from Inkscape.&lt;br /&gt;
* [http://www.colivre.coop.br/Aurium/Puff Puff] - Fluffs elements! :-D&lt;br /&gt;
* [http://www.colivre.coop.br/Aurium/InkSudoku Sudoku Generator] - Generates Sudoku square with the solution ''(in a small square if you want)''.&lt;br /&gt;
* [[CalligraphedOutlineFill]] - helps to fill in the inside area of shapes drawn with the Calligraphy tool&lt;br /&gt;
* [http://edlab.die.unipd.it/Site4.html SlotStar] - helps to draw the star of slot of a winding of an electrical machine&lt;br /&gt;
* [http://richard.henwood.googlepages.com/inkscapelatexextension inkscapeLatexExtension] - Extract text in an inkscape drawing to a latex picture environment.&lt;br /&gt;
* [http://saws.googlecode.com s.a.w.s] - export the svg Inkscape file in valid xhtml / css files.&lt;br /&gt;
* [http://www.colivre.coop.br/Aurium/InkscapeGenerator Generator] - replace text and data to automatic generate files done for usage (like PDF, PS, JPG, etc...), based in a SVG template and a data file.&lt;br /&gt;
&lt;br /&gt;
'''For Programmers:'''&lt;br /&gt;
* [http://www.colivre.coop.br/bin/view/Aurium/RubyInk RubyInk] - Inkscape extension with Ruby&lt;br /&gt;
* [http://www.colivre.coop.br/bin/view/Aurium/InkBash Ink-Bash] - &amp;lt;nowiki&amp;gt;ShellScript&amp;lt;/nowiki&amp;gt; Forever!&lt;br /&gt;
* [http://www.colivre.coop.br/bin/view/Aurium/InkMoz InkMoz] - the Bridge from Inkscape to Mozilla (Inkscape extension with Javascript and more)&lt;br /&gt;
&lt;br /&gt;
== The Repository Specification ==&lt;br /&gt;
&lt;br /&gt;
A website where programmers can publish their extensions, users can search by that, and an update program can access this updates.&lt;br /&gt;
&lt;br /&gt;
=== The Website ===&lt;br /&gt;
&lt;br /&gt;
Must Have:&lt;br /&gt;
* '''User Registration''': to allow upload, votes and comments&lt;br /&gt;
* '''Extension Validation''': when published, it is public, but the user must be notified that was not validated (the code must be viewed by an validator user). The software updater do not update non-validated versions.&lt;br /&gt;
** '''Validation Feedback''': the validator user must write why the extension was not validated.&lt;br /&gt;
** '''Extension Deletion''': the validator user can delete an extension or version when he found a malicious code. The upload user must be marked as a malicious user and the account must be blocked.&lt;br /&gt;
* '''Extension Search''': with filter, by any available data.&lt;br /&gt;
* '''User Votes and Comments for Extensions''': The user can vote and/or comment an extension version.&lt;br /&gt;
* '''Extension Bug-Traker''': today, third part extensions are in simple web-pages. The site may have a Bug-Traker to help all little scripts.&lt;br /&gt;
* '''User Extensions Requests''': a lot of users have ideas. Here is a good place for programers see and make that alive.&lt;br /&gt;
* '''Host a cool page for the extension''': allow introduction text, documenbtation, screenshots, examples, and '''i18n'''!&lt;br /&gt;
* '''Help the l10n of this extensions''': with a web interface, like pootle and provide the l10n file for the updater program.&lt;br /&gt;
* '''Provide Version Control''': A SVN account will be cool, but web uploads (by web-forms) can be transparently SVN commits.&lt;br /&gt;
&lt;br /&gt;
=== The Extension Meta-Data ===&lt;br /&gt;
&lt;br /&gt;
''The data in INX file and more some, like the O.S. and Inkscape version compatibility...''&lt;br /&gt;
&lt;br /&gt;
The INX file will define the meta-data settable by that. If some extension uses multiples INX files to have more than one option in the menu, all INX files must be read to set the meta-data. The meta-data will be cached in a database to help the search. The DB only need the meta-data of the last validated version and the last non-validated (if that is newer).&lt;br /&gt;
&lt;br /&gt;
=== The Update Program ===&lt;br /&gt;
&lt;br /&gt;
* '''Search for New Extensions''': when the user request&lt;br /&gt;
* '''Update Extensions''': search for updates and install that&lt;br /&gt;
* '''Help the Code Validation''': for advanced users. Show the extension code and the diff if is that an update.&lt;br /&gt;
* '''Help the User Bug-Reporting''': that is not working! The user must say now! ''(When the Update Program be part of the Inkscape, the error window can have a button to submit a bug-report)''&lt;br /&gt;
* '''Must test the extension dependencies''': the user must know what is needed to install before try to use.&lt;br /&gt;
&lt;br /&gt;
== Name Proposal ==&lt;br /&gt;
&lt;br /&gt;
Propose a name for the Inkscape Extension Repository:&lt;br /&gt;
&lt;br /&gt;
* '''The Factory'''&lt;br /&gt;
* '''Extension Factory'''&lt;br /&gt;
* '''INX Factory'''&lt;br /&gt;
&lt;br /&gt;
''Why Factory? Because it is not only a repository. ;-)''&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer Documentation]]&lt;br /&gt;
[[Category:Extensions]]&lt;/div&gt;</summary>
		<author><name>AurelioAHeckert</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Extension_repository&amp;diff=35234</id>
		<title>Extension repository</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Extension_repository&amp;diff=35234"/>
		<updated>2008-08-25T18:37:48Z</updated>

		<summary type="html">&lt;p&gt;AurelioAHeckert: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;It would be very useful to have a central Internet repository for Inkscape extensions, similarly as Firefox has. This way, Inkscape could update installed extensions from the web site, with no need for the user to know if an extension is updated.&lt;br /&gt;
&lt;br /&gt;
== Extensions ==&lt;br /&gt;
&lt;br /&gt;
'''What extensions are there? We can start listing them here:'''&lt;br /&gt;
* [http://www.ekips.org/comp/inkscape/ Inkscape Effects] - Aaron Spikes set of extensions is now included in Inkscape.&lt;br /&gt;
* [[ExtrudeEffect]] - extrude polygons to &amp;quot;3d&amp;quot;, also make &amp;quot;string art&amp;quot;&lt;br /&gt;
* [http://www.colibre.com.br/bin/view/Aurium/InkscapeCalendarShellScript InkscapeCalendarShellScript] - Create Calendars sucks or is impracticable if you do not have something that automatizes the process of to put the days organized in blocks of months to you. To format manually is easy, but this extension can help you on this too [Bash script, works for win32 with cygwin].&lt;br /&gt;
* [http://www.colibre.com.br/bin/view/Aurium/InkscapeAreaCuter InkscapeAreaCutter] - For Webdesigners, layout for sites, slice area into .png images. util! (pt_BR)&lt;br /&gt;
* [http://julvitard.free.fr/eqtexsvg/ EQTeXSVG] - EQTeXSVG is an extension for Inkscape used to convert an inline LATEX equation into SVG path using Python.&lt;br /&gt;
* [http://www.kono.cis.iwate-u.ac.jp/~arakit/inkscape/inklatex.html InkLaTeX] Insert LaTeX text or equations into Inkscape.&lt;br /&gt;
* [http://www.iki.fi/pav/software/textext/ TexText] Embed re-editable LaTeX objects in SVG drawings.&lt;br /&gt;
* [http://math.univ-lille1.fr/~barraud/Inkscape/pathdeform/ PathDeform] - Here is an Inkscape extension whose purpose is to bend a path according to another one. Note: it was added to Inkscape 0.45 as &amp;quot;Pattern along Path&amp;quot;.&lt;br /&gt;
* [http://www.inkbar.lineaire.net/ InkBar] - This is an Inkscape extension whose purpose is to draw EAN13 bar code.&lt;br /&gt;
* [http://technoargia.free.fr/swftools/ SWF output] - A little extension to save as Swf from Inkscape.&lt;br /&gt;
* [http://www.colivre.coop.br/Aurium/Puff Puff] - Fluffs elements! :-D&lt;br /&gt;
* [http://www.colivre.coop.br/Aurium/InkSudoku Sudoku Generator] - Generates Sudoku square with the solution ''(in a small square if you want)''.&lt;br /&gt;
* [[CalligraphedOutlineFill]] - helps to fill in the inside area of shapes drawn with the Calligraphy tool&lt;br /&gt;
* [http://edlab.die.unipd.it/Site4.html SlotStar] - helps to draw the star of slot of a winding of an electrical machine&lt;br /&gt;
* [http://richard.henwood.googlepages.com/inkscapelatexextension inkscapeLatexExtension] - Extract text in an inkscape drawing to a latex picture environment.&lt;br /&gt;
* [http://saws.googlecode.com s.a.w.s] - export the svg Inkscape file in valid xhtml / css files.&lt;br /&gt;
* [http://www.colivre.coop.br/Aurium/InkscapeGenerator Generator] - replace text and data to automatic generate files done for usage (like PDF, PS, JPG, etc...), based in a SVG template and a data file.&lt;br /&gt;
&lt;br /&gt;
'''For Programmers:'''&lt;br /&gt;
* [http://www.colivre.coop.br/bin/view/Aurium/RubyInk RubyInk] - Inkscape extension with Ruby&lt;br /&gt;
* [http://www.colivre.coop.br/bin/view/Aurium/InkBash Ink-Bash] - &amp;lt;nowiki&amp;gt;ShellScript&amp;lt;/nowiki&amp;gt; Forever!&lt;br /&gt;
* [http://www.colivre.coop.br/bin/view/Aurium/InkMoz InkMoz] - the Bridge from Inkscape to Mozilla (Inkscape extension with Javascript and more)&lt;br /&gt;
&lt;br /&gt;
== The Repository Specification ==&lt;br /&gt;
&lt;br /&gt;
A website where programmers can publish their extensions, users can search by that, and an update program can access this updates.&lt;br /&gt;
&lt;br /&gt;
=== The Website ===&lt;br /&gt;
&lt;br /&gt;
Must Have:&lt;br /&gt;
* '''User Registration''': to allow upload, votes and comments&lt;br /&gt;
* '''Extension Validation''': when published, it is public, but the user must be notified that was not validated (the code must be viewed by an validator user). The software updater do not update non-validated versions.&lt;br /&gt;
** '''Validation Feedback''': the validator user must write why the extension was not validated.&lt;br /&gt;
** '''Extension Deletion''': the validator user can delete an extension or version when he found a malicious code. The upload user must be marked as a malicious user and the account must be blocked.&lt;br /&gt;
* '''Extension Search''': with filter, by any available data.&lt;br /&gt;
* '''User Votes and Comments for Extensions''': The user can vote and/or comment an extension version.&lt;br /&gt;
* '''Extension Bug-Traker''': today, third part extensions are in simple web-pages. The site may have a Bug-Traker to help all little scripts.&lt;br /&gt;
* '''User Extensions Requests''': a lot of users have ideas. Here is a good place for programers see and make that alive.&lt;br /&gt;
* '''Host a cool page for the extension''': allow introduction text, documenbtation, screenshots, examples, and '''i18n'''!&lt;br /&gt;
* '''Help the l10n of this extensions''': with a web interface, like pootle and provide the l10n file for the updater program.&lt;br /&gt;
* '''Provide Version Control''': A SVN account will be cool, but web uploads (by web-forms) can be transparently SVN commits.&lt;br /&gt;
&lt;br /&gt;
=== The Extension Meta-Data ===&lt;br /&gt;
&lt;br /&gt;
''The data in INX file and more some, like the O.S. and Inkscape version compatibility...''&lt;br /&gt;
&lt;br /&gt;
The INX file will define the meta-data settable by that. If some extension uses multiples INX files to have more than one option in the menu, all INX files must be read to set the meta-data. The meta-data will be cached in a database to help the search. The DB only need the meta-data of the last validated version and the last non-validated (if that is newer).&lt;br /&gt;
&lt;br /&gt;
=== The Update Program ===&lt;br /&gt;
&lt;br /&gt;
* '''Search for New Extensions''': when the user request&lt;br /&gt;
* '''Update Extensions''': search for updates and install that&lt;br /&gt;
* '''Help the Code Validation''': for advanced users. Show the extension code and the diff if is that an update.&lt;br /&gt;
* '''Help the User Bug-Reporting''': that is not working! The user must say now! ''(When the Update Program be part of the Inkscape, the error window can have a button to submit a bug-report)''&lt;br /&gt;
* '''Must test the extension dependencies''': the user must know what is needed to install before try to use.&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer Documentation]]&lt;br /&gt;
[[Category:Extensions]]&lt;/div&gt;</summary>
		<author><name>AurelioAHeckert</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Extension_repository&amp;diff=35224</id>
		<title>Extension repository</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Extension_repository&amp;diff=35224"/>
		<updated>2008-08-25T18:18:53Z</updated>

		<summary type="html">&lt;p&gt;AurelioAHeckert: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;It would be very useful to have a central Internet repository for Inkscape extensions, similarly as Firefox has. This way, Inkscape could update installed extensions from the web site, with no need for the user to know if an extension is updated.&lt;br /&gt;
&lt;br /&gt;
== Extensions ==&lt;br /&gt;
&lt;br /&gt;
'''What extensions are there? We can start listing them here:'''&lt;br /&gt;
* [http://www.ekips.org/comp/inkscape/ Inkscape Effects] - Aaron Spikes set of extensions is now included in Inkscape.&lt;br /&gt;
* [[ExtrudeEffect]] - extrude polygons to &amp;quot;3d&amp;quot;, also make &amp;quot;string art&amp;quot;&lt;br /&gt;
* [http://www.colibre.com.br/bin/view/Aurium/InkscapeCalendarShellScript InkscapeCalendarShellScript] - Create Calendars sucks or is impracticable if you do not have something that automatizes the process of to put the days organized in blocks of months to you. To format manually is easy, but this extension can help you on this too [Bash script, works for win32 with cygwin].&lt;br /&gt;
* [http://www.colibre.com.br/bin/view/Aurium/InkscapeAreaCuter InkscapeAreaCutter] - For Webdesigners, layout for sites, slice area into .png images. util! (pt_BR)&lt;br /&gt;
* [http://julvitard.free.fr/eqtexsvg/ EQTeXSVG] - EQTeXSVG is an extension for Inkscape used to convert an inline LATEX equation into SVG path using Python.&lt;br /&gt;
* [http://www.kono.cis.iwate-u.ac.jp/~arakit/inkscape/inklatex.html InkLaTeX] Insert LaTeX text or equations into Inkscape.&lt;br /&gt;
* [http://www.iki.fi/pav/software/textext/ TexText] Embed re-editable LaTeX objects in SVG drawings.&lt;br /&gt;
* [http://math.univ-lille1.fr/~barraud/Inkscape/pathdeform/ PathDeform] - Here is an Inkscape extension whose purpose is to bend a path according to another one. Note: it was added to Inkscape 0.45 as &amp;quot;Pattern along Path&amp;quot;.&lt;br /&gt;
* [http://www.inkbar.lineaire.net/ InkBar] - This is an Inkscape extension whose purpose is to draw EAN13 bar code.&lt;br /&gt;
* [http://technoargia.free.fr/swftools/ SWF output] - A little extension to save as Swf from Inkscape.&lt;br /&gt;
* [http://www.colivre.coop.br/Aurium/Puff Puff] - Fluffs elements! :-D&lt;br /&gt;
* [http://www.colivre.coop.br/Aurium/InkSudoku Sudoku Generator] - Generates Sudoku square with the solution ''(in a small square if you want)''.&lt;br /&gt;
* [[CalligraphedOutlineFill]] - helps to fill in the inside area of shapes drawn with the Calligraphy tool&lt;br /&gt;
* [http://edlab.die.unipd.it/Site4.html SlotStar] - helps to draw the star of slot of a winding of an electrical machine&lt;br /&gt;
* [http://richard.henwood.googlepages.com/inkscapelatexextension inkscapeLatexExtension] - Extract text in an inkscape drawing to a latex picture environment.&lt;br /&gt;
* [http://saws.googlecode.com s.a.w.s] - export the svg Inkscape file in valid xhtml / css files.&lt;br /&gt;
* [http://www.colivre.coop.br/Aurium/InkscapeGenerator Generator] - replace text and data to automatic generate files done for usage (like PDF, PS, JPG, etc...), based in a SVG template and a data file.&lt;br /&gt;
&lt;br /&gt;
'''For Programers:'''&lt;br /&gt;
* [http://www.colivre.coop.br/bin/view/Aurium/RubyInk RubyInk] - Inkscape extension with Ruby&lt;br /&gt;
* [http://www.colivre.coop.br/bin/view/Aurium/InkBash Ink-Bash] - &amp;lt;nowiki&amp;gt;ShellScript&amp;lt;/nowiki&amp;gt; Forever!&lt;br /&gt;
* [http://www.colivre.coop.br/bin/view/Aurium/InkMoz InkMoz] - the Bridge from Inkscape to Mozilla (Inkscape extension with Javascript and more)&lt;br /&gt;
&lt;br /&gt;
== The Repository Specification ==&lt;br /&gt;
&lt;br /&gt;
A website where programers can publish their extensions, users can search by that, and an update program can access this updates.&lt;br /&gt;
&lt;br /&gt;
=== The Website ===&lt;br /&gt;
&lt;br /&gt;
Must Have:&lt;br /&gt;
* '''User Registration''': to allow upload, votes and comments&lt;br /&gt;
* '''Extension Validation''': when published, it is public, but the user must be notified that was not validated (the code must be viewed by an validator user). The software updater do not update non-validated versions.&lt;br /&gt;
* '''Extension Search''': with filter, by any avaliable data.&lt;br /&gt;
* '''User Votes and Comments for Extensions''': The user can vote and/or comment an extension version.&lt;br /&gt;
* '''Extension Bug-Traker''': today, third part extensions are in simple web-pages. The site may have a Bug-Traker to help all little scripts.&lt;br /&gt;
* '''User Extensions Requests''': a lot of users have ideas. Here is a good place for programers see and make that alive.&lt;br /&gt;
* '''Host a cool page for the extension''': allow introduction text, documenbtation, screenshots, examples, and '''i18n'''!&lt;br /&gt;
* '''Help the l10n of this extensions''': with a web interface, like pootle and provide the l10n file for the updater program.&lt;br /&gt;
* '''Provide Version Control''': A SVN account will be cool, but web uploads (by web-forms) can be transparently SVN commits.&lt;br /&gt;
&lt;br /&gt;
=== The Extension Meta-Data ===&lt;br /&gt;
&lt;br /&gt;
''The data in INX file and more some, like the inkscape version...''&lt;br /&gt;
&lt;br /&gt;
=== The Update Program ===&lt;br /&gt;
&lt;br /&gt;
* '''Search for New Extensions''': when the user request&lt;br /&gt;
* '''Update Extensions''': search for updates and install that&lt;br /&gt;
* '''Help the Code Validation''': for advanced users. Show the extension code and the diff if is that an update.&lt;br /&gt;
* '''Help the User Bug-Reporting''': that is not working! The user must say now! ''(When the Update Program be part of the Inkscape, the error window can have a button to submit a bug-report)''&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer Documentation]]&lt;br /&gt;
[[Category:Extensions]]&lt;/div&gt;</summary>
		<author><name>AurelioAHeckert</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=User:AurelioAHeckert&amp;diff=35204</id>
		<title>User:AurelioAHeckert</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=User:AurelioAHeckert&amp;diff=35204"/>
		<updated>2008-08-25T17:31:40Z</updated>

		<summary type="html">&lt;p&gt;AurelioAHeckert: New page: Aurélio A. Heckert (aka '''Aurium''')  Web Site: http://Aurium.Colivre.coop.br  '''Programer and Artist''' -- '''Inkscape Extension Writer''' -- '''[http://inkscapebrasil.org InkscapeBras...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Aurélio A. Heckert (aka '''Aurium''')&lt;br /&gt;
&lt;br /&gt;
Web Site: http://Aurium.Colivre.coop.br&lt;br /&gt;
&lt;br /&gt;
'''Programer and Artist''' -- '''Inkscape Extension Writer''' -- '''[http://inkscapebrasil.org InkscapeBrasil.org] Founder and Member'''&lt;/div&gt;</summary>
		<author><name>AurelioAHeckert</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=BenutzerGalerien&amp;diff=16132</id>
		<title>BenutzerGalerien</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=BenutzerGalerien&amp;diff=16132"/>
		<updated>2007-08-24T18:33:29Z</updated>

		<summary type="html">&lt;p&gt;AurelioAHeckert: /* Clipart */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Urprungsfassung ==&lt;br /&gt;
&lt;br /&gt;
Englische Ursprungsfassung [[Galleries|hier]]&lt;br /&gt;
&lt;br /&gt;
== Galerien ==&lt;br /&gt;
&lt;br /&gt;
Füg hier einen Link zu deiner eigenen Inkscape-Galerie an&lt;br /&gt;
&lt;br /&gt;
* [http://commons.wikimedia.org/wiki/Category:SVG Kategorie:SVG im Wikimedia-Projekt]&lt;br /&gt;
&lt;br /&gt;
=== Clipart ===&lt;br /&gt;
* [http://openclipart.org Open Clip Art Library] (en)&lt;br /&gt;
* [http://edeca.net/site/graphics [[NauticalFlags]]] freie SVG-Flaggen (nautisches Alphabet; en)&lt;br /&gt;
* [http://inkscapeBrasil.org/.Galeria Inkscape Brasil Galeria (pt_BR)]&lt;br /&gt;
&lt;br /&gt;
=== Comics &amp;amp; Cartoons ===&lt;br /&gt;
* [http://www.poulejapon.com [[PouleJapon]]] täglicher Comic, gemacht mit Inkscape (en, fr, jap)&lt;br /&gt;
* [http://www.inkpipe.com Inkpipe.com] SVG-Cartoons und -Gekritzel (en)&lt;br /&gt;
* [http://www.xp-swiss.org/wiki/index.php?title=Comics_%28english%29 X-Coders] die XP-Swiss eXtreme Programming Cartoons (en)&lt;br /&gt;
* [http://lunar8.rydia.net/ Mental's Lunar 8 Comics] (en)&lt;br /&gt;
* [http://www.bakedbabies.com Baked Babies] (ein paar mit Inkscape erstellte Comics; WARNUNG: nicht für Kinder!; en)&lt;br /&gt;
* [http://thmayos.free.fr/inkscape/manga_inspiration.svgz Manga Inspiration] schnelle Zeichnung mit Inkscape 0.42 (SVG)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Artwork &amp;amp; Wallpapers ==&lt;br /&gt;
* [http://programmer-art.org/artwork Daniel G. Taylor's Art Page] (funktioniert wieder!; en)&lt;br /&gt;
* [http://www.le-radar.com/?art/galerie Cedric Gemy] (fr)&lt;br /&gt;
* [http://urke.deviantart.com/gallery/ Urke MMI] (en)&lt;br /&gt;
* [http://hooboo.free.fr/index.php franz. [[OpenOffice]].org Maskottchen] von Ben Bois, gemacht mit Inkscape (fr)&lt;br /&gt;
* [http://kde-look.org/content/show.php?content=16627 [[AmaroK]] Icon] KDE Artwork von Zekant (en)&lt;br /&gt;
* [http://kde-look.org/content/show.php?content=18204 Mupen64 Icon] KDE Artwork von Zekant (en)&lt;br /&gt;
* [http://www.volvoguy.net/ubuntu/ Ubuntu SVG Artwork] (en)&lt;br /&gt;
* [http://www.smartart.it/albums/wallpapers/abducted_1600x1200.sized.png Gentoo SVG Artwork] Wenn es sich bewegt, kompilier es!&lt;br /&gt;
* [http://www.kde-look.org/usermanager/search.php?username=salahuddin66 Großartige Wallpapers!] (en)&lt;br /&gt;
* [http://zvonsully.home.ro/ zvonSully Wallpapers] powered by Inkscape &amp;amp; SVG (en)&lt;br /&gt;
* [http://www.senses0.org.mv/popzees/artwork_white.html Artwork von Senses0 mit Inkscape] (en)&lt;br /&gt;
* [http://gatonegro.ceibes.org Gatonegro deseño - gatonegro.ceibes.org]  (gl)&lt;br /&gt;
* [http://sunedonath.de/bilder.htm Wallpaper von Sune Donath] inkl. SVG download (de)&lt;br /&gt;
''' SVG Artworks von mr.manders &lt;br /&gt;
http://pixel-pics.de/upload/1180029955.png[/img][/url]&lt;br /&gt;
http://pixel-pics.de/upload/1180030022.png[/img][/url]'''&lt;br /&gt;
&lt;br /&gt;
=== Künstler/innen, die Inkscape verwenden ===&lt;br /&gt;
* [http://www.dushkin.org/ Dushkin] ist ein Digital-Künstler des modernen Zeitalters. Die meisten seiner Werke sind mit Inkscape gemacht.&lt;br /&gt;
&lt;br /&gt;
=== Inkscapebezogenes ===&lt;br /&gt;
* [http://popolon.org/inkscape/ Popolon Inkscape Tutorials and Illustrationen] das meiste auf Französisch, manches auf Englisch oder Chinesisch&lt;br /&gt;
&lt;br /&gt;
=== Mit Inkscape erstellte Projekte ===&lt;br /&gt;
* [http://www.joncampbell.ca/inkscape/gallery.php Jon Campbell] Auswahl von mit Inkscape gemachten Projekten (en)&lt;br /&gt;
* [http://david.bellot.free.fr/svg-cards SVG-Spielkarten] (en)&lt;br /&gt;
* [http://nicubunu.ro/pictures/rpg/inkscape_rpg_map.png RPG-Landkarte] (Screenshot) von [http://nicubunu.ro/ Nicu Buculei]&lt;br /&gt;
* [http://www.coggy.de www.coggy.de / Webseite] (de)&lt;br /&gt;
&lt;br /&gt;
=== Andere ===&lt;br /&gt;
* [http://inkscape.deviantart.com/ inkscape.deviantart.com] die Inkscape-Gruppe auf deviantART 1 (en)&lt;br /&gt;
* [http://inkscapers.deviantart.com/ inkscapers.deviantart.com] die Inkscape-Gruppe auf deviantART 2 (en)&lt;br /&gt;
* [http://zubauza.deviantart.com/gallery zubauza's Galerie @ deviantART] (en)&lt;br /&gt;
* [[Haypo]] (en)&lt;br /&gt;
* [[simarilius]] (en)&lt;br /&gt;
* [[Jofo]] (en)&lt;br /&gt;
* [[Simondebelem]] (en)&lt;br /&gt;
* [[Gwyn]] (en)&lt;br /&gt;
* [http://www.insert.waw.net.pl/vector/firecat_large.jpg Piotr Kosmala]&lt;br /&gt;
* [http://erture.webpark.pl/vinci.html Radek Turek] (en)&lt;br /&gt;
* [http://haef.szm.sk/ Henrich Fichna] (en)&lt;br /&gt;
* [http://blog.die-scheiss-kiste.de/wordpress/ Andy's Blog] Blog; Inkscape ist eines der Themen, mit Beispielen und freien SVG-Downloads (de)&lt;br /&gt;
* [http://www.dirk-hoeschen.de/content/index.php?opi=view&amp;amp;id=8 Bevel Tutorial] Tutorial für Anfänger/innen über das Erzeugen von Schrägen-[[/Kanten]]-Effekten mittels Farbverläufen (de)&lt;br /&gt;
* [http://imaginaciongnu.tk Imaginación GNU] (esp)&lt;br /&gt;
&lt;br /&gt;
[[Category:German]]&lt;/div&gt;</summary>
		<author><name>AurelioAHeckert</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Galleries&amp;diff=16021</id>
		<title>Galleries</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Galleries&amp;diff=16021"/>
		<updated>2007-08-10T21:20:50Z</updated>

		<summary type="html">&lt;p&gt;AurelioAHeckert: /* Multiple-author galleries */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== localized versions ==&lt;br /&gt;
localized versions of that link list&lt;br /&gt;
* [[BenutzerGalerien|Benutzergalerien auf deutsch]]&lt;br /&gt;
&lt;br /&gt;
== Galleries ==&lt;br /&gt;
&lt;br /&gt;
=== Multiple-author galleries ===&lt;br /&gt;
&lt;br /&gt;
* [http://openclipart.org Open Clip Art Library]&lt;br /&gt;
* [http://InkscapeBrasil.org/.Galeria Inkscape Brasil Galeria]&lt;br /&gt;
* [http://commons.wikimedia.org/wiki/Category:Created_with_Inkscape Category:Created with Inkscape] at Wikimedia Commons contains thousands of Inkscape SVG images of all kinds&lt;br /&gt;
* [http://inkscape.deviantart.com/favourites/ inkscape.deviantart.com] The Inkscape group on deviantART&lt;br /&gt;
* [http://gould.cx/ted/ink-about/ Museum of Sodipodi and Inkscape About Screens]&lt;br /&gt;
&lt;br /&gt;
=== Single-author galleries ===&lt;br /&gt;
&lt;br /&gt;
* [http://manowarrior.deviantart.com/ ManoWarrior] Inkscape vectors by Luchezar Petkov&lt;br /&gt;
* [http://conichiwua.wordpress.com/ Conichiwua] - Inkscape art&lt;br /&gt;
* [http://www.ufowebfactory.net/download/free-svg_en.htm illustrations] and associated SVG files &lt;br /&gt;
* [http://www.revis.co.uk/site/?q=taxonomy/term/7 Inkscape animations] and CC licensed SVG source files, plus a gear making tutorial&lt;br /&gt;
* A tiny selection of [http://marksinkscape.blogspot.com/ Mark H's] inkscape pics.&lt;br /&gt;
* [http://www.jeromehouix.info/ Jiije] artworks by jiije&lt;br /&gt;
* [http://www.pictura4.1gb.at picturi,reproduceri,portrete]&lt;br /&gt;
* [http://www.dushkin.org/ Dushkin] is an artist of the digital age. A graduate of iidabashi hoikuen. Please be sure to leave a comment in his blog. Check out his gallery for the latest Inkscape creations.&lt;br /&gt;
* [[Haypo]]&lt;br /&gt;
* A few experimental Inkscape creations from [http://clik.to/cal Cal Russell-Thompson]; more on his [http://rubberkeith.deviantart.com DeviantART page].&lt;br /&gt;
* Dan Wells' beautiful gallery of Inkscape art is viewable [http://monkeydan1.deviantart.com here.]&lt;br /&gt;
* [http://lunar8.rydia.net/ Mental's Lunar 8 Comics]&lt;br /&gt;
* [[simarilius]]&lt;br /&gt;
* [http://www.le-radar.com/?art/galerie Cedric Gemy]&lt;br /&gt;
* [[Jofo]]&lt;br /&gt;
* [http://www.kde-look.org/usermanager/search.php?username=salahuddin66 Great Wallpapers!]&lt;br /&gt;
* [[Simondebelem]]&lt;br /&gt;
* [http://david.bellot.free.fr SVG-cards]&lt;br /&gt;
* [http://zubauza.deviantart.com/gallery zubauza's gallery @ deviantART]&lt;br /&gt;
* [[Gwyn]]&lt;br /&gt;
* [http://edeca.net/graphics.xml Free SVG nautical flags]&lt;br /&gt;
* [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.)&lt;br /&gt;
* [http://imaginaciongnu.iespana.es/ Imaginacion GNU] Artwork created with Inkscape by Daniel Cremades (Graphic designer, spanish)&lt;br /&gt;
* [http://www.bakedbabies.com Baked Babies] (a few comics created with inkscape WARNING: not for kids)&lt;br /&gt;
* [http://www.pictura4.1gb.at/portrete_in_creion_pe_hartie.html portrete la comanda in creion] (portraits by pictures)&lt;br /&gt;
* [http://kde-look.org/content/show.php?content=16627 AmaroK Icon], [http://kde-look.org/content/show.php?content=18204 Mupen64 Icon] KDE artwork by Zekant&lt;br /&gt;
* [http://www.insert.waw.net.pl/vector/firecat_large.jpg Piotr Kosmala]&lt;br /&gt;
* [http://erture.webpark.pl/vinci.html Radek Turek]&lt;br /&gt;
* [http://haef.szm.sk/ Henrich Fichna]&lt;br /&gt;
* [http://blog.die-scheiss-kiste.de/wordpress/ Andy's Blog] Blog german. Inkscape is one topic, w. Examples &amp;amp; free SVG Downloads.&lt;br /&gt;
* [http://hooboo.free.fr/index.php LaMouette] french OpenOffice.org Mascot by Ben Bois made with Inkscape&lt;br /&gt;
* [http://www.joncampbell.ca/inkscape/gallery.php Jon Campbell] Variety of projects done in inkscape&lt;br /&gt;
* [http://f-r-e-d.org/ Fred's SVG Wallpapers]&lt;br /&gt;
* [http://panzi.deviantart.com/gallery/ panzi.deviantArt.com] only some pictures are SVG (e.g. see: [http://www.deviantart.com/view/4617948/ my orc])&lt;br /&gt;
* [http://dump.c7.se/tribal.png Tribal tattoo drawn in Inkscape] ([http://c7.se/?entry=69 Result])&lt;br /&gt;
* [http://ggw.stfu.ee/ GeeksGoneWild] A webcomic drawn with inkscape&lt;br /&gt;
* [http://xterminador.deviantart.com/gallery/ xterminador.deviantart.com] Artwork by Xterminator at Deviantart Parental Advisory Explicit Content&lt;br /&gt;
* [http://www.braincud.com/ Brain Cud] A webcomic now drawn with Inkscape (starting with installment number 24).&lt;br /&gt;
* [http://popolon.org/inkscape/ popolon.org/inkscape/] Tutorial for Inkscape and pictures made with Inkscape, mostly in french some in english or chinese.&lt;br /&gt;
* [http://www.protemporeevents.com/larrys/ Larry's Main Entrance] A restaurant menu redesign project done in Inkscape!&lt;br /&gt;
* [http://yeknan.free.fr/blog/index.php?2006/03/22/74-galerie-svg yeKcim] Free SVG (Wormux, Crocobox, Mille bornes,...)&lt;br /&gt;
* [[Paramate]]&lt;br /&gt;
* [http://jhuss.com/download.php?list.3 jhuss's artwork] a some works, all made in inkscape&lt;br /&gt;
* [http://www.awns.com/galeri/ Galeri] A growing collection of colourful and stylish artwork. &lt;br /&gt;
* [http://blog.organicadtm.com/wp-gallery2.php OrganicaDTM Studio's gallery] Our projects are doing with Inkscape, Gimp and Blender.&lt;br /&gt;
*[http://www.freewaydesign.com/  freewaydesign] Dr-Hamza`s Blog  Misc. Designs&lt;br /&gt;
* [http://proximus1.deviantart.com/gallery/?catpath=digitalart/vector/&amp;amp;offset=0 Proximus1] Vector Artwork by Proximus1&lt;br /&gt;
* [http://singularityblues.com Singularity Blues] A webcomic done in Inkscape. SVG files available upon request.&lt;br /&gt;
*[http://hrum.deviantart.com/gallery ~hrum] Konstantin R. page on deviantart with pictures made in Inkscape (most of them) and GIMP&lt;br /&gt;
* [http://www.kde-files.org/index.php?xcontentmode=644 KDE-Files Inkscape directory] artwork by various contrubters, you can also upload your own work.&lt;br /&gt;
* [http://sunedonath.de/bilder.htm Sune Donath] anime wallpapers made with Inkscape incl. SVG download.&lt;br /&gt;
* [http://www.rammbauer.nl/?cat=3 Rayart Rammbauer] some poster and cartoons made with Inkscape&lt;br /&gt;
* [http://vorg.pl/design/tag/vector Vorg.pl] artwork by graphic designer Marcin Ignac&lt;br /&gt;
* [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  &lt;br /&gt;
* [http://www.alpha-release.com Alpha Release] an online comic under a Creative Commons license, drawn entirely in Inkscape&lt;br /&gt;
* [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.&lt;br /&gt;
* [http://mathburton.deviantart.com/ Mathburton] Inkscape vectors by James Avila&lt;br /&gt;
* [http://hamletoilcriceto.blogspot.com Hamleto Il Criceto] Italian online comic strips about an hamster called Hamleto entirely drawn in Inkscape&lt;br /&gt;
* [http://plurib.us/1shot/2007/svg_art/ Plurib.us SVG Art]  Gallery of Inkscape created SVG art (some CC licensed).&lt;br /&gt;
&amp;lt;!-- these sites not responding/working &lt;br /&gt;
* [http://gallery.crypt.cc Crypt.cc Gallery] artwork by J, others can also upload your own work to showcase here&lt;br /&gt;
* [http://programmer-art.org/artwork Daniel G. Taylor's Art Page]&lt;br /&gt;
* [http://gallery.urosevic.net/svg Urke MMI]&lt;br /&gt;
* [http://widdma.dyndns.org/wc/widdmoprev.html Widdmotions] (Not found) Smiley Set&lt;br /&gt;
* http://www.hinterlandcasa.it An Italian svg panels &amp;amp; buttons based site made with Inkscape.&lt;br /&gt;
* [http://www.grafixport.org/ grafixport] A new Forum for SVG and Inkscape Friends!&lt;br /&gt;
* [http://mathburton.deviantart.com/ Mathburton]  Inkscape vectors by James Avila&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add a link to your Inkscape gallery here!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:About Inkscape]]&lt;/div&gt;</summary>
		<author><name>AurelioAHeckert</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Extension_repository&amp;diff=14079</id>
		<title>Extension repository</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Extension_repository&amp;diff=14079"/>
		<updated>2007-04-08T02:33:37Z</updated>

		<summary type="html">&lt;p&gt;AurelioAHeckert: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;It would be very useful to have a central Internet repository for Inkscape extensions, similarly as Firefox has. This way, Inkscape could update installed extensions from the web site, with no need for the user to know if an extension is updated.&lt;br /&gt;
&lt;br /&gt;
What extensions are there? We can start listing them here:&lt;br /&gt;
* [http://www.ekips.org/comp/inkscape/ Inkscape Effects] - Aaron Spikes set of extensions is now included in Inkscape.&lt;br /&gt;
* [http://www.colibre.com.br/bin/view/Aurium/InkscapeCalendarShellScript InkscapeCalendarShellScript] - Create Calendars sucks or is impracticable if you do not have something that automatizes the process of to put the days organized in blocks of months to you. To format manually is easy, but this extension can help you on this too [Bash script, works for win32 with cygwin].&lt;br /&gt;
* [http://www.colibre.com.br/bin/view/Aurium/InkscapeAreaCuter InkscapeAreaCutter] - For Webdesigners, layout for sites, slice area into .png images. util! (pt_BR)&lt;br /&gt;
* [http://julvitard.free.fr/eqtexsvg/ EQTeXSVG] - EQTeXSVG is an extension for Inkscape used to convert an inline LATEX equation into SVG path using Python.&lt;br /&gt;
* [http://www.kono.cis.iwate-u.ac.jp/~arakit/inkscape/inklatex.html InkLaTeX] Insert LaTeX text or equations into Inkscape.&lt;br /&gt;
* [http://www.iki.fi/pav/software/textext/ TexText] Embed re-editable LaTeX objects in SVG drawings.&lt;br /&gt;
* [http://math.univ-lille1.fr/~barraud/Inkscape/pathdeform/ PathDeform] - Here is an Inkscape extension whose purpose is to bend a path according to another one. Note: it was added to Inkscape 0.45 as &amp;quot;Pattern along Path&amp;quot;.&lt;br /&gt;
* [http://www.inkbar.lineaire.net/ InkBar] - This is an Inkscape extension whose purpose is to draw EAN13 bar code.&lt;br /&gt;
* [http://technoargia.free.fr/swftools/ SWF output] - A little extension to save as Swf from Inkscape.&lt;br /&gt;
* [http://www.colivre.coop.br/bin/view/Aurium/Puff Puff] - Fluffs elements! :-D&lt;br /&gt;
* [http://www.colivre.coop.br/bin/view/Aurium/InkSudoku Sudoku Generator] - Generates Sudoku square with the solution ''(in a small square if you want)''.&lt;br /&gt;
&lt;br /&gt;
== For Programers: ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.colivre.coop.br/bin/view/Aurium/RubyInk RubyInk] - Inkscape extension with Ruby&lt;br /&gt;
* [http://www.colivre.coop.br/bin/view/Aurium/InkBash Ink-Bash] - &amp;lt;nowiki&amp;gt;ShellScript&amp;lt;/nowiki&amp;gt; Forever!&lt;br /&gt;
* [http://www.colivre.coop.br/bin/view/Aurium/InkMoz InkMoz] - the Bridge from Inkscape to Mozilla (Inkscape extension with Javascript and more)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer Documentation]]&lt;br /&gt;
[[Category:Extensions]]&lt;/div&gt;</summary>
		<author><name>AurelioAHeckert</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Extension_repository&amp;diff=14078</id>
		<title>Extension repository</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Extension_repository&amp;diff=14078"/>
		<updated>2007-04-07T20:05:28Z</updated>

		<summary type="html">&lt;p&gt;AurelioAHeckert: Puff, Sudoku, RubyInk, Ink-Bash e InkMoz&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;It would be very useful to have a central Internet repository for Inkscape extensions, similarly as Firefox has. This way, Inkscape could update installed extensions from the web site, with no need for the user to know if an extension is updated.&lt;br /&gt;
&lt;br /&gt;
What extensions are there? We can start listing them here:&lt;br /&gt;
* [http://www.ekips.org/comp/inkscape/ Inkscape Effects] - Aaron Spikes set of extensions is now included in Inkscape.&lt;br /&gt;
* [http://www.colibre.com.br/bin/view/Aurium/InkscapeCalendarShellScript InkscapeCalendarShellScript] - Create Calendars sucks or is impracticable if you do not have something that automatizes the process of to put the days organized in blocks of months to you. To format manually is easy, but this extension can help you on this too [Bash script, works for win32 with cygwin].&lt;br /&gt;
* [http://www.colibre.com.br/bin/view/Aurium/InkscapeAreaCuter InkscapeAreaCutter] - For Webdesigners, layout for sites, slice area into .png images. util! (pt_BR)&lt;br /&gt;
* [http://julvitard.free.fr/eqtexsvg/ EQTeXSVG] - EQTeXSVG is an extension for Inkscape used to convert an inline LATEX equation into SVG path using Python.&lt;br /&gt;
* [http://www.kono.cis.iwate-u.ac.jp/~arakit/inkscape/inklatex.html InkLaTeX] Insert LaTeX text or equations into Inkscape.&lt;br /&gt;
* [http://www.iki.fi/pav/software/textext/ TexText] Embed re-editable LaTeX objects in SVG drawings.&lt;br /&gt;
* [http://math.univ-lille1.fr/~barraud/Inkscape/pathdeform/ PathDeform] - Here is an Inkscape extension whose purpose is to bend a path according to another one. Note: it was added to Inkscape 0.45 as &amp;quot;Pattern along Path&amp;quot;.&lt;br /&gt;
* [http://www.inkbar.lineaire.net/ InkBar] - This is an Inkscape extension whose purpose is to draw EAN13 bar code.&lt;br /&gt;
* [http://technoargia.free.fr/swftools/ SWF output] - A little extension to save as Swf from Inkscape.&lt;br /&gt;
* [http://www.colivre.coop.br/bin/view/Aurium/Puff Puff] - Fluffs elements! :-D&lt;br /&gt;
* [http://www.colivre.coop.br/bin/view/Aurium/InkSudoku Sudoku Generator] - Generates Sudoku square with the solution ''(in a small square if you want)''.&lt;br /&gt;
&lt;br /&gt;
== For Programers: ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.colivre.coop.br/bin/view/Aurium/RubyInk RubyInk] - Inkscape extension with Ruby&lt;br /&gt;
* [http://www.colivre.coop.br/bin/view/Aurium/InkBash Ink-Bash] - &amp;lt;nowiki&amp;gt;ShellScript&amp;lt;/nowiki&amp;gt; Forever!&lt;br /&gt;
* [http://www.colivre.coop.br/bin/view/Aurium/InkMoz InkMoz] - the Bridge from Inkscape to Mozilla (Inkscape extension with Javascript and more)&lt;br /&gt;
&lt;br /&gt;
== References: ==&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer Documentation]]&lt;br /&gt;
[[Category:Extensions]]&lt;/div&gt;</summary>
		<author><name>AurelioAHeckert</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=ReleaseAnnounce045-ptBR&amp;diff=13180</id>
		<title>ReleaseAnnounce045-ptBR</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=ReleaseAnnounce045-ptBR&amp;diff=13180"/>
		<updated>2007-02-05T21:17:06Z</updated>

		<summary type="html">&lt;p&gt;AurelioAHeckert: /* Inkscape Anuncia Lançamento da Versão 0.45 :: http://www.inkscape.org :: Desenhando Livremente */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Esta é uma concepção do Anuncio de Lançamento para a versão 0.45.&lt;br /&gt;
&lt;br /&gt;
== Inkscape Anuncia Lançamento da Versão 0.45 :: http://www.inkscape.org :: Desenhando Livremente ==&lt;br /&gt;
&lt;br /&gt;
A comunidade Inkscape anuncia hoje a mais nova versão do programa para edição gráfica vetorial. O Inkscape 0.45 apresenta seu novo filtro SVG de Desfoque Gaussiano. Patrocinado pela Google's Summer of Code, o desfoque Gaussiano permite desfocar e suavizar naturalmente todos os objetos do Inkscape, incluindo formas, texto e imagens. Isto permite uma grande escala de efeitos Fotorrealistas: matizes e luzes de fomas variadas, profundidade de campo, sombras, incandescência, etc. Os objetos desfocados também podem ser usados como máscaras para outros objetos conseguindo o efeito de &amp;quot;máscara feathered&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Inúmeras outras novas funções, melhorias nas funções existentes e correções de erros foram incluídos. Um diálogo de histórico permite que você navegue no seu histórico de mudanças. Muitos efeitos novos foram adicionados como extensões, incluindo o Padrão ao longo do Caminho e os efeitos de cores. Houve algumas melhorias de desempenho da renderização, da ordem de 2-3% em geral e de até 5-10% para desenhos usando transparência pesada ou gradientes radiais. A qualidade de composição foi também melhorada com a remoção das bordas vistas nos gradientes.&lt;br /&gt;
&lt;br /&gt;
Na versão em português do Brasil, temos 99% de tradução da interface e documentação 100% traduzida. Agradecemos ao trabalho de Thiago Pimentel na documentação e a toda a comunidade Inkscape Brasil, que colaborou com a tradução e a revisão da interface.&lt;br /&gt;
&lt;br /&gt;
Download para Linux, Windows, e Mac OS X:&lt;br /&gt;
 &lt;br /&gt;
     http://sourceforge.net/project/showfiles.php?group_id=93438&lt;br /&gt;
&lt;br /&gt;
Para muito mais detalhes, veja a Nota de Anúncio completo para 0.45 em:&lt;br /&gt;
 &lt;br /&gt;
     http://wiki.inkscape.org/wiki/index.php/Release_Notes&lt;br /&gt;
&lt;br /&gt;
Screenshot enviado pela comunidade:&lt;br /&gt;
 &lt;br /&gt;
     http://www.inkscape.org/screenshots/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Sobre o Inkscape===&lt;br /&gt;
&lt;br /&gt;
O Inkscape é uma ferramenta de desenho de código aberto que utiliza o formato de gráficos vetoriais escaláveis (SVG) do World Wide Web Consortium's ([[W3C]]).&lt;br /&gt;
Algumas funções suportadas pelo SVG incluem formas básicas, caminhos, texto, marcadores, clones, mesclagem alfa, transfomações, gradientes e agrupamento.&lt;br /&gt;
Em adição, o Inkscape suporta metadados Creative Commons, edição de nós, camadas, operações complexas com caminhos, texto em caminhos, texto em formas e edição do XML SVG. Também pode importar arquivos EPS, &amp;lt;nowiki&amp;gt;PostScript&amp;lt;/nowiki&amp;gt;, e a maioria dos formatos de bitmaps, e exportar PNGs, PS, PDF e vários formatos vetoriais.&lt;br /&gt;
&lt;br /&gt;
A principal motivação do Inkscape é dar à comunidade Open Source uma ferramenta de desenho totalmente compatível com XML, SVG e CSS2 do [[W3C]]. Trabalhos adicionais incluem a conversão da base de código de &amp;lt;nowiki&amp;gt;C/Gtk&amp;lt;/nowiki&amp;gt; para &lt;br /&gt;
&amp;lt;nowiki&amp;gt;C++/Gtkmm&amp;lt;/nowiki&amp;gt;, com ênfase em uma base leve com ferramentas poderosas adicionadas através de um mecanismo de extensões, e mantendo um processo de desenvolvimento amigável, aberto e voltado para a comunidade.&lt;br /&gt;
&lt;br /&gt;
== Release announce translations ==&lt;br /&gt;
&lt;br /&gt;
Catalan: http://wiki.inkscape.org/wiki/index.php/NotaAlliberament045&lt;br /&gt;
&lt;br /&gt;
Czech: http://wiki.inkscape.org/wiki/index.php/ReleaseAnnounce045-cs&lt;br /&gt;
&lt;br /&gt;
Deutsch: http://wiki.inkscape.org/wiki/index.php/ReleaseAnnounce045-de&lt;br /&gt;
&lt;br /&gt;
French: http://wiki.inkscape.org/wiki/index.php/ReleaseAnnounce045-fr&lt;br /&gt;
&lt;br /&gt;
Italian: http://wiki.inkscape.org/wiki/index.php/ReleaseAnnounce045-it&lt;br /&gt;
&lt;br /&gt;
Japanese: http://wiki.inkscape.org/wiki/index.php/ReleaseAnnounce045-ja&lt;br /&gt;
&lt;br /&gt;
Portuguese: http://wiki.inkscape.org/wiki/index.php/ReleaseAnnounce045-ptBR&lt;br /&gt;
&lt;br /&gt;
Vietnamese: http://wiki.inkscape.org/wiki/index.php/ReleaseAnnounce045-vi&lt;br /&gt;
&lt;br /&gt;
Español: http://wiki.inkscape.org/wiki/index.php/ReleaseAnnounce045-es&lt;br /&gt;
&lt;br /&gt;
[[Category:Marketing]]&lt;/div&gt;</summary>
		<author><name>AurelioAHeckert</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Script_extensions&amp;diff=8714</id>
		<title>Script extensions</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Script_extensions&amp;diff=8714"/>
		<updated>2006-10-29T01:38:36Z</updated>

		<summary type="html">&lt;p&gt;AurelioAHeckert: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Introduction ===&lt;br /&gt;
&lt;br /&gt;
Inkscape provides the ability for its functionality to be extended using traditional unix scripts.  By this, we mean a program that takes in a stream of data through standard in, and then outputs that data on standard out.  This is a very easy way to expand Inkscape, and provide custom functionality, without learning the internals of Inkscape.  Plus, there are SVG read and writing libraries out there for almost any language, and the rest of them all have XML support (which is really what you probably want to use anyway).  This HOWTO discusses the ends and outs of writing one of these scripts and getting it to work with the Inkscape core functionality. &lt;br /&gt;
&lt;br /&gt;
=== Types of scripts ===&lt;br /&gt;
&lt;br /&gt;
Basically there are three functions that added with a script:&lt;br /&gt;
&lt;br /&gt;
* Input, providing translation from a file format to SVG&lt;br /&gt;
* Output, providing translation from SVG to a format&lt;br /&gt;
* Filter, taking in SVG, changing it, and then outputing SVG&lt;br /&gt;
&lt;br /&gt;
While all of these are very similar in the scripting interface, there are slight differences between them.&lt;br /&gt;
&lt;br /&gt;
=== Interaction ===&lt;br /&gt;
&lt;br /&gt;
It is important for a script author to understand how Inkscape and scripts communicate.&lt;br /&gt;
&lt;br /&gt;
(interpreter)? your_script (--param=value)* /path/to/input[[/SVGfile]] | inkscape&lt;br /&gt;
&lt;br /&gt;
Inkscape runs your script (optionally with an interpreter) passing it any number of parameters in long gnu style. The final argument is the name of the temporary svg file your script should read. After processing, the script should return the modified svg file to inkscape on STDOUT.&lt;br /&gt;
&lt;br /&gt;
=== Localisation of extensions ===&lt;br /&gt;
&lt;br /&gt;
To allow localisation of strings in extension for Inkscape, some xml tags have to be adapted to variant readable by intltool. It means that tags or parametres has to have &amp;quot;_&amp;quot; prepended to their name, e.g. &amp;lt;_name&amp;gt;name of extension&amp;lt;/_name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also the path to the extension has to be included in POTFILES.in file to tell intltool where to look for translatable content.&lt;br /&gt;
&lt;br /&gt;
Usefull information, before this section gets fully updated, can be found at [http://gould.cx/ted/blog/Translating_Custom_XML Ted's blog].&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
&lt;br /&gt;
In order for Inkscape to make use of an external script or program, you must describe that script to inkscape using an INX file. See the inkscape share directory for examples.&lt;br /&gt;
&lt;br /&gt;
==== Parameters ====&lt;br /&gt;
The INX file describes which parameters the extension needs. Inkscape will prompt the user with a UI to fill out these parameters before the &lt;br /&gt;
&lt;br /&gt;
extension is called. Each parameter will be passed through the commandline as &amp;quot;--paramname=paramvalue&amp;quot;. Eg. if you have described a string &lt;br /&gt;
&lt;br /&gt;
parameter with name 'string1' in the INX file, Inkscape will present a textbox to the user. When the user fills in &amp;quot;text&amp;quot; and presses OK, it &lt;br /&gt;
&lt;br /&gt;
will pass '--string1=&amp;quot;text&amp;quot;' to the program specified by the &amp;lt;command&amp;gt; tag.&lt;br /&gt;
&lt;br /&gt;
There are several types of parameters that can be requested by the INX description:&lt;br /&gt;
&lt;br /&gt;
===== Boolean =====&lt;br /&gt;
&lt;br /&gt;
===== Int =====&lt;br /&gt;
&lt;br /&gt;
===== Float =====&lt;br /&gt;
&lt;br /&gt;
===== String =====&lt;br /&gt;
&lt;br /&gt;
===== Description =====&lt;br /&gt;
&lt;br /&gt;
===== Enum =====&lt;br /&gt;
&lt;br /&gt;
===== Notebook =====&lt;br /&gt;
&lt;br /&gt;
=== Installing ===&lt;br /&gt;
&lt;br /&gt;
Installing is as simple as copying the script (unless it resides in your path) and its INX file to the inkscape/share/extensions (home/.inkscape/extensions) directory.&lt;br /&gt;
&lt;br /&gt;
If you are looking to use scripts that have already been written, the most difficult part will likely be the installation. Since scripts are  seperate programs they may have any number of dependencies that are not included with inkscape. Currently, the best way to find missing dependencies is by reading the error messages produced by running the script from the command line.&lt;br /&gt;
&lt;br /&gt;
=== See Also ===&lt;br /&gt;
&lt;br /&gt;
*http://www.ekips.org/comp/inkscape/extending.php#ignorance&lt;br /&gt;
&lt;br /&gt;
*[[MakingAnExtension]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Extensions]]&lt;/div&gt;</summary>
		<author><name>AurelioAHeckert</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=INX_extension_descriptor_format&amp;diff=8094</id>
		<title>INX extension descriptor format</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=INX_extension_descriptor_format&amp;diff=8094"/>
		<updated>2006-08-19T22:54:08Z</updated>

		<summary type="html">&lt;p&gt;AurelioAHeckert: start about INX file&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;How an extension must work and how to write an INX file.&lt;br /&gt;
&lt;br /&gt;
''It's only an working draft!''&lt;br /&gt;
&lt;br /&gt;
== About the Inkscape Extension Interface ==&lt;br /&gt;
&lt;br /&gt;
The inkscape call a program with some arguments and as the last argumet it tells to the extension program where is the temporay SVG file to do the work. The temporay SVG file represents the actual state of the working SVG.&lt;br /&gt;
&lt;br /&gt;
After the extension program work it writes the modified SVG to the default output, the Inkscape get this and update the SVG for the user.&lt;br /&gt;
&lt;br /&gt;
''An Inkscape Developer can say it better...''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How an Extension Must Work ==&lt;br /&gt;
&lt;br /&gt;
* Recive the inkscape arguments.&lt;br /&gt;
* Clear temp files if it creates one.&lt;br /&gt;
* Write full changed SVG to the default output.&lt;br /&gt;
* Don't break an xml:space=&amp;quot;preserve&amp;quot; area.&lt;br /&gt;
* Send error text to the error output and help the user.&lt;br /&gt;
&lt;br /&gt;
''An Inkscape Developer can say more?''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How to Write an INX File ==&lt;br /&gt;
&lt;br /&gt;
'''Example:'''&lt;br /&gt;
  &amp;lt;inkscape-extension&amp;gt;&lt;br /&gt;
    &amp;lt;_name&amp;gt;{Friendly Extension Name}&amp;lt;/_name&amp;gt;&lt;br /&gt;
    &amp;lt;id&amp;gt;{org.domain.sub-domain.extension-name}&amp;lt;/id&amp;gt;&lt;br /&gt;
      &amp;lt;dependency type=&amp;quot;executable&amp;quot;&lt;br /&gt;
                  location=&amp;quot;[extensions|{location}]&amp;quot;&amp;gt;program.ext&amp;lt;/dependency&amp;gt;&lt;br /&gt;
      &amp;lt;param name=&amp;quot;{argumentName}&amp;quot; type=&amp;quot;[int|float|string]&amp;quot;&lt;br /&gt;
             min=&amp;quot;{number}&amp;quot; max=&amp;quot;{number}&amp;quot;&lt;br /&gt;
             _gui-text=&amp;quot;{Friendly Argument Name}&amp;quot;&amp;gt;{default value}&amp;lt;/param&amp;gt;&lt;br /&gt;
    &amp;lt;effect&amp;gt;&lt;br /&gt;
      &amp;lt;object-type&amp;gt;[all|{element type}]&amp;lt;/object-type&amp;gt;&lt;br /&gt;
        &amp;lt;effects-menu&amp;gt;&lt;br /&gt;
          &amp;lt;submenu _name=&amp;quot;{Extension Group Name}&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/effects-menu&amp;gt;&lt;br /&gt;
    &amp;lt;/effect&amp;gt;&lt;br /&gt;
    &amp;lt;script&amp;gt;&lt;br /&gt;
      &amp;lt;command reldir=&amp;quot;extensions&amp;quot;&lt;br /&gt;
               interpreter=&amp;quot;[python|perl|bash|{some other}]&amp;quot;&amp;gt;program.ext&amp;lt;/command&amp;gt;&lt;br /&gt;
    &amp;lt;/script&amp;gt;&lt;br /&gt;
  &amp;lt;/inkscape-extension&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer Documentation]]&lt;br /&gt;
[[Category:Help Wanted]]&lt;/div&gt;</summary>
		<author><name>AurelioAHeckert</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=INX_extension_descriptor_format&amp;diff=8092</id>
		<title>INX extension descriptor format</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=INX_extension_descriptor_format&amp;diff=8092"/>
		<updated>2006-08-19T22:41:07Z</updated>

		<summary type="html">&lt;p&gt;AurelioAHeckert: Creating&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;How an extension must work and how to write an INX file.&lt;br /&gt;
&lt;br /&gt;
''It's only an working draft!''&lt;br /&gt;
&lt;br /&gt;
== About the Inkscape Extension Interface ==&lt;br /&gt;
&lt;br /&gt;
The inkscape call a program with some arguments and as the last argumet it tells to the extension program where is the temporay SVG file to do the work. The temporay SVG file represents the actual state of the working SVG.&lt;br /&gt;
&lt;br /&gt;
After the extension program work it writes the modified SVG to the default output, the Inkscape get this and update the SVG for the user.&lt;br /&gt;
&lt;br /&gt;
''An Inkscape Developer can say it better...''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How an Extension Must Work ==&lt;br /&gt;
&lt;br /&gt;
* Recive the inkscape arguments.&lt;br /&gt;
* Clear temp files if it creates one.&lt;br /&gt;
* Write full changed SVG to the default output.&lt;br /&gt;
* Don't break an xml:space=&amp;quot;preserve&amp;quot; area.&lt;br /&gt;
* Send error text to the error output and help the user.&lt;br /&gt;
&lt;br /&gt;
''An Inkscape Developer can say more?''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How to Write an INX File ==&lt;/div&gt;</summary>
		<author><name>AurelioAHeckert</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Inkscape&amp;diff=8090</id>
		<title>Inkscape</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Inkscape&amp;diff=8090"/>
		<updated>2006-08-19T22:25:07Z</updated>

		<summary type="html">&lt;p&gt;AurelioAHeckert: puting MakingAnExtension link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a freeform area for Inkscape development and discussion.  &lt;br /&gt;
Curious about [[WikiSyntax]]?&lt;br /&gt;
&lt;br /&gt;
Aqui la versión del wiki de [[Inkscape en español]]&lt;br /&gt;
&lt;br /&gt;
Aquí la versió del wiki de [[L'Inkscape en Català]]&lt;br /&gt;
&lt;br /&gt;
Hier die Version des Wiki auf [[Startseite|Deutsch]]&lt;br /&gt;
&amp;lt;table cellspacing=&amp;quot;11&amp;quot; width=&amp;quot;100%&amp;quot;&amp;gt;&amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;width:33%;background-color: #EFFBFF; padding:.5em; border: 1px solid #BFEEFF&amp;quot;&amp;gt;&lt;br /&gt;
=== About Inkscape ===&lt;br /&gt;
* [http://www.inkscape.org/ Inkscape Homepage]&lt;br /&gt;
* [[About Inkscape]]&lt;br /&gt;
* [[InkscapeFeatures]]&lt;br /&gt;
* [[FAQ]] - Frequently Asked Questions&lt;br /&gt;
* [[ProjectInfo]]&lt;br /&gt;
* [[SupportedOperatingSystems]]&lt;br /&gt;
* [[Tools]] - Supporting Tools and Applications&lt;br /&gt;
* [[Galleries]]&lt;br /&gt;
* [[ArticlesAndPresentations]]&lt;br /&gt;
* [[TestimonialComments]]&lt;br /&gt;
* [[InkscapePopularity]]&lt;br /&gt;
* [[ContactInfo]] our heroes&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;width:33%;;background-color: #FFF1EF; padding:.5em; border: 1px solid #FFC7BF;margin:.5em&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== User Documentation ===&lt;br /&gt;
* [[InstallHelp]]&lt;br /&gt;
* [[InkscapeTerminology]]&lt;br /&gt;
* [[UserManual]]&lt;br /&gt;
* [http://inkscape.org/doc/ Tutorials]&lt;br /&gt;
* [[InkscapeSVG|Inkscape SVG vs. Plain SVG]]&lt;br /&gt;
* [[GettingExtensionsWorking]]&lt;br /&gt;
* [[GettingEffectsWorking]]&lt;br /&gt;
* [[WhatEffectsDo]]&lt;br /&gt;
* [[UsingTheConnectorTool]]&lt;br /&gt;
* [[Installing Fonts as a User]]&lt;br /&gt;
* [[EmergencySave]]&lt;br /&gt;
* [[ReleaseNotes045|Release Notes]] for 0.45 (unstable)&lt;br /&gt;
* [[ReleaseNotes044|Release Notes]] for 0.44 and past&lt;br /&gt;
* [[Announcing Releases]] for 0.44 and past&lt;br /&gt;
* [[ArticleIntroducingInkscape0_40|Introducing Inkscape 0.40]]&lt;br /&gt;
* [[TricksAndTips]]&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;width:33%;background-color: #FFFAE5; padding:.5em; border: 1px solid #FFFF66; margin:.5em&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Help Inkscape Without Coding === &lt;br /&gt;
&lt;br /&gt;
* [[PrintingConsensusPoll]]&lt;br /&gt;
* [[HelpWanted]]&lt;br /&gt;
* [[CreatingDists]]: how to build packages&lt;br /&gt;
* [[WebsiteEditing]]&lt;br /&gt;
* [[UpdatingTrackerItems]]&lt;br /&gt;
* [[TutorialIdeas]]&lt;br /&gt;
* [[How_To_Start_A_Page]] how to use the wiki&lt;br /&gt;
* [[TestingInkscape]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&amp;lt;table cellspacing=&amp;quot;0&amp;quot; width=&amp;quot;100%&amp;quot; style=&amp;quot;background-color: #FFFAE5; border-width:0em .5em; border-style:solid; border-color:white&amp;quot;&amp;gt;&amp;lt;tr valign=&amp;quot;top&amp;quot; style=&amp;quot;padding:11px 0em 0em 11px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;th colspan=&amp;quot;2&amp;quot; align=&amp;quot;left&amp;quot; style=&amp;quot;padding:.5em 0em 0em .5em&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Developer Documentation ===&lt;br /&gt;
&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;&amp;gt;&amp;lt;td style=&amp;quot;width:50%;padding:.5em&amp;quot;&amp;gt;&lt;br /&gt;
==== General ====&lt;br /&gt;
* [[DeveloperManual]]&lt;br /&gt;
* [[CompilingInkscape]]&lt;br /&gt;
* [[WorkingWithSVN]]&lt;br /&gt;
* [[HandlingPreferences]]:  creating and using preference values&lt;br /&gt;
* [[AddSPObject]]: how to add a new SPObject type&lt;br /&gt;
* [[ReprListeners]]: responding to XML doc changes&lt;br /&gt;
* [[ErrorsAndWarnings]]: how to deal with reporting errors, warnings, and other messages&lt;br /&gt;
* [[DebuggingTips]]: random tips to help debug problems&lt;br /&gt;
&lt;br /&gt;
* [[DeveloperTitles]]: terms for various roles in Inkscape&lt;br /&gt;
* [[InkscapeJanitors]]: small tasks that need doing&lt;br /&gt;
* [http://livarot.sourceforge.net/ Livarot]: for boolean ops&lt;br /&gt;
* [[ExtensionAttributes]]: currently defined attributes in Inkscape's XML namespace and what they do&lt;br /&gt;
* [[MakingAnExtension]]: how extension must work and how to write an INX file&lt;br /&gt;
* [[ExtensionsRepository]]: an Internet central for Inkscape Extensions&lt;br /&gt;
* [[OtherProjects]] (outside links)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;width:50%;padding:.5em&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Development Discussion ====&lt;br /&gt;
* [[Roadmap]]: the main todo list&lt;br /&gt;
* [[NewFeatureProposals]]&lt;br /&gt;
* [[ExtensionArchitectureProposals]]&lt;br /&gt;
* [[Coding Style|Coding Style Discussion]]&lt;br /&gt;
* [[FileTypes]]&lt;br /&gt;
* [[ApplicationIcons]] ( Application + Interface )&lt;br /&gt;
* [[InkscapeColor]]&lt;br /&gt;
* [[PrintingSubsystem]]&lt;br /&gt;
* [[SVG Competitors Plan]] - MS WVG vs SVG, etc&lt;br /&gt;
* [[SVG Tiny Compliance]]&lt;br /&gt;
* [[SVG Test Suite Compliance]] - [[W3C]] full test suite&lt;br /&gt;
* [[CSS Support]]&lt;br /&gt;
* [[OpenVG]] Standard (draft)&lt;br /&gt;
* [[OpenDocument proposal]]&lt;br /&gt;
* [[Googles Summer Of Code]]&lt;br /&gt;
* [[UI MockupScreenshots]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;&amp;gt;&amp;lt;td style=&amp;quot;width:50%;padding:.5em&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== User Interface Discussion ====&lt;br /&gt;
* [[Translation_information]]&lt;br /&gt;
* [[AccessibleGraphics]]&lt;br /&gt;
* [[ObjectManager]]&lt;br /&gt;
* [[DialogsReorganization]]&lt;br /&gt;
* [[DialogReplacement]]&lt;br /&gt;
* [[ModalInterfaces]]&lt;br /&gt;
* [[TextUsability]]: text tool /dialog dialog&lt;br /&gt;
* [[KeyboardShortcutsToDo]]&lt;br /&gt;
** [[KeyboardProfiles]]: how you can help &lt;br /&gt;
* [[StatusbarAPI]]&lt;br /&gt;
* [[Animation-(Timeline)]]&lt;br /&gt;
* [[Free Desktop Graphic Suite]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;width:50%;padding:.5em&amp;quot;&amp;gt;&lt;br /&gt;
==== Rearchitecture Discussion ====&lt;br /&gt;
* [[SubsystemRearchitecture]]&lt;br /&gt;
* [[GtkMMification]]: replace C boilerplate with gtkmm objects&lt;br /&gt;
* [[PathRepresentation]]&lt;br /&gt;
* [[Cairoification]]&lt;br /&gt;
* [[ScribusInteroperability]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
* [[WikiAttic]]: pages that are no longer relevant but kept for historical value&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&lt;br /&gt;
[[Category:About Inkscape]]&lt;br /&gt;
[[Category:User Documentation]]&lt;/div&gt;</summary>
		<author><name>AurelioAHeckert</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=ScriptingLanguages&amp;diff=4967</id>
		<title>ScriptingLanguages</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=ScriptingLanguages&amp;diff=4967"/>
		<updated>2005-02-14T20:55:35Z</updated>

		<summary type="html">&lt;p&gt;AurelioAHeckert: New Proposal&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Lilypond is a musical typesetter.  All of its internal structure is exported via scheme.  I think inkscape should aim for this as it has paid off for lilypond in reduced time in adding functionality and ease of tweaking.  My personal preference is python, being a language which sucks in new users at a phenominal rate, and provides the [http://www.boost.org/ Boost] [http://www.boost.org/libs/python/doc/index.html Seamless Python] integration.&lt;br /&gt;
&lt;br /&gt;
Scripting allows many more developers to contribute, and allows new ideas to be prototyped essentially on the spot.&lt;br /&gt;
&lt;br /&gt;
I think the core scripting interface should be relatively simple and language-neutral, like [[The_Gimp]]'s PDB, though object-oriented.  A slightly perverse idea might be to use the Ruby interpreter's excellent C API for this purpose.  But that's just one idea.&lt;br /&gt;
&lt;br /&gt;
Another great scripting language is called [http://www.lua.org Lua]: very small footprint, great flexibility, can be easily embedded into any C/C++ application without any strings attached (LGPL). [http://www.lua.org Lua] is being largely used for game development.  There are cases from Microsoft and Lucas Arts using it.&lt;br /&gt;
&lt;br /&gt;
Another idea is to start extending with [http://www.corba.org CORBA], while it is a bit combersome to start out with, we end up not having to support individual languages.  I think with a few examples of functionality implemented in those languages it would be easy for many people to pick up closely.  The list of supported languages for [http://www.gnome.org/projects/ORBit2/index.html ORBit] is pretty large, and something we could build on.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
Corba's C++ binding is nasty, though, which IMO has a great deal to do with why it's not more prevalent.  I think, for the sake of bindings to other languages, all we really neede is a very thin wrapper layer that adds the necessary reflection facilities to C++'s in order for a language like Python or Ruby or whatever to generate bindings dynamically at runtime.&lt;br /&gt;
&lt;br /&gt;
Oh, and we need to draw the line at simple reflection stuff (class membership, class name, method names and prototypes), or else we really will end up reimplementing CORBA (badly) all over again...&lt;br /&gt;
&lt;br /&gt;
-- MenTaLguY&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
I think the key here is coming up with a way to load the modules in, independent of what language they are in - then lanuage bindings can grow and grow - but always be useful.  I'll start some more discussion on this in ModuleFormat.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
Probably the best thing is to work on the concepts to be exposed. Once they are specified, then it's easy to implement the exposure in different languages.&lt;br /&gt;
&lt;br /&gt;
Of course, some decisions need to be made as to what to potentially support. This would apply to potential scripting languages and to potential features. Think of both the tasks to accomplish and of the languages to accomplish them in.&lt;br /&gt;
&lt;br /&gt;
For an example of the tasks/concepts, we could think of a raster paint program (like [[The Gimp]] or PhotoShop). These deal with raster images. Additionally, it's nice to be able to work on images with different numbers of channels, different bit-depths and different colorspaces. The PhotoShop &lt;br /&gt;
plugin API has supported all of this for years. Sadly, [[The Gimp]] did not at the begining. Thus problems with working in CMYK or in bit depths neede for Hollywood work both have been problematic for [[The Gimp]] and its plugins.&lt;br /&gt;
&lt;br /&gt;
Blocking future functionality, I think, is the main thing that Inkscape needs to avoid. As MenTaLguY has said, it's best if plugins were first-class citizens. So what needs to be exposed?&lt;br /&gt;
&lt;br /&gt;
Things off the top of my head:&lt;br /&gt;
&lt;br /&gt;
-Document&lt;br /&gt;
  |-XML / parse tree&lt;br /&gt;
  |-view tree&lt;br /&gt;
&lt;br /&gt;
-UI Thingies / dialogs / user interaction&lt;br /&gt;
&lt;br /&gt;
-Utility calls / factories&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- JonCruz&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
More then one language to write extensions can help the development.&lt;br /&gt;
&lt;br /&gt;
The [http://www.mozilla.org/js/spidermonkey/ SpiderMonkey] is a great javascript engine, used by Mozilla web browser, and inplements the [http://www.mozilla.org/js/language/js20/ JavaScript 2.0] specification.&lt;br /&gt;
&lt;br /&gt;
The JavaScript is a easy language and is the defined language to anime SVG. With the powerful 2.0 version we can do good extensions to Inkscape.&lt;br /&gt;
&lt;br /&gt;
The [[AST]] is a great idea to manipulate the SVG, but may we acess in the same DOM used to [[DHTML]]. And it will be natural to DHTML scripters and developers.&lt;br /&gt;
&lt;br /&gt;
It's writed in C, is fast and low weight. I'm waiting to write new efects to Inkscape with my prefered language! :-)&lt;br /&gt;
&lt;br /&gt;
-- AurelioAHeckert&lt;br /&gt;
&lt;br /&gt;
---&lt;/div&gt;</summary>
		<author><name>AurelioAHeckert</name></author>
	</entry>
</feed>