<?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=Jiho</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=Jiho"/>
	<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/Special:Contributions/Jiho"/>
	<updated>2026-04-30T11:35:57Z</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=55109</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=55109"/>
		<updated>2009-12-07T02:48:50Z</updated>

		<summary type="html">&lt;p&gt;Jiho: /* Using a decentralized workflow */&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''' 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;
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;
==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. This is the way git works by default.&lt;br /&gt;
&lt;br /&gt;
Get Inkscape's code&lt;br /&gt;
 $ bzr branch lp:inkscape&lt;br /&gt;
&lt;br /&gt;
Now work:&lt;br /&gt;
 $ cd inkscape&lt;br /&gt;
 &amp;lt;work work work&amp;gt;&lt;br /&gt;
 $ bzr commit -m &amp;quot;Some changes&amp;quot;&lt;br /&gt;
 &amp;lt;more work work work&amp;gt;&lt;br /&gt;
 $ bzr commit -m &amp;quot;More changes&amp;quot;&lt;br /&gt;
 &amp;lt;create new file&amp;gt;&lt;br /&gt;
 $ bzr add new-file.c&lt;br /&gt;
&lt;br /&gt;
Update your branch to verify that your changes do not conflict with others&lt;br /&gt;
 $ bzr pull&lt;br /&gt;
&lt;br /&gt;
If everything is OK and that you are satisfied with your changes, publish them&lt;br /&gt;
 $ bzr push&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;
&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>Jiho</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Working_with_Bazaar&amp;diff=55107</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=55107"/>
		<updated>2009-12-07T02:47:04Z</updated>

		<summary type="html">&lt;p&gt;Jiho: /* Using a centralized (SVN-like) workflow */&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''' 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;
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;
==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. This is the way git works by default.&lt;br /&gt;
&lt;br /&gt;
 $ cd inkscape&lt;br /&gt;
 &amp;lt;work work work&amp;gt;&lt;br /&gt;
 $ bzr commit -m &amp;quot;Some changes&amp;quot;&lt;br /&gt;
 &amp;lt;more work work work&amp;gt;&lt;br /&gt;
 $ bzr commit -m &amp;quot;More changes&amp;quot;&lt;br /&gt;
 &amp;lt;update your branch to verify that your changes do not conflict with others&amp;gt;&lt;br /&gt;
 $ bzr pull&lt;br /&gt;
 &amp;lt;if everything is OK and that you are satisfied with your changes, publish them&amp;gt;&lt;br /&gt;
 $ bzr push&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;
&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>Jiho</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Working_with_Bazaar&amp;diff=55105</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=55105"/>
		<updated>2009-12-07T02:42:19Z</updated>

		<summary type="html">&lt;p&gt;Jiho: /* SVN-style checkout */&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''' 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;
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;
==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. This is the way git works by default.&lt;br /&gt;
&lt;br /&gt;
 $ cd inkscape&lt;br /&gt;
 &amp;lt;work work work&amp;gt;&lt;br /&gt;
 $ bzr commit -m &amp;quot;Some changes&amp;quot;&lt;br /&gt;
 &amp;lt;more work work work&amp;gt;&lt;br /&gt;
 $ bzr commit -m &amp;quot;More changes&amp;quot;&lt;br /&gt;
 &amp;lt;update your branch to verify that your changes do not conflict with others&amp;gt;&lt;br /&gt;
 $ bzr pull&lt;br /&gt;
 &amp;lt;if everything is OK and that you are satisfied with your changes, publish them&amp;gt;&lt;br /&gt;
 $ bzr push&lt;br /&gt;
&lt;br /&gt;
==Using a centralized (SVN-like) workflow==&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>Jiho</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Working_with_Bazaar&amp;diff=55103</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=55103"/>
		<updated>2009-12-07T02:41:55Z</updated>

		<summary type="html">&lt;p&gt;Jiho: /* Using a decentralized workflow */&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''' 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;
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;
==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. This is the way git works by default.&lt;br /&gt;
&lt;br /&gt;
 $ cd inkscape&lt;br /&gt;
 &amp;lt;work work work&amp;gt;&lt;br /&gt;
 $ bzr commit -m &amp;quot;Some changes&amp;quot;&lt;br /&gt;
 &amp;lt;more work work work&amp;gt;&lt;br /&gt;
 $ bzr commit -m &amp;quot;More changes&amp;quot;&lt;br /&gt;
 &amp;lt;update your branch to verify that your changes do not conflict with others&amp;gt;&lt;br /&gt;
 $ bzr pull&lt;br /&gt;
 &amp;lt;if everything is OK and that you are satisfied with your changes, publish them&amp;gt;&lt;br /&gt;
 $ bzr push&lt;br /&gt;
&lt;br /&gt;
==Using a centralized (SVN-like) workflow==&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>Jiho</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Working_with_Bazaar&amp;diff=55101</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=55101"/>
		<updated>2009-12-07T02:38:57Z</updated>

		<summary type="html">&lt;p&gt;Jiho: /* First steps */&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''' 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;
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;
==Using a decentralized workflow==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Using a centralized (SVN-like) workflow==&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>Jiho</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Working_with_Bazaar&amp;diff=55099</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=55099"/>
		<updated>2009-12-07T02:38:02Z</updated>

		<summary type="html">&lt;p&gt;Jiho: /* First steps */&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''' 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;
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;
&lt;br /&gt;
==Using a decentralized workflow==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Using a centralized (SVN-like) workflow==&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>Jiho</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Save_as_vs_export&amp;diff=25434</id>
		<title>Save as vs export</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Save_as_vs_export&amp;diff=25434"/>
		<updated>2008-03-18T11:05:46Z</updated>

		<summary type="html">&lt;p&gt;Jiho: /* Description of the export dialog */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Sort out ''Save as'' vs ''Export'' formats =&lt;br /&gt;
&lt;br /&gt;
This blueprint stems from several discussions on the mailing list about which format should be available in ''Save as'' or in ''Export'' and whether some should be exclusively available in only one of those. &lt;br /&gt;
&lt;br /&gt;
==Current status==&lt;br /&gt;
There are different opinions on the current status of this functionality in Inkscape which is:&lt;br /&gt;
&lt;br /&gt;
; Save&lt;br /&gt;
: contains all possible file formats (except PNG) and saves with the same name. If a format other than Inkscape SVG (or SVGZ) is used, a nag screen is displayed at close time, to warn the user about possible data loss.&lt;br /&gt;
; Save as&lt;br /&gt;
: idem but saves with a new name and this new document is used inside Inkscape. Same nag screen.&lt;br /&gt;
; Save a copy&lt;br /&gt;
: idem but the new document is not used inside Inkscape. It is just written on the disk and work continues in the current document. Hence saving as a format different from SVG does not cause the nag screen to appear (the working document is still SVG)&lt;br /&gt;
; Export&lt;br /&gt;
: saves the drawing or part of it as a PNG raster file, with a new name, and keep the working image as SVG. The ''Export'' dialog can stay open at all times.&lt;br /&gt;
&lt;br /&gt;
As a reminder, current save formats are (at least): Inkscape SVG(Z), Plain SVG(Z), PS, EPS, Cairo PDF, Cairo PS, POV, ODG, TEX, AI (8.0), DXF, AutoCAD DXF, EPSI, GPL, XCF, XAML, Inkscape svg with media ZIP, EMF.&lt;br /&gt;
&lt;br /&gt;
Some people are just fine with this, some other think it is a mess, some other think a middle ground should be found between this and changing everything.&lt;br /&gt;
&lt;br /&gt;
==Proposal==&lt;br /&gt;
&lt;br /&gt;
The new behavior is based on the principles that&lt;br /&gt;
# The user should not be able to shoot him/herself in the foot by saving only to a lossy format&lt;br /&gt;
# The number of items in the file menu should be reduced&lt;br /&gt;
# Functionality (or UI at least) should be consistent for all save/export format&lt;br /&gt;
&lt;br /&gt;
Principle 1 means that ''Save'' and ''Save as'' should only save as Inkscape SVG(Z) (and possibly plain SVG for people that only work in plain SVG?).&lt;br /&gt;
&lt;br /&gt;
Principle 2 means that one of ''Save a copy'' and ''Export'' has to go since they are kind of redundant.&lt;br /&gt;
&lt;br /&gt;
Principle 3 means that, when it is possible, saving in vector formats should offer the option to save only one object or a specific part of the canvas to the saved image, as export to PNG does. Furthermore, the UI should be consistent for this functionality.&lt;br /&gt;
&lt;br /&gt;
The proposed behavior is therefore&lt;br /&gt;
&lt;br /&gt;
; Save&lt;br /&gt;
: saves only as Inkscape SVG(Z) (Plain SVG(Z)? People, please give opinions on this. I don't personally work with SVG as the end format so can't tell what the workflow is in this case. Plain SVG is lossy from the editing point of view but maybe that is a major pain to have two copies of the same document when working with what is supposed to be Inkscape's native format)&lt;br /&gt;
; Save as&lt;br /&gt;
: idem, with a new name and setting the working document to be the new file&lt;br /&gt;
; Export&lt;br /&gt;
: saves to all vector and bitmap (and other e.g. GPL) formats, comprising Inkscape SVG(Z) and Plain SVG(Z), with a new name, keeping the working document in place. The export dialog should present a similar set of options for all file types, disable those not available for the particular file type selected, in a dialog as compact as possible (since it is meant to stay open at all time)&lt;br /&gt;
&lt;br /&gt;
===Description of the export dialog===&lt;br /&gt;
* a file chooser at the top, and file type defaulting to &amp;quot;Guess from extension&amp;quot;. The chosen filename should be shown relative to the current document and use and ellipsis to always show the extension (so that it is immediately obvious which file type is exported)&lt;br /&gt;
* batch export all selected object check box*&lt;br /&gt;
* four tabs underneath (Page, Drawing, Objects, Custom)**&lt;br /&gt;
* depending on the file type, enable or disable batch export&lt;br /&gt;
* when batch export is unchecked/unavailable, enable or disable each tab depending on the file type&lt;br /&gt;
** PNG: enable all&lt;br /&gt;
** PDF/PS/EPS: enable page, drawing, objects&lt;br /&gt;
** other graphic formats: enable page or drawing depending on the behaviour of the file type&lt;br /&gt;
** other formats (GPL): disable all&lt;br /&gt;
&lt;br /&gt;
(*) To simplify matters, if batch export is restricted to PNG, it could be made a separate menu entry in the file menu Indeed, there is very little user interaction left in the dialog when it is checked (basically one can only click &amp;quot;Export&amp;quot;) so it may be more efficiently done in one action (File &amp;gt; Batch export to bitmap) instead of three (File &amp;gt; Export bitmap, tick batch export, Click export). With SHIFT+ALT+CTRL+E as keyboard shortcut and a discardable nag screen (no they are not always evil) about the fact that it overwrites previous files it seems like a good solution to me.&lt;br /&gt;
&lt;br /&gt;
(**) Selection becomes Objects and exports only selected objects (as with &amp;quot;hide all except selected objects&amp;quot; now). Custom behaves by default as &amp;quot;Selection&amp;quot; does now: the coordinates are the one of current selection and, when only one object is selected, the filename to which it is saved is saved in the SVG. When coordinates are changed manually and it reverts to how custom works currently. Does that make sense? Another solution would be to have Page, Drawing,  Object, Selection/Selected area, Custom but it would make the dialog bigger.&lt;br /&gt;
&lt;br /&gt;
===Correspondance between bitmap and vector functionality===&lt;br /&gt;
&amp;lt;table border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;5&amp;quot; cellpadding=&amp;quot;5&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;Bitmap&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Cairo PDF/PS&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
   &amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;page&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;page&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
   &amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;drawing&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;drawing&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
   &amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;selection+hide&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;by ID&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
   &amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;selection-hide&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;no equivalent (could be achieved by clipping though, or setting a crop box in the pdf)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
   &amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;custom&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;no equivalent (idem)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
(see http://jo.irisson.free.fr/dropbox/test-export.zip for an illustrated version)&lt;/div&gt;</summary>
		<author><name>Jiho</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Save_as_vs_export&amp;diff=25424</id>
		<title>Save as vs export</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Save_as_vs_export&amp;diff=25424"/>
		<updated>2008-03-18T10:58:43Z</updated>

		<summary type="html">&lt;p&gt;Jiho: Proposal for sorting out export/save as functionality.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Sort out ''Save as'' vs ''Export'' formats =&lt;br /&gt;
&lt;br /&gt;
This blueprint stems from several discussions on the mailing list about which format should be available in ''Save as'' or in ''Export'' and whether some should be exclusively available in only one of those. &lt;br /&gt;
&lt;br /&gt;
==Current status==&lt;br /&gt;
There are different opinions on the current status of this functionality in Inkscape which is:&lt;br /&gt;
&lt;br /&gt;
; Save&lt;br /&gt;
: contains all possible file formats (except PNG) and saves with the same name. If a format other than Inkscape SVG (or SVGZ) is used, a nag screen is displayed at close time, to warn the user about possible data loss.&lt;br /&gt;
; Save as&lt;br /&gt;
: idem but saves with a new name and this new document is used inside Inkscape. Same nag screen.&lt;br /&gt;
; Save a copy&lt;br /&gt;
: idem but the new document is not used inside Inkscape. It is just written on the disk and work continues in the current document. Hence saving as a format different from SVG does not cause the nag screen to appear (the working document is still SVG)&lt;br /&gt;
; Export&lt;br /&gt;
: saves the drawing or part of it as a PNG raster file, with a new name, and keep the working image as SVG. The ''Export'' dialog can stay open at all times.&lt;br /&gt;
&lt;br /&gt;
As a reminder, current save formats are (at least): Inkscape SVG(Z), Plain SVG(Z), PS, EPS, Cairo PDF, Cairo PS, POV, ODG, TEX, AI (8.0), DXF, AutoCAD DXF, EPSI, GPL, XCF, XAML, Inkscape svg with media ZIP, EMF.&lt;br /&gt;
&lt;br /&gt;
Some people are just fine with this, some other think it is a mess, some other think a middle ground should be found between this and changing everything.&lt;br /&gt;
&lt;br /&gt;
==Proposal==&lt;br /&gt;
&lt;br /&gt;
The new behavior is based on the principles that&lt;br /&gt;
# The user should not be able to shoot him/herself in the foot by saving only to a lossy format&lt;br /&gt;
# The number of items in the file menu should be reduced&lt;br /&gt;
# Functionality (or UI at least) should be consistent for all save/export format&lt;br /&gt;
&lt;br /&gt;
Principle 1 means that ''Save'' and ''Save as'' should only save as Inkscape SVG(Z) (and possibly plain SVG for people that only work in plain SVG?).&lt;br /&gt;
&lt;br /&gt;
Principle 2 means that one of ''Save a copy'' and ''Export'' has to go since they are kind of redundant.&lt;br /&gt;
&lt;br /&gt;
Principle 3 means that, when it is possible, saving in vector formats should offer the option to save only one object or a specific part of the canvas to the saved image, as export to PNG does. Furthermore, the UI should be consistent for this functionality.&lt;br /&gt;
&lt;br /&gt;
The proposed behavior is therefore&lt;br /&gt;
&lt;br /&gt;
; Save&lt;br /&gt;
: saves only as Inkscape SVG(Z) (Plain SVG(Z)? People, please give opinions on this. I don't personally work with SVG as the end format so can't tell what the workflow is in this case. Plain SVG is lossy from the editing point of view but maybe that is a major pain to have two copies of the same document when working with what is supposed to be Inkscape's native format)&lt;br /&gt;
; Save as&lt;br /&gt;
: idem, with a new name and setting the working document to be the new file&lt;br /&gt;
; Export&lt;br /&gt;
: saves to all vector and bitmap (and other e.g. GPL) formats, comprising Inkscape SVG(Z) and Plain SVG(Z), with a new name, keeping the working document in place. The export dialog should present a similar set of options for all file types, disable those not available for the particular file type selected, in a dialog as compact as possible (since it is meant to stay open at all time)&lt;br /&gt;
&lt;br /&gt;
===Description of the export dialog===&lt;br /&gt;
* a file chooser at the top, and file type defaulting to &amp;quot;Guess from extension&amp;quot;.&lt;br /&gt;
* batch export all selected object check box*&lt;br /&gt;
* four tabs underneath (Page, Drawing, Objects, Custom)**&lt;br /&gt;
* depending on the file type, enable or disable batch export&lt;br /&gt;
* when batch export is unchecked/unavailable, enable or disable each tab depending on the file type&lt;br /&gt;
** PNG: enable all&lt;br /&gt;
** PDF/PS/EPS: enable page, drawing, objects&lt;br /&gt;
** other graphic formats: enable page or drawing depending on the behaviour of the file type&lt;br /&gt;
** other formats (GPL): disable all&lt;br /&gt;
&lt;br /&gt;
(*) To simplify matters, if batch export is restricted to PNG, it could be made a separate menu entry in the file menu Indeed, there is very little user interaction left in the dialog when it is checked (basically one can only click &amp;quot;Export&amp;quot;) so it may be more efficiently done in one action (File &amp;gt; Batch export to bitmap) instead of three (File &amp;gt; Export bitmap, tick batch export, Click export). With SHIFT+ALT+CTRL+E as keyboard shortcut and a discardable nag screen about the fact that it overwrites previous files it seems like a good solution to me.&lt;br /&gt;
&lt;br /&gt;
(**) Selection becomes Objects and exports only selected objects (as with &amp;quot;hide all except selected objects&amp;quot; now). Custom behaves by default as &amp;quot;Selection&amp;quot; does now: the coordinates are the one of current selection and, when only one object is selected, the filename to which it is saved is saved in the SVG. When coordinates are changed manually and it reverts to how custom works currently. Does that make sense? Another solution would be to have Page, Drawing,  Object, Selection/Selected area, Custom but it would make the dialog bigger.&lt;br /&gt;
&lt;br /&gt;
===Correspondance between bitmap and vector functionality===&lt;br /&gt;
&amp;lt;table border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;5&amp;quot; cellpadding=&amp;quot;5&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;Bitmap&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Cairo PDF/PS&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
   &amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;page&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;page&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
   &amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;drawing&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;drawing&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
   &amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;selection+hide&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;by ID&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
   &amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;selection-hide&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;no equivalent (could be achieved by clipping though, or setting a crop box in the pdf)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
   &amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;custom&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;no equivalent (idem)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
(see http://jo.irisson.free.fr/dropbox/test-export.zip for an illustrated version)&lt;/div&gt;</summary>
		<author><name>Jiho</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Change_VCS&amp;diff=25184</id>
		<title>Change VCS</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Change_VCS&amp;diff=25184"/>
		<updated>2008-03-17T13:35:48Z</updated>

		<summary type="html">&lt;p&gt;Jiho: /* Bazaar */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;With [[0.47_Refactoring_Plan]] coming along, the idea was brought up to change for a new version control system which would ease refactoring in particular. This page  summarizes  [http://thread.gmane.org/gmane.comp.graphics.inkscape.devel/25255/focus=25274 various email threads]. The project is to use a Distributed Version Control System instead of subversion.&lt;br /&gt;
&lt;br /&gt;
As a general source of information, see http://en.wikipedia.org/wiki/Comparison_of_revision_control_software&lt;br /&gt;
&lt;br /&gt;
== Why change? ==&lt;br /&gt;
&lt;br /&gt;
Several things make a DVCS preferable to subversion for Inkscape:&lt;br /&gt;
* speed&lt;br /&gt;
* local commits allow to commit often&lt;br /&gt;
* easier branching and merging, which is likely to be useful for feature work or Summer of Code work while the core is refactored&lt;br /&gt;
* ... add your favorite feature from the wikipedia page above&lt;br /&gt;
&lt;br /&gt;
This does not come without cost either:&lt;br /&gt;
* someone must move the code to the new system&lt;br /&gt;
* each dev must potentially learn a new system&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Comparison of DVCS ==&lt;br /&gt;
&lt;br /&gt;
Since past discussions seemed to lead to the concensus that the benefits outweigh the cost, the question remaining is which DCVS to use. The three main contenders are [http://git.or.cz/ git], [http://www.selenic.com/mercurial/ mercurial] and [http://bazaar-vcs.org/ bazaar]. Here is a list of the their cost and benefits in the context of Inkscape development&lt;br /&gt;
&lt;br /&gt;
=== Git ===&lt;br /&gt;
Good&lt;br /&gt;
* faster: local commits: &amp;lt;1s vs 4s, push a new branch: instantaneous vs 35 min&lt;br /&gt;
* ability to follow chunk of codes around, without relying on file names. Probably useful from a refactoring point of view&lt;br /&gt;
* probably the fastest growing user base =&amp;gt; many tools&lt;br /&gt;
* TextMate bundle&lt;br /&gt;
&lt;br /&gt;
Bad&lt;br /&gt;
* git is designed with the Linux kernel's hierarchical workflow in mind (few 'push'ers to the central repos), so may require alteration in how Inkscape's workflow works (any dev can commit)&lt;br /&gt;
* we would need to set up and administer this ourselves&lt;br /&gt;
* revisions are indicated with SHA's rather than numbers&lt;br /&gt;
* commands dissimilar to what we're used to with svn (e.g., no 'git update')&lt;br /&gt;
* no decent GUI (for windows?)&lt;br /&gt;
&lt;br /&gt;
Not sure&lt;br /&gt;
* have to git add all modified files before committing them or resort to `git commit -a`. This is shift from the SVN way of doing things. However with single files, `git commit filename` is equivalent to `svn commit filename`. Plus, with multiple files git basic workflow is probably more powerful: it allows to add a set of files to a commit and only then to actually do the commit. The same thing with svn (or other similarly behaving systems) requires to write a long list of files in a single command line.&lt;br /&gt;
&lt;br /&gt;
=== Mercurial (Hg) ===&lt;br /&gt;
Good&lt;br /&gt;
* tortoiseHG (remains to be evaluated)&lt;br /&gt;
* TextMate bundle&lt;br /&gt;
&lt;br /&gt;
Bad&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Bazaar===&lt;br /&gt;
Good&lt;br /&gt;
* already integrated in [[http://doc.bazaar-vcs.org/bzr.dev/en/tutorials/using_bazaar_with_launchpad.html launchpad]]&lt;br /&gt;
** Associating branches to bugs&lt;br /&gt;
** Associating branches to blueprints&lt;br /&gt;
** Changes state of bugs in LP when committing in Bazaar&lt;br /&gt;
** Web interface for creating branches quickly and easily&lt;br /&gt;
* supports bundling changesets&lt;br /&gt;
* tortoiseBZR&lt;br /&gt;
* Fewer commands - makes it easier to learn&lt;br /&gt;
* Supports multiple workflows, including what we use for Inkscape (See http://bazaar-vcs.org/Workflows)&lt;br /&gt;
* Easy administration.  Mostly done through Launchpad, plus Bzr folks are available to help.&lt;br /&gt;
&lt;br /&gt;
Bad&lt;br /&gt;
* no support for line-endings conversion/convention enforcing (but such systems may create the risk of wrongly recognizing binary files)&lt;br /&gt;
&lt;br /&gt;
Not sure&lt;br /&gt;
* A good point is that bazaar supports renames but it could actually be considered a &amp;quot;Bad&amp;quot; by git users&lt;/div&gt;</summary>
		<author><name>Jiho</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Change_VCS&amp;diff=25174</id>
		<title>Change VCS</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Change_VCS&amp;diff=25174"/>
		<updated>2008-03-17T13:34:59Z</updated>

		<summary type="html">&lt;p&gt;Jiho: /* Git */ added some stuff about git's commit behavior&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;With [[0.47_Refactoring_Plan]] coming along, the idea was brought up to change for a new version control system which would ease refactoring in particular. This page  summarizes  [http://thread.gmane.org/gmane.comp.graphics.inkscape.devel/25255/focus=25274 various email threads]. The project is to use a Distributed Version Control System instead of subversion.&lt;br /&gt;
&lt;br /&gt;
As a general source of information, see http://en.wikipedia.org/wiki/Comparison_of_revision_control_software&lt;br /&gt;
&lt;br /&gt;
== Why change? ==&lt;br /&gt;
&lt;br /&gt;
Several things make a DVCS preferable to subversion for Inkscape:&lt;br /&gt;
* speed&lt;br /&gt;
* local commits allow to commit often&lt;br /&gt;
* easier branching and merging, which is likely to be useful for feature work or Summer of Code work while the core is refactored&lt;br /&gt;
* ... add your favorite feature from the wikipedia page above&lt;br /&gt;
&lt;br /&gt;
This does not come without cost either:&lt;br /&gt;
* someone must move the code to the new system&lt;br /&gt;
* each dev must potentially learn a new system&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Comparison of DVCS ==&lt;br /&gt;
&lt;br /&gt;
Since past discussions seemed to lead to the concensus that the benefits outweigh the cost, the question remaining is which DCVS to use. The three main contenders are [http://git.or.cz/ git], [http://www.selenic.com/mercurial/ mercurial] and [http://bazaar-vcs.org/ bazaar]. Here is a list of the their cost and benefits in the context of Inkscape development&lt;br /&gt;
&lt;br /&gt;
=== Git ===&lt;br /&gt;
Good&lt;br /&gt;
* faster: local commits: &amp;lt;1s vs 4s, push a new branch: instantaneous vs 35 min&lt;br /&gt;
* ability to follow chunk of codes around, without relying on file names. Probably useful from a refactoring point of view&lt;br /&gt;
* probably the fastest growing user base =&amp;gt; many tools&lt;br /&gt;
* TextMate bundle&lt;br /&gt;
&lt;br /&gt;
Bad&lt;br /&gt;
* git is designed with the Linux kernel's hierarchical workflow in mind (few 'push'ers to the central repos), so may require alteration in how Inkscape's workflow works (any dev can commit)&lt;br /&gt;
* we would need to set up and administer this ourselves&lt;br /&gt;
* revisions are indicated with SHA's rather than numbers&lt;br /&gt;
* commands dissimilar to what we're used to with svn (e.g., no 'git update')&lt;br /&gt;
* no decent GUI (for windows?)&lt;br /&gt;
&lt;br /&gt;
Not sure&lt;br /&gt;
* have to git add all modified files before committing them or resort to `git commit -a`. This is shift from the SVN way of doing things. However with single files, `git commit filename` is equivalent to `svn commit filename`. Plus, with multiple files git basic workflow is probably more powerful: it allows to add a set of files to a commit and only then to actually do the commit. The same thing with svn (or other similarly behaving systems) requires to write a long list of files in a single command line.&lt;br /&gt;
&lt;br /&gt;
=== Mercurial (Hg) ===&lt;br /&gt;
Good&lt;br /&gt;
* tortoiseHG (remains to be evaluated)&lt;br /&gt;
* TextMate bundle&lt;br /&gt;
&lt;br /&gt;
Bad&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Bazaar===&lt;br /&gt;
Good&lt;br /&gt;
* already integrated in [[http://doc.bazaar-vcs.org/bzr.dev/en/tutorials/using_bazaar_with_launchpad.html launchpad]]&lt;br /&gt;
** Associating branches to bugs&lt;br /&gt;
** Associating branches to blueprints&lt;br /&gt;
** Changes state of bugs in LP when committing in Bazaar&lt;br /&gt;
** Web interface for creating branches quickly and easily&lt;br /&gt;
* supports renames (could be considered a - by git users)&lt;br /&gt;
* supports bundling changesets&lt;br /&gt;
* tortoiseBZR&lt;br /&gt;
* Fewer commands - makes it easier to learn&lt;br /&gt;
* Supports multiple workflows, including what we use for Inkscape (See http://bazaar-vcs.org/Workflows)&lt;br /&gt;
* Easy administration.  Mostly done through Launchpad, plus Bzr folks are available to help.&lt;br /&gt;
&lt;br /&gt;
Bad&lt;br /&gt;
* no support for line-endings conversion/convention enforcing (but such systems may create the risk of wrongly recognizing binary files)&lt;/div&gt;</summary>
		<author><name>Jiho</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Change_VCS&amp;diff=25164</id>
		<title>Change VCS</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Change_VCS&amp;diff=25164"/>
		<updated>2008-03-17T13:24:06Z</updated>

		<summary type="html">&lt;p&gt;Jiho: Initiated the page as a summary from the long email thread&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;With [[0.47_Refactoring_Plan]] coming along, the idea was brought up to change for a new version control system which would ease refactoring in particular. This page  summarizes  [http://thread.gmane.org/gmane.comp.graphics.inkscape.devel/25255/focus=25274 various email threads]. The project is to use a Distributed Version Control System instead of subversion.&lt;br /&gt;
&lt;br /&gt;
As a general source of information, see http://en.wikipedia.org/wiki/Comparison_of_revision_control_software&lt;br /&gt;
&lt;br /&gt;
== Why change? ==&lt;br /&gt;
&lt;br /&gt;
Several things make a DVCS preferable to subversion for Inkscape:&lt;br /&gt;
* speed&lt;br /&gt;
* local commits allow to commit often&lt;br /&gt;
* easier branching and merging, which is likely to be useful for feature work or Summer of Code work while the core is refactored&lt;br /&gt;
* ... add your favorite feature from the wikipedia page above&lt;br /&gt;
&lt;br /&gt;
This does not come without cost either:&lt;br /&gt;
* someone must move the code to the new system&lt;br /&gt;
* each dev must potentially learn a new system&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Comparison of DVCS ==&lt;br /&gt;
&lt;br /&gt;
Since past discussions seemed to lead to the concensus that the benefits outweigh the cost, the question remaining is which DCVS to use. The three main contenders are [http://git.or.cz/ git], [http://www.selenic.com/mercurial/ mercurial] and [http://bazaar-vcs.org/ bazaar]. Here is a list of the their cost and benefits in the context of Inkscape development&lt;br /&gt;
&lt;br /&gt;
=== Git ===&lt;br /&gt;
Good&lt;br /&gt;
* faster: local commits: &amp;lt;1s vs 4s, push a new branch: instantaneous vs 35 min&lt;br /&gt;
* ability to follow chunk of codes around, without relying on file names. Probably useful from a refactoring point of view&lt;br /&gt;
* probably the fastest growing user base =&amp;gt; many tools&lt;br /&gt;
* TextMate bundle&lt;br /&gt;
&lt;br /&gt;
Bad&lt;br /&gt;
* git is designed with the Linux kernel's hierarchical workflow in mind (few 'push'ers to the central repos), so may require alteration in how Inkscape's workflow works (any dev can commit)&lt;br /&gt;
* we would need to set up and administer this ourselves&lt;br /&gt;
* revisions are indicated with SHA's rather than numbers&lt;br /&gt;
* commands dissimilar to what we're used to with svn (e.g., no 'git update')&lt;br /&gt;
* have to git add all modified files before committing them (or resort to a non specific commit -a)&lt;br /&gt;
* no decent GUI (for windows?)&lt;br /&gt;
&lt;br /&gt;
=== Mercurial (Hg) ===&lt;br /&gt;
Good&lt;br /&gt;
* tortoiseHG (remains to be evaluated)&lt;br /&gt;
* TextMate bundle&lt;br /&gt;
&lt;br /&gt;
Bad&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Bazaar===&lt;br /&gt;
Good&lt;br /&gt;
* already integrated in [[http://doc.bazaar-vcs.org/bzr.dev/en/tutorials/using_bazaar_with_launchpad.html launchpad]]&lt;br /&gt;
** Associating branches to bugs&lt;br /&gt;
** Associating branches to blueprints&lt;br /&gt;
** Changes state of bugs in LP when committing in Bazaar&lt;br /&gt;
** Web interface for creating branches quickly and easily&lt;br /&gt;
* supports renames (could be considered a - by git users)&lt;br /&gt;
* supports bundling changesets&lt;br /&gt;
* tortoiseBZR&lt;br /&gt;
* Fewer commands - makes it easier to learn&lt;br /&gt;
* Supports multiple workflows, including what we use for Inkscape (See http://bazaar-vcs.org/Workflows)&lt;br /&gt;
* Easy administration.  Mostly done through Launchpad, plus Bzr folks are available to help.&lt;br /&gt;
&lt;br /&gt;
Bad&lt;br /&gt;
* no support for line-endings conversion/convention enforcing (but such systems may create the risk of wrongly recognizing binary files)&lt;/div&gt;</summary>
		<author><name>Jiho</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Output_format_requirements&amp;diff=20844</id>
		<title>Output format requirements</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Output_format_requirements&amp;diff=20844"/>
		<updated>2008-02-19T19:32:40Z</updated>

		<summary type="html">&lt;p&gt;Jiho: Reformated&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Inkscape's extensions allow for importing and exporting non-SVG file types and direct editing of the current SVG document. For more information about the Extensions that appear in the Effects menu read [[GettingEffectsWorking]].&lt;br /&gt;
&lt;br /&gt;
=== Open *.TXT ===&lt;br /&gt;
* install perl&lt;br /&gt;
* install SVG perl module&lt;br /&gt;
&lt;br /&gt;
=== Open *.AI ===&lt;br /&gt;
* install perl and optionally Image::Magick&lt;br /&gt;
* Only handles Illustrator versions prior to version 9 (version 9 onwards stores files as PDF according to https://createpdf.adobe.com/cgi-feeder.pl/formats?BP=&amp;amp;LOC=en_US)&lt;br /&gt;
&lt;br /&gt;
=== Save *.AI ===&lt;br /&gt;
* requires pstoedit with the ps2ai filter&lt;br /&gt;
* uses Inkscapes internal ps output extension&lt;br /&gt;
&lt;br /&gt;
=== Open *.PS ===&lt;br /&gt;
* requires skconvert python script from sketch =&amp;gt;&amp;gt; install sketch&lt;br /&gt;
&lt;br /&gt;
=== Open *.WMF ===&lt;br /&gt;
* requires wmf2svg, part of libwmf (http://wvware.sourceforge.net/libwmf.html)&lt;br /&gt;
&lt;br /&gt;
=== Save *.PDF (Win32) ===&lt;br /&gt;
* install [[GhostScript]] http://www.cs.wisc.edu/~ghost/doc/AFPL/get851.htm&lt;br /&gt;
* create ps2pdf.cmd in %instdir%/share/extensions/&lt;br /&gt;
&lt;br /&gt;
    REM BEGIN&lt;br /&gt;
    @echo off&lt;br /&gt;
    REM edit %GSDIR% to match the ghostscript installation directory&lt;br /&gt;
    set GSDIR=%PROGRAMFILES%\gs\gs8.51\&lt;br /&gt;
    set GSBINDIR=%GSDIR%bin&lt;br /&gt;
    set GSLIBDIR=%GSDIR%lib&lt;br /&gt;
    set PATH=%GSBINDIR%;%GSLIBDIR%;%PATH%&lt;br /&gt;
    ps2pdf.bat %1 -&lt;br /&gt;
    REM END&lt;br /&gt;
&lt;br /&gt;
* edit pdf_output.inx&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;inkscape-extension&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;PDF Output&amp;lt;/name&amp;gt;&lt;br /&gt;
        &amp;lt;id&amp;gt;org.inkscape.output.pdf&amp;lt;/id&amp;gt;&lt;br /&gt;
        &amp;lt;dependency type=&amp;quot;extension&amp;quot;&amp;gt;org.inkscape.output.ps&amp;lt;/dependency&amp;gt;&lt;br /&gt;
        &amp;lt;dependency type=&amp;quot;executable&amp;quot; location=&amp;quot;extensions&amp;quot;&amp;gt;ps2pdf.cmd&amp;lt;/dependency&amp;gt;&lt;br /&gt;
    &amp;lt;!--&amp;lt;dependency type=&amp;quot;executable&amp;quot;&amp;gt;ps2pdf&amp;lt;/dependency&amp;gt;--&amp;gt;&lt;br /&gt;
        &amp;lt;output&amp;gt;&lt;br /&gt;
            &amp;lt;extension&amp;gt;.pdf&amp;lt;/extension&amp;gt;&lt;br /&gt;
            &amp;lt;mimetype&amp;gt;image/x-portable-document-format&amp;lt;/mimetype&amp;gt;&lt;br /&gt;
            &amp;lt;filetypename&amp;gt;Adobe PDF (*.pdf)&amp;lt;/filetypename&amp;gt;&lt;br /&gt;
            &amp;lt;filetypetooltip&amp;gt;Adobe Portable Document Format&amp;lt;/filetypetooltip&amp;gt;&lt;br /&gt;
        &amp;lt;/output&amp;gt;&lt;br /&gt;
        &amp;lt;script&amp;gt;&lt;br /&gt;
            &amp;lt;command reldir=&amp;quot;extensions&amp;quot;&amp;gt;ps2pdf.cmd&amp;lt;/command&amp;gt;&lt;br /&gt;
            &amp;lt;helper_extension&amp;gt;org.inkscape.output.ps&amp;lt;/helper_extension&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;
=== Save *.XCF ===&lt;br /&gt;
&lt;br /&gt;
??&lt;br /&gt;
&lt;br /&gt;
[[Category:Extensions]]&lt;/div&gt;</summary>
		<author><name>Jiho</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Extension_requirements&amp;diff=20824</id>
		<title>Extension requirements</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Extension_requirements&amp;diff=20824"/>
		<updated>2008-02-19T19:29:31Z</updated>

		<summary type="html">&lt;p&gt;Jiho: /* Compiling from source */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Setting Up Effects in Inkscape ==&lt;br /&gt;
&lt;br /&gt;
For effects to work you need to be using inkscape .42 or later.&lt;br /&gt;
&lt;br /&gt;
For info about what effects can do, screenshots, and how to make your own go to [http://www.ekips.org/comp/inkscape/ Aarons Site]&lt;br /&gt;
&lt;br /&gt;
If you are interested in opening special file formats through extensions, see  [[GettingExtensionsWorking]].&lt;br /&gt;
&lt;br /&gt;
=== Unhide the Effects menu ===&lt;br /&gt;
&lt;br /&gt;
This is only necessary in verions .41+CVS to .45.&lt;br /&gt;
&lt;br /&gt;
On the &amp;quot;Misc&amp;quot; tab of the &amp;quot;Inkscape Preferences&amp;quot; dialog check the box labeled &amp;quot;Enable script effects&amp;quot;. Close and reopen Inkscape&lt;br /&gt;
&lt;br /&gt;
== Python Effects ==&lt;br /&gt;
=== on Debian GNU / Linux ===&lt;br /&gt;
    apt-get install python python-xml&lt;br /&gt;
&lt;br /&gt;
=== on Microsoft Windows ===&lt;br /&gt;
&amp;lt;b&amp;gt;Important note: From version .44 onwards, Inkscape now includes python in the download, and has effects &amp;lt;i&amp;gt;enabled&amp;lt;/i&amp;gt; by default. Therefore these steps are outdated and no longer needed.&amp;lt;/b&amp;gt; &lt;br /&gt;
&lt;br /&gt;
# Download [http://www.python.org/download/ Python]&lt;br /&gt;
# Install  python and remember the directory you set it to install to. (e.g. C:\Python24 )&lt;br /&gt;
# Set your path variable in Windows. For Windows 2000 or XP read [http://support.microsoft.com/default.aspx?scid=kb;en-us;310519&amp;amp;sd=tech Microsofts instructions] or do&lt;br /&gt;
## Right Click My Computer&lt;br /&gt;
## Properties&lt;br /&gt;
## Advanced Tab&lt;br /&gt;
## Environment Variables&lt;br /&gt;
## In the system variables section select the one named PATH and hit edit.&lt;br /&gt;
## Find the end of all the values in there and add &amp;quot;;*path to python*&amp;quot; where *path to python* is the directory you told python to install to (ie c:\program files\python24)&lt;br /&gt;
## hit Ok, Ok, Apply&lt;br /&gt;
For more general instructions (including instructions for Windows 95,98,ME,NT,2000 and XP) look at the [http://www.chem.gla.ac.uk/%7Elouis/software/faq/q1.html University of Glasgow's] instructions, just remember that you want to set the PATH varable to the python directory. If there is already a path variable, don't delete it, but just add a semicolon and then the full path to the python directory at the end (e.g. PATH = C:\somthing else ; C:\python_directory)&lt;br /&gt;
# Reboot&lt;br /&gt;
# Download and Install [http://sourceforge.net/project/showfiles.php?group_id=6473 PyXML] for whatever version Python you chose to install&lt;br /&gt;
&lt;br /&gt;
To get the effects menu showing up:&lt;br /&gt;
# Load Inscape&lt;br /&gt;
# Go to File &amp;gt; Inkscape Preferences (Shift+Ctrl+P)&lt;br /&gt;
# Select the &amp;quot;Misc&amp;quot; tab and tick &amp;quot;Enable script effects...&amp;quot;&lt;br /&gt;
# Restart Inkscape &lt;br /&gt;
&lt;br /&gt;
If that didn't work, you may like to try to edit the preferences manually:&lt;br /&gt;
# Go to your preferences.xml file (Documents and Settings/USERNAME/Application Data/Inkscape/preferences.xml) &lt;br /&gt;
# Search for &amp;quot;id=&amp;quot;extensions&amp;quot;. &lt;br /&gt;
# If you find it: Add the following line above that &amp;quot;show-effects-menu=&amp;quot;1&amp;quot;. &lt;br /&gt;
# If you can't find it just add&lt;br /&gt;
     &amp;lt;group&lt;br /&gt;
     show-effects-menu=&amp;quot;1&amp;quot;&lt;br /&gt;
     id=&amp;quot;extensions&amp;quot; /&amp;gt;&lt;br /&gt;
Save the file, start up inkscape and use those sweet effects&lt;br /&gt;
&lt;br /&gt;
=== on Mac OS X ===&lt;br /&gt;
&lt;br /&gt;
Starting with version 0.46, Inkscape contains the python packages needed for the extension system. All python extensions should work out of the box. However in case you still have trouble you can install them in their regular location.&lt;br /&gt;
&lt;br /&gt;
==== Binary packages ====&lt;br /&gt;
&lt;br /&gt;
# Download and open http://inkscape.modevia.com/macosx-snap/Python-packages.dmg&lt;br /&gt;
# Browse the disk image to find the packages corresponding to your architecture and Python version &lt;br /&gt;
#* Your architecture is ppc if you have a G4-G5 based Mac, i386 if you have an Intel Mac&lt;br /&gt;
#* By default Panther and Tiger have Python 2.3 and Leopard has Python 2.5. If you have installed a newer version of Python we also provide packages for 2.4&lt;br /&gt;
# Copy all the files and folder from the appropriate location to your Python site-packages directory. By default the site-packages directory is /System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/site-packages  on Panther and Tiger, /Library/Python/2.5/site-packages on Leopard. Otherwise it is somewhere in your custom install of python (/opt/local/Library/Frameworks/Python.framework/Versions/2.4/lib/python2.4/site-packages/ for and install of Python 2.4 via MacPorts for example)&lt;br /&gt;
&lt;br /&gt;
==== Compiling from source ====&lt;br /&gt;
If you prefer, you can install them from source, it is really easy.&lt;br /&gt;
&lt;br /&gt;
# download the source code for [http://sourceforge.net/project/showfiles.php?group_id=1369&amp;amp;package_id=175103 sourceforge numpy repository] and/or [http://codespeak.net/lxml/index.html#download lxml download section]&lt;br /&gt;
# unpack the &amp;lt;code&amp;gt;.tar.gz&amp;lt;/code&amp;gt; file &amp;lt;pre&amp;gt;tar -xzf numpy***.tar.gz lxml***.tar.gz&amp;lt;/pre&amp;gt;&lt;br /&gt;
# for each one &amp;lt;code&amp;gt;cd&amp;lt;code&amp;gt; into the newly created directory&lt;br /&gt;
# build C extensions and install (the install is system wide so you need administrator privileges)&amp;lt;pre&amp;gt;sudo python setup.py install&amp;lt;/pre&amp;gt;and type your password.&lt;br /&gt;
&lt;br /&gt;
The packages are installed in the site-packages directory of your Python install. This is /Library/Python/2.*/site-packages for the stock install of Python on Mac OS X.&lt;br /&gt;
&lt;br /&gt;
== Perl Effects ==&lt;br /&gt;
=== on Debian GNU / Linux ===&lt;br /&gt;
    apt-get install perl libxml-xql-perl&lt;br /&gt;
&lt;br /&gt;
=== on Gentoo GNU / Linux ===&lt;br /&gt;
    emerge -a XML-XQL&lt;br /&gt;
&lt;br /&gt;
=== on Microsoft Windows ===&lt;br /&gt;
    install [http://www.activestate.com/Products/Download/Download.plex?id=ActivePerl [[ActivePerl]]]&lt;br /&gt;
    install XML::XQL::DOM (perhaps like this?)&lt;br /&gt;
        1: install prereqs with ppm:&lt;br /&gt;
 	    install xml-dom&lt;br /&gt;
 	    install parse-yapp&lt;br /&gt;
 	    install datemanip&lt;br /&gt;
        2: download xml-xql from:&lt;br /&gt;
 	    http://www.cpan.org/authors/id/T/TJ/TJMATHER/XML-XQL-0.68.tar.gz&lt;br /&gt;
        3: open command prompt and locate perl&amp;quot;s lib directory with:&lt;br /&gt;
 	    perl -e &amp;quot;print qq(@INC)&amp;quot;    (mine was C:[[/Perl/site/lib]])&lt;br /&gt;
        4: unpack xml-xql archive&lt;br /&gt;
        5: copy contents of XML-XQL-*\lib\XML into C:\Perl\site\lib\XML&lt;br /&gt;
        6: copy XML-XQL-*\XQLParser\Parser.pm to C:\Perl\site\lib\XML\XQL&lt;br /&gt;
&lt;br /&gt;
== Plugin Effects ==&lt;br /&gt;
I have absolutely no idea. Please record your success here. :)&lt;br /&gt;
&lt;br /&gt;
== What if it doesn't work? ==&lt;br /&gt;
Run Inkscape from the console&lt;br /&gt;
&lt;br /&gt;
Use the error messges printed to the console to diagnose the problem (very often missing dependencies)&lt;br /&gt;
&lt;br /&gt;
On Windows you will have to redirect output to a text file like this: &amp;quot;inkscape &amp;gt; output.txt&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Extensions]]&lt;/div&gt;</summary>
		<author><name>Jiho</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Extension_requirements&amp;diff=20814</id>
		<title>Extension requirements</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Extension_requirements&amp;diff=20814"/>
		<updated>2008-02-19T19:27:41Z</updated>

		<summary type="html">&lt;p&gt;Jiho: /* Compiling from source */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Setting Up Effects in Inkscape ==&lt;br /&gt;
&lt;br /&gt;
For effects to work you need to be using inkscape .42 or later.&lt;br /&gt;
&lt;br /&gt;
For info about what effects can do, screenshots, and how to make your own go to [http://www.ekips.org/comp/inkscape/ Aarons Site]&lt;br /&gt;
&lt;br /&gt;
If you are interested in opening special file formats through extensions, see  [[GettingExtensionsWorking]].&lt;br /&gt;
&lt;br /&gt;
=== Unhide the Effects menu ===&lt;br /&gt;
&lt;br /&gt;
This is only necessary in verions .41+CVS to .45.&lt;br /&gt;
&lt;br /&gt;
On the &amp;quot;Misc&amp;quot; tab of the &amp;quot;Inkscape Preferences&amp;quot; dialog check the box labeled &amp;quot;Enable script effects&amp;quot;. Close and reopen Inkscape&lt;br /&gt;
&lt;br /&gt;
== Python Effects ==&lt;br /&gt;
=== on Debian GNU / Linux ===&lt;br /&gt;
    apt-get install python python-xml&lt;br /&gt;
&lt;br /&gt;
=== on Microsoft Windows ===&lt;br /&gt;
&amp;lt;b&amp;gt;Important note: From version .44 onwards, Inkscape now includes python in the download, and has effects &amp;lt;i&amp;gt;enabled&amp;lt;/i&amp;gt; by default. Therefore these steps are outdated and no longer needed.&amp;lt;/b&amp;gt; &lt;br /&gt;
&lt;br /&gt;
# Download [http://www.python.org/download/ Python]&lt;br /&gt;
# Install  python and remember the directory you set it to install to. (e.g. C:\Python24 )&lt;br /&gt;
# Set your path variable in Windows. For Windows 2000 or XP read [http://support.microsoft.com/default.aspx?scid=kb;en-us;310519&amp;amp;sd=tech Microsofts instructions] or do&lt;br /&gt;
## Right Click My Computer&lt;br /&gt;
## Properties&lt;br /&gt;
## Advanced Tab&lt;br /&gt;
## Environment Variables&lt;br /&gt;
## In the system variables section select the one named PATH and hit edit.&lt;br /&gt;
## Find the end of all the values in there and add &amp;quot;;*path to python*&amp;quot; where *path to python* is the directory you told python to install to (ie c:\program files\python24)&lt;br /&gt;
## hit Ok, Ok, Apply&lt;br /&gt;
For more general instructions (including instructions for Windows 95,98,ME,NT,2000 and XP) look at the [http://www.chem.gla.ac.uk/%7Elouis/software/faq/q1.html University of Glasgow's] instructions, just remember that you want to set the PATH varable to the python directory. If there is already a path variable, don't delete it, but just add a semicolon and then the full path to the python directory at the end (e.g. PATH = C:\somthing else ; C:\python_directory)&lt;br /&gt;
# Reboot&lt;br /&gt;
# Download and Install [http://sourceforge.net/project/showfiles.php?group_id=6473 PyXML] for whatever version Python you chose to install&lt;br /&gt;
&lt;br /&gt;
To get the effects menu showing up:&lt;br /&gt;
# Load Inscape&lt;br /&gt;
# Go to File &amp;gt; Inkscape Preferences (Shift+Ctrl+P)&lt;br /&gt;
# Select the &amp;quot;Misc&amp;quot; tab and tick &amp;quot;Enable script effects...&amp;quot;&lt;br /&gt;
# Restart Inkscape &lt;br /&gt;
&lt;br /&gt;
If that didn't work, you may like to try to edit the preferences manually:&lt;br /&gt;
# Go to your preferences.xml file (Documents and Settings/USERNAME/Application Data/Inkscape/preferences.xml) &lt;br /&gt;
# Search for &amp;quot;id=&amp;quot;extensions&amp;quot;. &lt;br /&gt;
# If you find it: Add the following line above that &amp;quot;show-effects-menu=&amp;quot;1&amp;quot;. &lt;br /&gt;
# If you can't find it just add&lt;br /&gt;
     &amp;lt;group&lt;br /&gt;
     show-effects-menu=&amp;quot;1&amp;quot;&lt;br /&gt;
     id=&amp;quot;extensions&amp;quot; /&amp;gt;&lt;br /&gt;
Save the file, start up inkscape and use those sweet effects&lt;br /&gt;
&lt;br /&gt;
=== on Mac OS X ===&lt;br /&gt;
&lt;br /&gt;
Starting with version 0.46, Inkscape contains the python packages needed for the extension system. All python extensions should work out of the box. However in case you still have trouble you can install them in their regular location.&lt;br /&gt;
&lt;br /&gt;
==== Binary packages ====&lt;br /&gt;
&lt;br /&gt;
# Download and open http://inkscape.modevia.com/macosx-snap/Python-packages.dmg&lt;br /&gt;
# Browse the disk image to find the packages corresponding to your architecture and Python version &lt;br /&gt;
#* Your architecture is ppc if you have a G4-G5 based Mac, i386 if you have an Intel Mac&lt;br /&gt;
#* By default Panther and Tiger have Python 2.3 and Leopard has Python 2.5. If you have installed a newer version of Python we also provide packages for 2.4&lt;br /&gt;
# Copy all the files and folder from the appropriate location to your Python site-packages directory. By default the site-packages directory is /System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/site-packages  on Panther and Tiger, /Library/Python/2.5/site-packages on Leopard. Otherwise it is somewhere in your custom install of python (/opt/local/Library/Frameworks/Python.framework/Versions/2.4/lib/python2.4/site-packages/ for and install of Python 2.4 via MacPorts for example)&lt;br /&gt;
&lt;br /&gt;
==== Compiling from source ====&lt;br /&gt;
If you prefer, you can install them from source, it is really easy.&lt;br /&gt;
&lt;br /&gt;
# download the source code for [http://sourceforge.net/project/showfiles.php?group_id=1369&amp;amp;package_id=175103 sourceforge numpy repository] and/or [http://codespeak.net/lxml/index.html#download lxml download section]&lt;br /&gt;
# unpack the &amp;lt;code&amp;gt;.tar.gz&amp;lt;/code&amp;gt; file &amp;lt;pre&amp;gt;tar -xzf numpy***.tar.gz lxml***.tar.gz&amp;lt;/pre&amp;gt;&lt;br /&gt;
# for each one &amp;lt;code&amp;gt;cd&amp;lt;code&amp;gt; into the newly created directory&lt;br /&gt;
# build C extensions and install (the install is system wide so you need administrator privileges)&amp;lt;pre&amp;gt;sudo python setup.py install&amp;lt;/pre&amp;gt;and type your password.&lt;br /&gt;
&lt;br /&gt;
The packages are installed in the &amp;lt;code&amp;gt;site-packages&amp;lt;/code&amp;gt; directory of your Python install. This is &amp;lt;code&amp;gt;/Library/Python/2.*/site-packages/&amp;lt;/code&amp;gt; for the stock install of Python on Mac OS X.&lt;br /&gt;
&lt;br /&gt;
== Perl Effects ==&lt;br /&gt;
=== on Debian GNU / Linux ===&lt;br /&gt;
    apt-get install perl libxml-xql-perl&lt;br /&gt;
&lt;br /&gt;
=== on Gentoo GNU / Linux ===&lt;br /&gt;
    emerge -a XML-XQL&lt;br /&gt;
&lt;br /&gt;
=== on Microsoft Windows ===&lt;br /&gt;
    install [http://www.activestate.com/Products/Download/Download.plex?id=ActivePerl [[ActivePerl]]]&lt;br /&gt;
    install XML::XQL::DOM (perhaps like this?)&lt;br /&gt;
        1: install prereqs with ppm:&lt;br /&gt;
 	    install xml-dom&lt;br /&gt;
 	    install parse-yapp&lt;br /&gt;
 	    install datemanip&lt;br /&gt;
        2: download xml-xql from:&lt;br /&gt;
 	    http://www.cpan.org/authors/id/T/TJ/TJMATHER/XML-XQL-0.68.tar.gz&lt;br /&gt;
        3: open command prompt and locate perl&amp;quot;s lib directory with:&lt;br /&gt;
 	    perl -e &amp;quot;print qq(@INC)&amp;quot;    (mine was C:[[/Perl/site/lib]])&lt;br /&gt;
        4: unpack xml-xql archive&lt;br /&gt;
        5: copy contents of XML-XQL-*\lib\XML into C:\Perl\site\lib\XML&lt;br /&gt;
        6: copy XML-XQL-*\XQLParser\Parser.pm to C:\Perl\site\lib\XML\XQL&lt;br /&gt;
&lt;br /&gt;
== Plugin Effects ==&lt;br /&gt;
I have absolutely no idea. Please record your success here. :)&lt;br /&gt;
&lt;br /&gt;
== What if it doesn't work? ==&lt;br /&gt;
Run Inkscape from the console&lt;br /&gt;
&lt;br /&gt;
Use the error messges printed to the console to diagnose the problem (very often missing dependencies)&lt;br /&gt;
&lt;br /&gt;
On Windows you will have to redirect output to a text file like this: &amp;quot;inkscape &amp;gt; output.txt&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Extensions]]&lt;/div&gt;</summary>
		<author><name>Jiho</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Extension_requirements&amp;diff=20774</id>
		<title>Extension requirements</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Extension_requirements&amp;diff=20774"/>
		<updated>2008-02-19T19:24:56Z</updated>

		<summary type="html">&lt;p&gt;Jiho: /* on Microsoft Windows */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Setting Up Effects in Inkscape ==&lt;br /&gt;
&lt;br /&gt;
For effects to work you need to be using inkscape .42 or later.&lt;br /&gt;
&lt;br /&gt;
For info about what effects can do, screenshots, and how to make your own go to [http://www.ekips.org/comp/inkscape/ Aarons Site]&lt;br /&gt;
&lt;br /&gt;
If you are interested in opening special file formats through extensions, see  [[GettingExtensionsWorking]].&lt;br /&gt;
&lt;br /&gt;
=== Unhide the Effects menu ===&lt;br /&gt;
&lt;br /&gt;
This is only necessary in verions .41+CVS to .45.&lt;br /&gt;
&lt;br /&gt;
On the &amp;quot;Misc&amp;quot; tab of the &amp;quot;Inkscape Preferences&amp;quot; dialog check the box labeled &amp;quot;Enable script effects&amp;quot;. Close and reopen Inkscape&lt;br /&gt;
&lt;br /&gt;
== Python Effects ==&lt;br /&gt;
=== on Debian GNU / Linux ===&lt;br /&gt;
    apt-get install python python-xml&lt;br /&gt;
&lt;br /&gt;
=== on Microsoft Windows ===&lt;br /&gt;
&amp;lt;b&amp;gt;Important note: From version .44 onwards, Inkscape now includes python in the download, and has effects &amp;lt;i&amp;gt;enabled&amp;lt;/i&amp;gt; by default. Therefore these steps are outdated and no longer needed.&amp;lt;/b&amp;gt; &lt;br /&gt;
&lt;br /&gt;
# Download [http://www.python.org/download/ Python]&lt;br /&gt;
# Install  python and remember the directory you set it to install to. (e.g. C:\Python24 )&lt;br /&gt;
# Set your path variable in Windows. For Windows 2000 or XP read [http://support.microsoft.com/default.aspx?scid=kb;en-us;310519&amp;amp;sd=tech Microsofts instructions] or do&lt;br /&gt;
## Right Click My Computer&lt;br /&gt;
## Properties&lt;br /&gt;
## Advanced Tab&lt;br /&gt;
## Environment Variables&lt;br /&gt;
## In the system variables section select the one named PATH and hit edit.&lt;br /&gt;
## Find the end of all the values in there and add &amp;quot;;*path to python*&amp;quot; where *path to python* is the directory you told python to install to (ie c:\program files\python24)&lt;br /&gt;
## hit Ok, Ok, Apply&lt;br /&gt;
For more general instructions (including instructions for Windows 95,98,ME,NT,2000 and XP) look at the [http://www.chem.gla.ac.uk/%7Elouis/software/faq/q1.html University of Glasgow's] instructions, just remember that you want to set the PATH varable to the python directory. If there is already a path variable, don't delete it, but just add a semicolon and then the full path to the python directory at the end (e.g. PATH = C:\somthing else ; C:\python_directory)&lt;br /&gt;
# Reboot&lt;br /&gt;
# Download and Install [http://sourceforge.net/project/showfiles.php?group_id=6473 PyXML] for whatever version Python you chose to install&lt;br /&gt;
&lt;br /&gt;
To get the effects menu showing up:&lt;br /&gt;
# Load Inscape&lt;br /&gt;
# Go to File &amp;gt; Inkscape Preferences (Shift+Ctrl+P)&lt;br /&gt;
# Select the &amp;quot;Misc&amp;quot; tab and tick &amp;quot;Enable script effects...&amp;quot;&lt;br /&gt;
# Restart Inkscape &lt;br /&gt;
&lt;br /&gt;
If that didn't work, you may like to try to edit the preferences manually:&lt;br /&gt;
# Go to your preferences.xml file (Documents and Settings/USERNAME/Application Data/Inkscape/preferences.xml) &lt;br /&gt;
# Search for &amp;quot;id=&amp;quot;extensions&amp;quot;. &lt;br /&gt;
# If you find it: Add the following line above that &amp;quot;show-effects-menu=&amp;quot;1&amp;quot;. &lt;br /&gt;
# If you can't find it just add&lt;br /&gt;
     &amp;lt;group&lt;br /&gt;
     show-effects-menu=&amp;quot;1&amp;quot;&lt;br /&gt;
     id=&amp;quot;extensions&amp;quot; /&amp;gt;&lt;br /&gt;
Save the file, start up inkscape and use those sweet effects&lt;br /&gt;
&lt;br /&gt;
=== on Mac OS X ===&lt;br /&gt;
&lt;br /&gt;
Starting with version 0.46, Inkscape contains the python packages needed for the extension system. All python extensions should work out of the box. However in case you still have trouble you can install them in their regular location.&lt;br /&gt;
&lt;br /&gt;
==== Binary packages ====&lt;br /&gt;
&lt;br /&gt;
# Download and open http://inkscape.modevia.com/macosx-snap/Python-packages.dmg&lt;br /&gt;
# Browse the disk image to find the packages corresponding to your architecture and Python version &lt;br /&gt;
#* Your architecture is ppc if you have a G4-G5 based Mac, i386 if you have an Intel Mac&lt;br /&gt;
#* By default Panther and Tiger have Python 2.3 and Leopard has Python 2.5. If you have installed a newer version of Python we also provide packages for 2.4&lt;br /&gt;
# Copy all the files and folder from the appropriate location to your Python site-packages directory. By default the site-packages directory is /System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/site-packages  on Panther and Tiger, /Library/Python/2.5/site-packages on Leopard. Otherwise it is somewhere in your custom install of python (/opt/local/Library/Frameworks/Python.framework/Versions/2.4/lib/python2.4/site-packages/ for and install of Python 2.4 via MacPorts for example)&lt;br /&gt;
&lt;br /&gt;
==== Compiling from source ====&lt;br /&gt;
If you prefer, you can install them from source, it is really easy.&lt;br /&gt;
&lt;br /&gt;
# download the source code for [http://sourceforge.net/project/showfiles.php?group_id=1369&amp;amp;package_id=175103 sourceforge numpy repository] and/or [http://codespeak.net/lxml/index.html#download lxml download section]&lt;br /&gt;
# unpack the &amp;lt;code&amp;gt;.tar.gz&amp;lt;/code&amp;gt; file &amp;lt;pre&amp;gt;tar -xzf numpy***.tar.gz lxml***.tar.gz&amp;lt;/pre&amp;gt;&lt;br /&gt;
# for each one &amp;lt;code&amp;gt;cd&amp;lt;code&amp;gt; into the newly created directory&lt;br /&gt;
# build C extensions and install (the install is system wide so you need administrator privileges)&amp;lt;pre&amp;gt;sudo python setup.py install&amp;lt;/pre&amp;gt;and type your password.&lt;br /&gt;
&lt;br /&gt;
The packages are installed in the &amp;lt;code&amp;gt;site-packages&amp;lt;/code&amp;gt; directory of your Python install. This is &amp;lt;code&amp;gt;/Library/Python/2.*/site-packages/&amp;lt;code&amp;gt; for the stock install of Python on Mac OS X.&lt;br /&gt;
&lt;br /&gt;
== Perl Effects ==&lt;br /&gt;
=== on Debian GNU / Linux ===&lt;br /&gt;
    apt-get install perl libxml-xql-perl&lt;br /&gt;
&lt;br /&gt;
=== on Gentoo GNU / Linux ===&lt;br /&gt;
    emerge -a XML-XQL&lt;br /&gt;
&lt;br /&gt;
=== on Microsoft Windows ===&lt;br /&gt;
    install [http://www.activestate.com/Products/Download/Download.plex?id=ActivePerl [[ActivePerl]]]&lt;br /&gt;
    install XML::XQL::DOM (perhaps like this?)&lt;br /&gt;
        1: install prereqs with ppm:&lt;br /&gt;
 	    install xml-dom&lt;br /&gt;
 	    install parse-yapp&lt;br /&gt;
 	    install datemanip&lt;br /&gt;
        2: download xml-xql from:&lt;br /&gt;
 	    http://www.cpan.org/authors/id/T/TJ/TJMATHER/XML-XQL-0.68.tar.gz&lt;br /&gt;
        3: open command prompt and locate perl&amp;quot;s lib directory with:&lt;br /&gt;
 	    perl -e &amp;quot;print qq(@INC)&amp;quot;    (mine was C:[[/Perl/site/lib]])&lt;br /&gt;
        4: unpack xml-xql archive&lt;br /&gt;
        5: copy contents of XML-XQL-*\lib\XML into C:\Perl\site\lib\XML&lt;br /&gt;
        6: copy XML-XQL-*\XQLParser\Parser.pm to C:\Perl\site\lib\XML\XQL&lt;br /&gt;
&lt;br /&gt;
== Plugin Effects ==&lt;br /&gt;
I have absolutely no idea. Please record your success here. :)&lt;br /&gt;
&lt;br /&gt;
== What if it doesn't work? ==&lt;br /&gt;
Run Inkscape from the console&lt;br /&gt;
&lt;br /&gt;
Use the error messges printed to the console to diagnose the problem (very often missing dependencies)&lt;br /&gt;
&lt;br /&gt;
On Windows you will have to redirect output to a text file like this: &amp;quot;inkscape &amp;gt; output.txt&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Extensions]]&lt;/div&gt;</summary>
		<author><name>Jiho</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Extension_requirements&amp;diff=20764</id>
		<title>Extension requirements</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Extension_requirements&amp;diff=20764"/>
		<updated>2008-02-19T19:22:18Z</updated>

		<summary type="html">&lt;p&gt;Jiho: Merged doc from the separate windows page here. It is obsolete anyway&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Setting Up Effects in Inkscape ==&lt;br /&gt;
&lt;br /&gt;
For effects to work you need to be using inkscape .42 or later.&lt;br /&gt;
&lt;br /&gt;
For info about what effects can do, screenshots, and how to make your own go to [http://www.ekips.org/comp/inkscape/ Aarons Site]&lt;br /&gt;
&lt;br /&gt;
If you are interested in opening special file formats through extensions, see  [[GettingExtensionsWorking]].&lt;br /&gt;
&lt;br /&gt;
=== Unhide the Effects menu ===&lt;br /&gt;
&lt;br /&gt;
This is only necessary in verions .41+CVS to .45.&lt;br /&gt;
&lt;br /&gt;
On the &amp;quot;Misc&amp;quot; tab of the &amp;quot;Inkscape Preferences&amp;quot; dialog check the box labeled &amp;quot;Enable script effects&amp;quot;. Close and reopen Inkscape&lt;br /&gt;
&lt;br /&gt;
== Python Effects ==&lt;br /&gt;
=== on Debian GNU / Linux ===&lt;br /&gt;
    apt-get install python python-xml&lt;br /&gt;
&lt;br /&gt;
=== on Microsoft Windows ===&lt;br /&gt;
&amp;lt;b&amp;gt;Important note: From version .44 onwards, Inkscape now includes python in the download, and has effects &amp;lt;i&amp;gt;enabled&amp;lt;/i&amp;gt; by default. Therefore these steps are outdated and no longer needed.&amp;lt;/b&amp;gt; &lt;br /&gt;
&lt;br /&gt;
# Download [http://www.python.org/download/ Python]&lt;br /&gt;
# Install  python and remember the directory you set it to install to. (e.g. C:\Python24 )&lt;br /&gt;
# Set your path variable in Windows. For Windows 2000 or XP read [http://support.microsoft.com/default.aspx?scid=kb;en-us;310519&amp;amp;sd=tech Microsofts instructions] or do&lt;br /&gt;
## Right Click My Computer&lt;br /&gt;
## Properties&lt;br /&gt;
## Advanced Tab&lt;br /&gt;
## Environment Variables&lt;br /&gt;
## In the system variables section select the one named PATH and hit edit.&lt;br /&gt;
## Find the end of all the values in there and add &amp;quot;;*path to python*&amp;quot; where *path to python* is the directory you told python to install to (ie c:\program files\python24)&lt;br /&gt;
## hit Ok, Ok, Apply&lt;br /&gt;
For more general instructions (including instructions for Windows 95,98,ME,NT,2000 and XP) look at the [http://www.chem.gla.ac.uk/%7Elouis/software/faq/q1.html University of Glasgow's] instructions, just remember that you want to set the PATH varable to the python directory. If there is already a path variable, don't delete it, but just add a semicolon and then the full path to the python directory at the end (e.g. PATH = C:\somthing else ; C:\python_directory)&lt;br /&gt;
# Reboot&lt;br /&gt;
# Download and Install [http://sourceforge.net/project/showfiles.php?group_id=6473 [[PyXML]]] for whatever version Python you chose to install&lt;br /&gt;
&lt;br /&gt;
To get the effects menu showing up:&lt;br /&gt;
# Load Inscape&lt;br /&gt;
# Go to File &amp;gt; Inkscape Preferences (Shift+Ctrl+P)&lt;br /&gt;
# Select the &amp;quot;Misc&amp;quot; tab and tick &amp;quot;Enable script effects...&amp;quot;&lt;br /&gt;
# Restart Inkscape &lt;br /&gt;
&lt;br /&gt;
If that didn't work, you may like to try to edit the preferences manually:&lt;br /&gt;
# Go to your preferences.xml file (Documents and Settings[[/USERNAME/Application]] Data[[/Inkscape/preferences]].xml) &lt;br /&gt;
# Search for &amp;quot;id=&amp;quot;extensions&amp;quot;. &lt;br /&gt;
# If you find it: Add the following line above that &amp;quot;show-effects-menu=&amp;quot;1&amp;quot;. &lt;br /&gt;
# If you can't find it just add   &lt;br /&gt;
    &amp;lt;group     &lt;br /&gt;
     show-effects-menu=&amp;quot;1&amp;quot;&lt;br /&gt;
     id=&amp;quot;extensions&amp;quot; /&amp;gt;&lt;br /&gt;
    e. Save the file&lt;br /&gt;
# Start up inkscape and use those sweet effects&lt;br /&gt;
&lt;br /&gt;
=== on Mac OS X ===&lt;br /&gt;
&lt;br /&gt;
Starting with version 0.46, Inkscape contains the python packages needed for the extension system. All python extensions should work out of the box. However in case you still have trouble you can install them in their regular location.&lt;br /&gt;
&lt;br /&gt;
==== Binary packages ====&lt;br /&gt;
&lt;br /&gt;
# Download and open http://inkscape.modevia.com/macosx-snap/Python-packages.dmg&lt;br /&gt;
# Browse the disk image to find the packages corresponding to your architecture and Python version &lt;br /&gt;
#* Your architecture is ppc if you have a G4-G5 based Mac, i386 if you have an Intel Mac&lt;br /&gt;
#* By default Panther and Tiger have Python 2.3 and Leopard has Python 2.5. If you have installed a newer version of Python we also provide packages for 2.4&lt;br /&gt;
# Copy all the files and folder from the appropriate location to your Python site-packages directory. By default the site-packages directory is /System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/site-packages  on Panther and Tiger, /Library/Python/2.5/site-packages on Leopard. Otherwise it is somewhere in your custom install of python (/opt/local/Library/Frameworks/Python.framework/Versions/2.4/lib/python2.4/site-packages/ for and install of Python 2.4 via MacPorts for example)&lt;br /&gt;
&lt;br /&gt;
==== Compiling from source ====&lt;br /&gt;
If you prefer, you can install them from source, it is really easy.&lt;br /&gt;
&lt;br /&gt;
# download the source code for [http://sourceforge.net/project/showfiles.php?group_id=1369&amp;amp;package_id=175103 sourceforge numpy repository] and/or [http://codespeak.net/lxml/index.html#download lxml download section]&lt;br /&gt;
# unpack the &amp;lt;code&amp;gt;.tar.gz&amp;lt;/code&amp;gt; file &amp;lt;pre&amp;gt;tar -xzf numpy***.tar.gz lxml***.tar.gz&amp;lt;/pre&amp;gt;&lt;br /&gt;
# for each one &amp;lt;code&amp;gt;cd&amp;lt;code&amp;gt; into the newly created directory&lt;br /&gt;
# build C extensions and install (the install is system wide so you need administrator privileges)&amp;lt;pre&amp;gt;sudo python setup.py install&amp;lt;/pre&amp;gt;and type your password.&lt;br /&gt;
&lt;br /&gt;
The packages are installed in the &amp;lt;code&amp;gt;site-packages&amp;lt;/code&amp;gt; directory of your Python install. This is &amp;lt;code&amp;gt;/Library/Python/2.*/site-packages/&amp;lt;code&amp;gt; for the stock install of Python on Mac OS X.&lt;br /&gt;
&lt;br /&gt;
== Perl Effects ==&lt;br /&gt;
=== on Debian GNU / Linux ===&lt;br /&gt;
    apt-get install perl libxml-xql-perl&lt;br /&gt;
&lt;br /&gt;
=== on Gentoo GNU / Linux ===&lt;br /&gt;
    emerge -a XML-XQL&lt;br /&gt;
&lt;br /&gt;
=== on Microsoft Windows ===&lt;br /&gt;
    install [http://www.activestate.com/Products/Download/Download.plex?id=ActivePerl [[ActivePerl]]]&lt;br /&gt;
    install XML::XQL::DOM (perhaps like this?)&lt;br /&gt;
        1: install prereqs with ppm:&lt;br /&gt;
 	    install xml-dom&lt;br /&gt;
 	    install parse-yapp&lt;br /&gt;
 	    install datemanip&lt;br /&gt;
        2: download xml-xql from:&lt;br /&gt;
 	    http://www.cpan.org/authors/id/T/TJ/TJMATHER/XML-XQL-0.68.tar.gz&lt;br /&gt;
        3: open command prompt and locate perl&amp;quot;s lib directory with:&lt;br /&gt;
 	    perl -e &amp;quot;print qq(@INC)&amp;quot;    (mine was C:[[/Perl/site/lib]])&lt;br /&gt;
        4: unpack xml-xql archive&lt;br /&gt;
        5: copy contents of XML-XQL-*\lib\XML into C:\Perl\site\lib\XML&lt;br /&gt;
        6: copy XML-XQL-*\XQLParser\Parser.pm to C:\Perl\site\lib\XML\XQL&lt;br /&gt;
&lt;br /&gt;
== Plugin Effects ==&lt;br /&gt;
I have absolutely no idea. Please record your success here. :)&lt;br /&gt;
&lt;br /&gt;
== What if it doesn't work? ==&lt;br /&gt;
Run Inkscape from the console&lt;br /&gt;
&lt;br /&gt;
Use the error messges printed to the console to diagnose the problem (very often missing dependencies)&lt;br /&gt;
&lt;br /&gt;
On Windows you will have to redirect output to a text file like this: &amp;quot;inkscape &amp;gt; output.txt&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Extensions]]&lt;/div&gt;</summary>
		<author><name>Jiho</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Extension_requirements&amp;diff=20754</id>
		<title>Extension requirements</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Extension_requirements&amp;diff=20754"/>
		<updated>2008-02-19T19:15:57Z</updated>

		<summary type="html">&lt;p&gt;Jiho: /* Setting Up Effects in Inkscape */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Setting Up Effects in Inkscape ==&lt;br /&gt;
&lt;br /&gt;
For effects to work you need to be using inkscape .42 or later.&lt;br /&gt;
&lt;br /&gt;
For info about what effects can do, screenshots, and how to make your own go to [http://www.ekips.org/comp/inkscape/ Aarons Site]&lt;br /&gt;
&lt;br /&gt;
If you are interested in opening special file formats through extensions, see  [[GettingExtensionsWorking]].&lt;br /&gt;
&lt;br /&gt;
=== Unhide the Effects menu ===&lt;br /&gt;
&lt;br /&gt;
This is only necessary in verions .41+CVS to .45.&lt;br /&gt;
&lt;br /&gt;
On the &amp;quot;Misc&amp;quot; tab of the &amp;quot;Inkscape Preferences&amp;quot; dialog check the box labeled &amp;quot;Enable script effects&amp;quot;. Close and reopen Inkscape&lt;br /&gt;
&lt;br /&gt;
== Python Effects ==&lt;br /&gt;
=== on Debian GNU / Linux ===&lt;br /&gt;
    apt-get install python python-xml&lt;br /&gt;
&lt;br /&gt;
=== on Microsoft Windows ===&lt;br /&gt;
[[GettingEffectsWorking/Windows]] Tutorial on Getting Effects to work on Windows&lt;br /&gt;
&lt;br /&gt;
=== on Mac OS X ===&lt;br /&gt;
&lt;br /&gt;
Starting with version 0.46, Inkscape contains the python packages needed for the extension system. All python extensions should work out of the box. However in case you still have trouble you can install them in their regular location.&lt;br /&gt;
&lt;br /&gt;
==== Binary packages ====&lt;br /&gt;
&lt;br /&gt;
# Download and open http://inkscape.modevia.com/macosx-snap/Python-packages.dmg&lt;br /&gt;
# Browse the disk image to find the packages corresponding to your architecture and Python version &lt;br /&gt;
#* Your architecture is ppc if you have a G4-G5 based Mac, i386 if you have an Intel Mac&lt;br /&gt;
#* By default Panther and Tiger have Python 2.3 and Leopard has Python 2.5. If you have installed a newer version of Python we also provide packages for 2.4&lt;br /&gt;
# Copy all the files and folder from the appropriate location to your Python site-packages directory. By default the site-packages directory is /System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/site-packages  on Panther and Tiger, /Library/Python/2.5/site-packages on Leopard. Otherwise it is somewhere in your custom install of python (/opt/local/Library/Frameworks/Python.framework/Versions/2.4/lib/python2.4/site-packages/ for and install of Python 2.4 via MacPorts for example)&lt;br /&gt;
&lt;br /&gt;
==== Compiling from source ====&lt;br /&gt;
If you prefer, you can install them from source, it is really easy.&lt;br /&gt;
&lt;br /&gt;
# download the source code for [http://sourceforge.net/project/showfiles.php?group_id=1369&amp;amp;package_id=175103 sourceforge numpy repository] and/or [http://codespeak.net/lxml/index.html#download lxml download section]&lt;br /&gt;
# unpack the &amp;lt;code&amp;gt;.tar.gz&amp;lt;/code&amp;gt; file &amp;lt;pre&amp;gt;tar -xzf numpy***.tar.gz lxml***.tar.gz&amp;lt;/pre&amp;gt;&lt;br /&gt;
# for each one &amp;lt;code&amp;gt;cd&amp;lt;code&amp;gt; into the newly created directory&lt;br /&gt;
# build C extensions and install (the install is system wide so you need administrator privileges)&amp;lt;pre&amp;gt;sudo python setup.py install&amp;lt;/pre&amp;gt;and type your password.&lt;br /&gt;
&lt;br /&gt;
The packages are installed in the &amp;lt;code&amp;gt;site-packages&amp;lt;/code&amp;gt; directory of your Python install. This is &amp;lt;code&amp;gt;/Library/Python/2.*/site-packages/&amp;lt;code&amp;gt; for the stock install of Python on Mac OS X.&lt;br /&gt;
&lt;br /&gt;
== Perl Effects ==&lt;br /&gt;
=== on Debian GNU / Linux ===&lt;br /&gt;
    apt-get install perl libxml-xql-perl&lt;br /&gt;
&lt;br /&gt;
=== on Gentoo GNU / Linux ===&lt;br /&gt;
    emerge -a XML-XQL&lt;br /&gt;
&lt;br /&gt;
=== on Microsoft Windows ===&lt;br /&gt;
    install [http://www.activestate.com/Products/Download/Download.plex?id=ActivePerl [[ActivePerl]]]&lt;br /&gt;
    install XML::XQL::DOM (perhaps like this?)&lt;br /&gt;
        1: install prereqs with ppm:&lt;br /&gt;
 	    install xml-dom&lt;br /&gt;
 	    install parse-yapp&lt;br /&gt;
 	    install datemanip&lt;br /&gt;
        2: download xml-xql from:&lt;br /&gt;
 	    http://www.cpan.org/authors/id/T/TJ/TJMATHER/XML-XQL-0.68.tar.gz&lt;br /&gt;
        3: open command prompt and locate perl&amp;quot;s lib directory with:&lt;br /&gt;
 	    perl -e &amp;quot;print qq(@INC)&amp;quot;    (mine was C:[[/Perl/site/lib]])&lt;br /&gt;
        4: unpack xml-xql archive&lt;br /&gt;
        5: copy contents of XML-XQL-*\lib\XML into C:\Perl\site\lib\XML&lt;br /&gt;
        6: copy XML-XQL-*\XQLParser\Parser.pm to C:\Perl\site\lib\XML\XQL&lt;br /&gt;
&lt;br /&gt;
== Plugin Effects ==&lt;br /&gt;
I have absolutely no idea. Please record your success here. :)&lt;br /&gt;
&lt;br /&gt;
== What if it doesn't work? ==&lt;br /&gt;
Run Inkscape from the console&lt;br /&gt;
&lt;br /&gt;
Use the error messges printed to the console to diagnose the problem (very often missing dependencies)&lt;br /&gt;
&lt;br /&gt;
On Windows you will have to redirect output to a text file like this: &amp;quot;inkscape &amp;gt; output.txt&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Extensions]]&lt;/div&gt;</summary>
		<author><name>Jiho</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Extension_requirements&amp;diff=20744</id>
		<title>Extension requirements</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Extension_requirements&amp;diff=20744"/>
		<updated>2008-02-19T19:15:26Z</updated>

		<summary type="html">&lt;p&gt;Jiho: /* Setting Up Effects in Inkscape */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Setting Up Effects in Inkscape ==&lt;br /&gt;
&lt;br /&gt;
For effects to work you need to be using inkscape .42 or later.&lt;br /&gt;
&lt;br /&gt;
For info about what effects can do, screenshots, and how to make your own go to [http://www.ekips.org/comp/inkscape/ Aarons Site]&lt;br /&gt;
&lt;br /&gt;
If you are interested in opening special file formats through extensions, see  [[GettingExtensionsWorking]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Unhide the Effects menu ===&lt;br /&gt;
&lt;br /&gt;
This is only necessary in verions .41+CVS to .45.&lt;br /&gt;
&lt;br /&gt;
On the &amp;quot;Misc&amp;quot; tab of the &amp;quot;Inkscape Preferences&amp;quot; dialog check the box labeled &amp;quot;Enable script effects&amp;quot;. Close and reopen Inkscape&lt;br /&gt;
&lt;br /&gt;
== Python Effects ==&lt;br /&gt;
=== on Debian GNU / Linux ===&lt;br /&gt;
    apt-get install python python-xml&lt;br /&gt;
&lt;br /&gt;
=== on Microsoft Windows ===&lt;br /&gt;
[[GettingEffectsWorking/Windows]] Tutorial on Getting Effects to work on Windows&lt;br /&gt;
&lt;br /&gt;
=== on Mac OS X ===&lt;br /&gt;
&lt;br /&gt;
Starting with version 0.46, Inkscape contains the python packages needed for the extension system. All python extensions should work out of the box. However in case you still have trouble you can install them in their regular location.&lt;br /&gt;
&lt;br /&gt;
==== Binary packages ====&lt;br /&gt;
&lt;br /&gt;
# Download and open http://inkscape.modevia.com/macosx-snap/Python-packages.dmg&lt;br /&gt;
# Browse the disk image to find the packages corresponding to your architecture and Python version &lt;br /&gt;
#* Your architecture is ppc if you have a G4-G5 based Mac, i386 if you have an Intel Mac&lt;br /&gt;
#* By default Panther and Tiger have Python 2.3 and Leopard has Python 2.5. If you have installed a newer version of Python we also provide packages for 2.4&lt;br /&gt;
# Copy all the files and folder from the appropriate location to your Python site-packages directory. By default the site-packages directory is /System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/site-packages  on Panther and Tiger, /Library/Python/2.5/site-packages on Leopard. Otherwise it is somewhere in your custom install of python (/opt/local/Library/Frameworks/Python.framework/Versions/2.4/lib/python2.4/site-packages/ for and install of Python 2.4 via MacPorts for example)&lt;br /&gt;
&lt;br /&gt;
==== Compiling from source ====&lt;br /&gt;
If you prefer, you can install them from source, it is really easy.&lt;br /&gt;
&lt;br /&gt;
# download the source code for [http://sourceforge.net/project/showfiles.php?group_id=1369&amp;amp;package_id=175103 sourceforge numpy repository] and/or [http://codespeak.net/lxml/index.html#download lxml download section]&lt;br /&gt;
# unpack the &amp;lt;code&amp;gt;.tar.gz&amp;lt;/code&amp;gt; file &amp;lt;pre&amp;gt;tar -xzf numpy***.tar.gz lxml***.tar.gz&amp;lt;/pre&amp;gt;&lt;br /&gt;
# for each one &amp;lt;code&amp;gt;cd&amp;lt;code&amp;gt; into the newly created directory&lt;br /&gt;
# build C extensions and install (the install is system wide so you need administrator privileges)&amp;lt;pre&amp;gt;sudo python setup.py install&amp;lt;/pre&amp;gt;and type your password.&lt;br /&gt;
&lt;br /&gt;
The packages are installed in the &amp;lt;code&amp;gt;site-packages&amp;lt;/code&amp;gt; directory of your Python install. This is &amp;lt;code&amp;gt;/Library/Python/2.*/site-packages/&amp;lt;code&amp;gt; for the stock install of Python on Mac OS X.&lt;br /&gt;
&lt;br /&gt;
== Perl Effects ==&lt;br /&gt;
=== on Debian GNU / Linux ===&lt;br /&gt;
    apt-get install perl libxml-xql-perl&lt;br /&gt;
&lt;br /&gt;
=== on Gentoo GNU / Linux ===&lt;br /&gt;
    emerge -a XML-XQL&lt;br /&gt;
&lt;br /&gt;
=== on Microsoft Windows ===&lt;br /&gt;
    install [http://www.activestate.com/Products/Download/Download.plex?id=ActivePerl [[ActivePerl]]]&lt;br /&gt;
    install XML::XQL::DOM (perhaps like this?)&lt;br /&gt;
        1: install prereqs with ppm:&lt;br /&gt;
 	    install xml-dom&lt;br /&gt;
 	    install parse-yapp&lt;br /&gt;
 	    install datemanip&lt;br /&gt;
        2: download xml-xql from:&lt;br /&gt;
 	    http://www.cpan.org/authors/id/T/TJ/TJMATHER/XML-XQL-0.68.tar.gz&lt;br /&gt;
        3: open command prompt and locate perl&amp;quot;s lib directory with:&lt;br /&gt;
 	    perl -e &amp;quot;print qq(@INC)&amp;quot;    (mine was C:[[/Perl/site/lib]])&lt;br /&gt;
        4: unpack xml-xql archive&lt;br /&gt;
        5: copy contents of XML-XQL-*\lib\XML into C:\Perl\site\lib\XML&lt;br /&gt;
        6: copy XML-XQL-*\XQLParser\Parser.pm to C:\Perl\site\lib\XML\XQL&lt;br /&gt;
&lt;br /&gt;
== Plugin Effects ==&lt;br /&gt;
I have absolutely no idea. Please record your success here. :)&lt;br /&gt;
&lt;br /&gt;
== What if it doesn't work? ==&lt;br /&gt;
Run Inkscape from the console&lt;br /&gt;
&lt;br /&gt;
Use the error messges printed to the console to diagnose the problem (very often missing dependencies)&lt;br /&gt;
&lt;br /&gt;
On Windows you will have to redirect output to a text file like this: &amp;quot;inkscape &amp;gt; output.txt&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Extensions]]&lt;/div&gt;</summary>
		<author><name>Jiho</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Extension_requirements&amp;diff=20734</id>
		<title>Extension requirements</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Extension_requirements&amp;diff=20734"/>
		<updated>2008-02-19T19:07:00Z</updated>

		<summary type="html">&lt;p&gt;Jiho: Updated the status of Python&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Setting Up Effects in Inkscape ==&lt;br /&gt;
&amp;lt;i&amp;gt;For effects to work you need to be using inkscape .42 or later.&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;i&amp;gt;For info about what effects can do, screenshots, and how to make your own go to [http://www.ekips.org/comp/inkscape/ Aarons Site]&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;i&amp;gt;See also [[GettingExtensionsWorking]].&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Unhide the Effects menu ===&lt;br /&gt;
(Only necessary in some versions of Inkscape. Between .41 and .45)&lt;br /&gt;
&lt;br /&gt;
On the &amp;quot;Misc&amp;quot; tab of the &amp;quot;Inkscape Preferences&amp;quot; dialog check the box labeled &amp;quot;Enable script effects&amp;quot; (0.41+CVS onwards only)&lt;br /&gt;
&lt;br /&gt;
Close and reopen Inkscape&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Python Effects ==&lt;br /&gt;
=== on Debian GNU / Linux ===&lt;br /&gt;
    apt-get install python python-xml&lt;br /&gt;
&lt;br /&gt;
=== on Microsoft Windows ===&lt;br /&gt;
[[GettingEffectsWorking/Windows]] Tutorial on Getting Effects to work on Windows&lt;br /&gt;
&lt;br /&gt;
=== on Mac OS X ===&lt;br /&gt;
&lt;br /&gt;
Starting with version 0.46, Inkscape contains the python packages needed for the extension system. All python extensions should work out of the box. However in case you still have trouble you can install them in their regular location.&lt;br /&gt;
&lt;br /&gt;
==== Binary packages ====&lt;br /&gt;
&lt;br /&gt;
# Download and open http://inkscape.modevia.com/macosx-snap/Python-packages.dmg&lt;br /&gt;
# Browse the disk image to find the packages corresponding to your architecture and Python version &lt;br /&gt;
#* Your architecture is ppc if you have a G4-G5 based Mac, i386 if you have an Intel Mac&lt;br /&gt;
#* By default Panther and Tiger have Python 2.3 and Leopard has Python 2.5. If you have installed a newer version of Python we also provide packages for 2.4&lt;br /&gt;
# Copy all the files and folder from the appropriate location to your Python site-packages directory. By default the site-packages directory is /System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/site-packages  on Panther and Tiger, /Library/Python/2.5/site-packages on Leopard. Otherwise it is somewhere in your custom install of python (/opt/local/Library/Frameworks/Python.framework/Versions/2.4/lib/python2.4/site-packages/ for and install of Python 2.4 via MacPorts for example)&lt;br /&gt;
&lt;br /&gt;
==== Compiling from source ====&lt;br /&gt;
If you prefer, you can install them from source, it is really easy.&lt;br /&gt;
&lt;br /&gt;
# download the source code for [http://sourceforge.net/project/showfiles.php?group_id=1369&amp;amp;package_id=175103 sourceforge numpy repository] and/or [http://codespeak.net/lxml/index.html#download lxml download section]&lt;br /&gt;
# unpack the &amp;lt;code&amp;gt;.tar.gz&amp;lt;/code&amp;gt; file &amp;lt;pre&amp;gt;tar -xzf numpy***.tar.gz lxml***.tar.gz&amp;lt;/pre&amp;gt;&lt;br /&gt;
# for each one &amp;lt;code&amp;gt;cd&amp;lt;code&amp;gt; into the newly created directory&lt;br /&gt;
# build C extensions and install (the install is system wide so you need administrator privileges)&amp;lt;pre&amp;gt;sudo python setup.py install&amp;lt;/pre&amp;gt;and type your password.&lt;br /&gt;
&lt;br /&gt;
The packages are installed in the &amp;lt;code&amp;gt;site-packages&amp;lt;/code&amp;gt; directory of your Python install. This is &amp;lt;code&amp;gt;/Library/Python/2.*/site-packages/&amp;lt;code&amp;gt; for the stock install of Python on Mac OS X.&lt;br /&gt;
&lt;br /&gt;
== Perl Effects ==&lt;br /&gt;
=== on Debian GNU / Linux ===&lt;br /&gt;
    apt-get install perl libxml-xql-perl&lt;br /&gt;
&lt;br /&gt;
=== on Gentoo GNU / Linux ===&lt;br /&gt;
    emerge -a XML-XQL&lt;br /&gt;
&lt;br /&gt;
=== on Microsoft Windows ===&lt;br /&gt;
    install [http://www.activestate.com/Products/Download/Download.plex?id=ActivePerl [[ActivePerl]]]&lt;br /&gt;
    install XML::XQL::DOM (perhaps like this?)&lt;br /&gt;
        1: install prereqs with ppm:&lt;br /&gt;
 	    install xml-dom&lt;br /&gt;
 	    install parse-yapp&lt;br /&gt;
 	    install datemanip&lt;br /&gt;
        2: download xml-xql from:&lt;br /&gt;
 	    http://www.cpan.org/authors/id/T/TJ/TJMATHER/XML-XQL-0.68.tar.gz&lt;br /&gt;
        3: open command prompt and locate perl&amp;quot;s lib directory with:&lt;br /&gt;
 	    perl -e &amp;quot;print qq(@INC)&amp;quot;    (mine was C:[[/Perl/site/lib]])&lt;br /&gt;
        4: unpack xml-xql archive&lt;br /&gt;
        5: copy contents of XML-XQL-*\lib\XML into C:\Perl\site\lib\XML&lt;br /&gt;
        6: copy XML-XQL-*\XQLParser\Parser.pm to C:\Perl\site\lib\XML\XQL&lt;br /&gt;
&lt;br /&gt;
== Plugin Effects ==&lt;br /&gt;
I have absolutely no idea. Please record your success here. :)&lt;br /&gt;
&lt;br /&gt;
== What if it doesn't work? ==&lt;br /&gt;
Run Inkscape from the console&lt;br /&gt;
&lt;br /&gt;
Use the error messges printed to the console to diagnose the problem (very often missing dependencies)&lt;br /&gt;
&lt;br /&gt;
On Windows you will have to redirect output to a text file like this: &amp;quot;inkscape &amp;gt; output.txt&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Extensions]]&lt;/div&gt;</summary>
		<author><name>Jiho</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=CompilingMacOsX&amp;diff=20574</id>
		<title>CompilingMacOsX</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=CompilingMacOsX&amp;diff=20574"/>
		<updated>2008-02-18T11:28:24Z</updated>

		<summary type="html">&lt;p&gt;Jiho: Added universal compilation with macports&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= For the impatient =&lt;br /&gt;
&lt;br /&gt;
1. Install [http://developer.apple.com/tools/xcode/ XCode tools] from your OS X installation DVD&lt;br /&gt;
&lt;br /&gt;
2. Download and install [http://www.macports.org/ MacPorts]&lt;br /&gt;
&lt;br /&gt;
3. In Terminal (Applications&amp;gt;Utilities&amp;gt;Terminal) type&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port sync&lt;br /&gt;
sudo port selfupdate&lt;br /&gt;
sudo port install cairo +pdf boehmgc gtkmm intltool libxslt lcms popt poppler boost gnome-vfs \&lt;br /&gt;
 libgnomeprintui automake autoconf subversion&amp;lt;/pre&amp;gt;&lt;br /&gt;
Grab a cup of cofee&lt;br /&gt;
&lt;br /&gt;
4. In Terminal, get and build Inkscape&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
svn co https://inkscape.svn.sourceforge.net/svnroot/inkscape/inkscape/trunk inkscape&lt;br /&gt;
cd inkscape/packaging/macosx/&lt;br /&gt;
./osx-build.sh a c b i -s p&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''Et voilà''. If you want to understand what you just did, read on.&lt;br /&gt;
&lt;br /&gt;
= Requirements =&lt;br /&gt;
To compile Inkscape from source you need:&lt;br /&gt;
*Mac OS X &amp;gt; 10.3&lt;br /&gt;
*XCode Tools. They are on your installation DVD, in the optional installs, or can be download from [http://developer.apple.com/tools/xcode/ Apple Developer Connection]. You can customize the install to make it smaller (avoir documentation and example software for example). You need at least: gcc, XCode, X11SDK.&lt;br /&gt;
*Inkscape's source code. You can download an [http://www.inkscape.org/download.php official release source code], a [http://inkscape.modevia.com/svn-snap/?M=D development snapshot] or checkout a copy of the current state of the [http://www.inkscape.org/svn.php?lang=en SVN repository] using [http://subversion.tigris.org/ subversion]. Subversion comes pre-installed on Leopard. On previous system, subversion can be installed by package management systems (see point below) or with an OS X installer [http://homepage.mac.com/martinott/ package]&lt;br /&gt;
*A means of getting Inkscape's numerous dependencies: glibmm, gtkmm, lmcs, boehmgc... We recommend the use of [http://www.macports.org/ MacPorts] right now. [http://www.finkproject.org/ Fink] was used in the past but there is no information about wether it meets Inkscape needs currently. Alternatively you could use Inkscape all-in-one universal build script to install them (see below).&lt;br /&gt;
&lt;br /&gt;
= Compiling Inkscape with X11, using MacPorts [Recommended method]=&lt;br /&gt;
&lt;br /&gt;
== Installing dependencies ==&lt;br /&gt;
You can use MacPorts to list Inkscape dependencies:&lt;br /&gt;
&amp;lt;pre&amp;gt;port deps inkscape&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some are mandatory and you can install them with the command:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port install boehmgc gtkmm intltool libxslt lcms popt boost&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Others provide additional functionality to Inkscape:&lt;br /&gt;
* &amp;lt;code&amp;gt;gnome-vfs&amp;lt;/code&amp;gt; : access to remote servers, in particular import from Open Clipart Library&lt;br /&gt;
* &amp;lt;code&amp;gt;aspell&amp;lt;/code&amp;gt; : check spelling of text elements [Note: I have never seen it working on OS X]&lt;br /&gt;
* &amp;lt;code&amp;gt;libgnomeprintui&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;loudmouth&amp;lt;/code&amp;gt; : jabber library used by InkBoard&lt;br /&gt;
* &amp;lt;code&amp;gt;cairo +pdf&amp;lt;/code&amp;gt; (cairo with the pdf variant) : better pdf export&lt;br /&gt;
* &amp;lt;code&amp;gt;poppler&amp;lt;/code&amp;gt; : better pdf import&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port install gnome-vfs aspell libgnomeprintui loudmouth cairo +pdf poppler&amp;lt;/pre&amp;gt;&lt;br /&gt;
NB: Cairo was already installed at previous step as a GTK dependency. You need to either deactivate the old version and install this one, or directly write it on the command line above.&lt;br /&gt;
&lt;br /&gt;
In addition, Inkscape requires versions of the autotools more recent thant those that ship with OS X. Install them:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port install autoconf automake&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Setting the build environment ==&lt;br /&gt;
MacPorts's hierarchy (/opt/local/) is not searched for libraries by default. Therefore, before the configuration starts, some environment variables need to be set. The environment variables are presented in bash syntax here. &lt;br /&gt;
&amp;lt;pre&amp;gt;export LIBPREFIX=&amp;quot;/opt/local&amp;quot;&lt;br /&gt;
#  automake seach path&lt;br /&gt;
export CPATH=&amp;quot;$LIBPREFIX/include&amp;quot;&lt;br /&gt;
#  configure search path&lt;br /&gt;
export CPPFLAGS=&amp;quot;-I$LIBPREFIX/include&amp;quot;&lt;br /&gt;
export LDFLAGS=&amp;quot;-L$LIBPREFIX/lib&amp;quot;&lt;br /&gt;
#  compiler arguments&lt;br /&gt;
export CFLAGS=&amp;quot;-O3 -Wall&amp;quot;&lt;br /&gt;
export CXXFLAGS=&amp;quot;$CFLAGS&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also use &amp;lt;code&amp;gt;[http://en.wikipedia.org/wiki/Ccache ccache]&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;sudo port install ccache&amp;lt;/code&amp;gt;) to speed up the compilation a bit. To do so, add compiler variables:&lt;br /&gt;
&amp;lt;pre&amp;gt;export CC=&amp;quot;ccache gcc&amp;quot;&lt;br /&gt;
export CXX=&amp;quot;ccache g++&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Configuring ==&lt;br /&gt;
If you compile Inkscape for the first time from an svn checkout you need to generate the configure script. Navigate to Inkscape's source directory and run:&lt;br /&gt;
&amp;lt;pre&amp;gt;./autogen.sh&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then run configure with the options &amp;lt;code&amp;gt;--disable-static --enable-shared&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;--prefix&amp;lt;/code&amp;gt; which sets the directory where the build products are placed. It must be somewhere you have write access to.&lt;br /&gt;
&amp;lt;pre&amp;gt;./configure --disable-static --enable-shared --prefix=/path/to/build/products/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I you want to package Inkscape into a double-clickable &amp;lt;code&amp;gt;.app&amp;lt;/code&amp;gt; bundle in order to access it like a regular OS X application (you probably want to), you need to add the option &amp;lt;code&amp;gt;--enable-osxapp&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;./configure {...} --enable-osxapp&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you have loudmouth installed and you want to enable whiteboard functionality in Inkscape, add &amp;lt;code&amp;gt;--enable-inkboard&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Other configuration options can be set, check the list of options by issuing:&lt;br /&gt;
&amp;lt;pre&amp;gt;./configure --help&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Building and Installing ==&lt;br /&gt;
Just run:&lt;br /&gt;
&amp;lt;pre&amp;gt;make&lt;br /&gt;
make install&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Creating an .app bundle ==&lt;br /&gt;
Assuming that you have used the &amp;lt;code&amp;gt;--enable-osxapp&amp;lt;/code&amp;gt; option during &amp;lt;code&amp;gt;configure&amp;lt;/code&amp;gt;, navigate to Mac OS X packaging directory in Inkscape source code and use the automated script:&lt;br /&gt;
&amp;lt;pre&amp;gt;cd packaging/macosx&lt;br /&gt;
./osx-app.sh -s -b /path/to/install/prefix/bin/inkscape -p ../../Info.plist&amp;lt;/pre&amp;gt;&lt;br /&gt;
The script copies Inkscape binary and all its dependencies into the app bundle. The &amp;lt;code&amp;gt;-s&amp;lt;/code&amp;gt; options strips libraries from debugging information (the bundle is therefore smaller). Omit this option if you want to keep debugging info.&lt;br /&gt;
&lt;br /&gt;
== Creating a disk image to distribute Inkscape ==&lt;br /&gt;
Inkscape.app created at the previous step is completely independent from the original location of MacPorts libraries and can therefore be distributed. It will only work on your platform though (PPC or Intel) and incompatibilities are known between X11 versions on different major versions of OS X (Panther, Tiger and Leopard). The general rule is that versions are not backward compatible.&lt;br /&gt;
&lt;br /&gt;
The most widespread way of distributing applications on Mac OS X is via .dmg images. You can created a dmg image of Inkscape, with a nice background and all, using the script:&lt;br /&gt;
&amp;lt;pre&amp;gt;./osx-dmg.sh -p Inkscape.app&amp;lt;/pre&amp;gt;&lt;br /&gt;
in the packaging directory for Mac OS X (where your app bundle should be, otherwise modify the path to Inkscape.app).&lt;br /&gt;
&lt;br /&gt;
== Automated build script ==&lt;br /&gt;
All these steps are automated by a build script: &amp;lt;code&amp;gt;osx-build.sh&amp;lt;/code&amp;gt;. It has built-in help so to known how to use it just type:&lt;br /&gt;
&amp;lt;pre&amp;gt;./osx-build.sh help&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Compiling a Universal Binary of Inkscape with X11, using the all-in-one build script [untested]=&lt;br /&gt;
&lt;br /&gt;
To build a Universal Binary of Inkscape you also need to build Universal versions of all its dependencies (i.e., gtk+, cairo, pango, etc).  You can do this using the build-gtk.sh script from the Inkscape repository (it's in packaging/macosx/native-gtk/).&lt;br /&gt;
&lt;br /&gt;
This process is relatively untested, as it is only being used by Michael Wybrow  for official Inkscape release builds.  If you have any troubles using this process then please report them to Michael (mjwybrow on sourceforge).&lt;br /&gt;
&lt;br /&gt;
The process is:&lt;br /&gt;
&amp;lt;pre&amp;gt;export PREFIX=/your/install/prefix&lt;br /&gt;
export UNIVERSAL_BUILD=Yes&lt;br /&gt;
./build-gtk bootstrap&lt;br /&gt;
./build-gtk build inkscape&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Compiling a Universal Binary of Inkscape with X11, using MacPorts [in progress]=&lt;br /&gt;
&lt;br /&gt;
Just use the +universal variant of everything to build universal versions.&lt;br /&gt;
&lt;br /&gt;
Port that fail currently&lt;br /&gt;
* poppler : Error: Error executing universal: Default universal variant only works with ports based on configure&lt;br /&gt;
* docbook-xsl : similar. can be build non universal it is not a runtime dependency. it is just a compile time dependency for gtk-doc. but this is a pain since one cannot just do port install gtk2 +univeral anymore because it tries to find docbook-xsl +universal. so one have to install everything by hand.&lt;br /&gt;
* more to come...&lt;br /&gt;
&lt;br /&gt;
= Compiling Inkscape with native GTK using MacPorts [experimental] =&lt;br /&gt;
This process is very similar to compiling an X11 version of Inkscape except for the building of dependencies: need to build native versions of Inkscape dependencies. At the moment (2007-12-17) this process does not produce a usable version of Inkscape but the more people try to use it, the quicker the bugs will be ironed out!&lt;br /&gt;
&lt;br /&gt;
== Native version of Inkscape dependencies ==&lt;br /&gt;
Thanks to the power of port &amp;quot;variants&amp;quot; and port &amp;quot;deactivation&amp;quot; you can install native versions of gtk, cairo, pango and such, alongside the regular X11 ones. To know which ports have a &amp;lt;code&amp;gt;quartz&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;no_x11&amp;lt;/code&amp;gt; variant, use the command:&lt;br /&gt;
&amp;lt;pre&amp;gt;port list variant:quartz variant:no_x11&amp;lt;/pre&amp;gt;&lt;br /&gt;
This will give you an idea of what need to be replaced.&lt;br /&gt;
&lt;br /&gt;
Assuming your MacPorts tree has been already used to build regular versions of Inkscape, you first need to deactivate (suppress from the tree without really uninstalling) the X11 versions of gtk, cairo, cairomm and pango:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port deactivate gtk2 cairo cairomm pango&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then install native variants:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port install cairo +quartz+pdf+no_x11 cairomm +quartz pango +no_x11 poppler +quartz gtk2 +quartz&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Rather than deactivating and reactivating ports, you can also keep two MacPorts trees side by side, provided you install the second one from source. Let say I want to install a new tree for native versions in /opt/local/native, I would do&lt;br /&gt;
&amp;lt;pre&amp;gt;export PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/X11R6/bin&lt;br /&gt;
cd ~/MacPorts-1.x.x/&lt;br /&gt;
./configure --prefix=/opt/local-native --with-tclpackage=/Library/Tcl/macports-native&lt;br /&gt;
make&lt;br /&gt;
sudo make install&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then you need to have only one version of the port command in the path at any time so you need to setup your .bashrc (or .bash_profile or .profile) accordingly. I use shell aliases to quickly and temporarily switch to the universal version:&lt;br /&gt;
&amp;lt;pre&amp;gt;alias portpathregular=&amp;quot;export PATH=/opt/local/bin:/opt/local/sbin:/Developer/Tools:/usr/local/bin: \&lt;br /&gt;
/usr/X11R6/bin:/bin:/sbin:/usr/bin:/usr/sbin&amp;quot;&lt;br /&gt;
alias portpathuniv=&amp;quot;export PATH=/opt/local-univ/bin:/opt/local-univ/sbin:/Developer/Tools:/usr/local/bin:  \&lt;br /&gt;
/usr/X11R6/bin:/bin:/sbin:/usr/bin:/usr/sbin&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
NB: the \ are just to mark line continuation here, suppress them and put everything in one line.&lt;br /&gt;
&lt;br /&gt;
== Install the rest ==&lt;br /&gt;
Eventually, follow the regular install procedure for the rest:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port install libxslt boost boehmgc gtkmm lcms intltool popt&amp;lt;/pre&amp;gt;&lt;br /&gt;
If your MacPorts tree was already ready to compile Inkscape, you should not need to reinstall anything, with the possible exception of gtkmm, which may need to be rebuilt against the native version of gtk rather than against the X11 one (please someone confirm this).&lt;br /&gt;
&lt;br /&gt;
Get inkscape source code and go in the mac OS X specific packaging directory&lt;br /&gt;
&amp;lt;pre&amp;gt;cd packaging/macosx&amp;lt;/pre&amp;gt;&lt;br /&gt;
There edit &amp;lt;code&amp;gt;osx-build.sh&amp;lt;/code&amp;gt; to remove the configure option &amp;lt;code&amp;gt;--enable-osxapp&amp;lt;/code&amp;gt; because it puts inkscape in a .app bundle where it is started together with X11, which would defeat the purpose of this native compilation. You can also specify an alternative install prefix if you want. Then&lt;br /&gt;
&amp;lt;pre&amp;gt;./osx-build.sh u a c b i&amp;lt;/pre&amp;gt;&lt;br /&gt;
and a native version of Inkscape is installed in the prefix you specified or in the &amp;lt;code&amp;gt;Build/bin&amp;lt;/code&amp;gt; directory of Inkscape's source code. You can test it by&lt;br /&gt;
&amp;lt;pre&amp;gt; cd ../../Build/bin/&lt;br /&gt;
./inkscape&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NB: if you compiled a GTK theme engine against your old GTK install (i.e. the one with X11) and try to use it with the new install, it will complain, so edit &amp;lt;code&amp;gt;~/.gtkrc-2.0&amp;lt;/code&amp;gt; to remove the offending theme or recompile it with the new native GTK.&lt;br /&gt;
&lt;br /&gt;
= Compiling Inkscape with native GTK using the all in one build script [experimental] =&lt;br /&gt;
&lt;br /&gt;
To build a native-GTK build of Inkscape, GTK and some of its dependencies must be built with special options. You can do this using the build-gtk.sh script from the Inkscape repository (it's in packaging/macosx/native-gtk/).  This is a modified version of the Imendio native build script, found with instructions on this page:&lt;br /&gt;
http://developer.imendio.com/projects/gtk-macosx/build-instructions&lt;br /&gt;
&lt;br /&gt;
This process is relatively untested. If you have any troubles using this process then please report them to Michael Wybrow (mjwybrow on sourceforge).&lt;br /&gt;
&lt;br /&gt;
The process is:&lt;br /&gt;
&amp;lt;pre&amp;gt;export PREFIX=/your/install/prefix&lt;br /&gt;
./build-gtk bootstrap&lt;br /&gt;
./build-gtk build inkscape&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Enabling python effects =&lt;br /&gt;
moved to [[GettingEffectsWorking]]. They should work out of the box in the new versions anyway.&lt;br /&gt;
&lt;br /&gt;
= Links =&lt;br /&gt;
&lt;br /&gt;
== User Examples ==&lt;br /&gt;
* Adam Strzeleki has outlined some improvements to this process on the Inkscape [http://www.nabble.com/Inkscape-native-Mac-OS-X-build---look-improvements-td14733036.html email list]. See his screenshot from January 10, 2008 [http://www.nabble.com/attachment/14733036/1/Inkscape%20OSX%20PL.gif here].&lt;br /&gt;
* JiHO has a video of his builds [http://jo.irisson.free.fr/?p=34 here] and [http://jo.irisson.free.fr/?p=62 here].&lt;br /&gt;
&lt;br /&gt;
== Apple Documentation ==&lt;br /&gt;
* [http://developer.apple.com/documentation/MacOSX/Conceptual/BPRuntimeConfig/BPRuntimeConfig.html Introduction to Runtime Configuration] Covers the Info.plist files, Preferences, Environment variables and has a list of the most important Properties that the Property List should contain.&lt;br /&gt;
&lt;br /&gt;
== Packaging ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.sveinbjorn.org/platypus Sveinbjorn Thordarson's Website] The author of Platypus, the Script Exec wrapper that launches the Inkscape binary.&lt;br /&gt;
* [http://freespace.ausgamers.com/2005/02/creating-os-x-application-bundles-step.html  Creating OS X application bundles step by step] Covers the bundle concepts, copying libraries into the bundle, editing libraries with the install_name_tool, the Info.plist file and adding an icon.&lt;br /&gt;
* [http://java.sun.com/developer/technicalArticles/JavaLP/JavaToMac3/ Bringing your Java Application to Mac OS X] I would regard this a little dated, and the detail is (unsurprisingly) Java-related, but it is a gentle introduction to the role of the .app bundle and give a most clear account of how to create one.&lt;br /&gt;
* The [http://gimp-app.sourceforge.net/gimp.app.howto.txt Gimp .app Howto] This is a very bare document, and would be of little help to you if you were new to making packages. Note that it seems to refer to a more mature Clipboard technique and Online help than we currently have; and we ought to move to parity in these areas.&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer Documentation]]&lt;/div&gt;</summary>
		<author><name>Jiho</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=CompilingMacOsX&amp;diff=20564</id>
		<title>CompilingMacOsX</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=CompilingMacOsX&amp;diff=20564"/>
		<updated>2008-02-18T09:59:30Z</updated>

		<summary type="html">&lt;p&gt;Jiho: /* User Examples */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= For the impatient =&lt;br /&gt;
&lt;br /&gt;
1. Install [http://developer.apple.com/tools/xcode/ XCode tools] from your OS X installation DVD&lt;br /&gt;
&lt;br /&gt;
2. Download and install [http://www.macports.org/ MacPorts]&lt;br /&gt;
&lt;br /&gt;
3. In Terminal (Applications&amp;gt;Utilities&amp;gt;Terminal) type&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port sync&lt;br /&gt;
sudo port selfupdate&lt;br /&gt;
sudo port install cairo +pdf boehmgc gtkmm intltool libxslt lcms popt poppler boost gnome-vfs \&lt;br /&gt;
 libgnomeprintui automake autoconf subversion&amp;lt;/pre&amp;gt;&lt;br /&gt;
Grab a cup of cofee&lt;br /&gt;
&lt;br /&gt;
4. In Terminal, get and build Inkscape&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
svn co https://inkscape.svn.sourceforge.net/svnroot/inkscape/inkscape/trunk inkscape&lt;br /&gt;
cd inkscape/packaging/macosx/&lt;br /&gt;
./osx-build.sh a c b i -s p&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''Et voilà''. If you want to understand what you just did, read on.&lt;br /&gt;
&lt;br /&gt;
= Requirements =&lt;br /&gt;
To compile Inkscape from source you need:&lt;br /&gt;
*Mac OS X &amp;gt; 10.3&lt;br /&gt;
*XCode Tools. They are on your installation DVD, in the optional installs, or can be download from [http://developer.apple.com/tools/xcode/ Apple Developer Connection]. You can customize the install to make it smaller (avoir documentation and example software for example). You need at least: gcc, XCode, X11SDK.&lt;br /&gt;
*Inkscape's source code. You can download an [http://www.inkscape.org/download.php official release source code], a [http://inkscape.modevia.com/svn-snap/?M=D development snapshot] or checkout a copy of the current state of the [http://www.inkscape.org/svn.php?lang=en SVN repository] using [http://subversion.tigris.org/ subversion]. Subversion comes pre-installed on Leopard. On previous system, subversion can be installed by package management systems (see point below) or with an OS X installer [http://homepage.mac.com/martinott/ package]&lt;br /&gt;
*A means of getting Inkscape's numerous dependencies: glibmm, gtkmm, lmcs, boehmgc... We recommend the use of [http://www.macports.org/ MacPorts] right now. [http://www.finkproject.org/ Fink] was used in the past but there is no information about wether it meets Inkscape needs currently. Alternatively you could use Inkscape all-in-one universal build script to install them (see below).&lt;br /&gt;
&lt;br /&gt;
= Compiling Inkscape with X11, using MacPorts [Recommended method]=&lt;br /&gt;
&lt;br /&gt;
== Installing dependencies ==&lt;br /&gt;
You can use MacPorts to list Inkscape dependencies:&lt;br /&gt;
&amp;lt;pre&amp;gt;port deps inkscape&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some are mandatory and you can install them with the command:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port install boehmgc gtkmm intltool libxslt lcms popt boost&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Others provide additional functionality to Inkscape:&lt;br /&gt;
* &amp;lt;code&amp;gt;gnome-vfs&amp;lt;/code&amp;gt; : access to remote servers, in particular import from Open Clipart Library&lt;br /&gt;
* &amp;lt;code&amp;gt;aspell&amp;lt;/code&amp;gt; : check spelling of text elements [Note: I have never seen it working on OS X]&lt;br /&gt;
* &amp;lt;code&amp;gt;libgnomeprintui&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;loudmouth&amp;lt;/code&amp;gt; : jabber library used by InkBoard&lt;br /&gt;
* &amp;lt;code&amp;gt;cairo +pdf&amp;lt;/code&amp;gt; (cairo with the pdf variant) : better pdf export&lt;br /&gt;
* &amp;lt;code&amp;gt;poppler&amp;lt;/code&amp;gt; : better pdf import&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port install gnome-vfs aspell libgnomeprintui loudmouth cairo +pdf poppler&amp;lt;/pre&amp;gt;&lt;br /&gt;
NB: Cairo was already installed at previous step as a GTK dependency. You need to either deactivate the old version and install this one, or directly write it on the command line above.&lt;br /&gt;
&lt;br /&gt;
In addition, Inkscape requires versions of the autotools more recent thant those that ship with OS X. Install them:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port install autoconf automake&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Setting the build environment ==&lt;br /&gt;
MacPorts's hierarchy (/opt/local/) is not searched for libraries by default. Therefore, before the configuration starts, some environment variables need to be set. The environment variables are presented in bash syntax here. &lt;br /&gt;
&amp;lt;pre&amp;gt;export LIBPREFIX=&amp;quot;/opt/local&amp;quot;&lt;br /&gt;
#  automake seach path&lt;br /&gt;
export CPATH=&amp;quot;$LIBPREFIX/include&amp;quot;&lt;br /&gt;
#  configure search path&lt;br /&gt;
export CPPFLAGS=&amp;quot;-I$LIBPREFIX/include&amp;quot;&lt;br /&gt;
export LDFLAGS=&amp;quot;-L$LIBPREFIX/lib&amp;quot;&lt;br /&gt;
#  compiler arguments&lt;br /&gt;
export CFLAGS=&amp;quot;-O3 -Wall&amp;quot;&lt;br /&gt;
export CXXFLAGS=&amp;quot;$CFLAGS&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also use &amp;lt;code&amp;gt;[http://en.wikipedia.org/wiki/Ccache ccache]&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;sudo port install ccache&amp;lt;/code&amp;gt;) to speed up the compilation a bit. To do so, add compiler variables:&lt;br /&gt;
&amp;lt;pre&amp;gt;export CC=&amp;quot;ccache gcc&amp;quot;&lt;br /&gt;
export CXX=&amp;quot;ccache g++&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Configuring ==&lt;br /&gt;
If you compile Inkscape for the first time from an svn checkout you need to generate the configure script. Navigate to Inkscape's source directory and run:&lt;br /&gt;
&amp;lt;pre&amp;gt;./autogen.sh&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then run configure with the options &amp;lt;code&amp;gt;--disable-static --enable-shared&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;--prefix&amp;lt;/code&amp;gt; which sets the directory where the build products are placed. It must be somewhere you have write access to.&lt;br /&gt;
&amp;lt;pre&amp;gt;./configure --disable-static --enable-shared --prefix=/path/to/build/products/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I you want to package Inkscape into a double-clickable &amp;lt;code&amp;gt;.app&amp;lt;/code&amp;gt; bundle in order to access it like a regular OS X application (you probably want to), you need to add the option &amp;lt;code&amp;gt;--enable-osxapp&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;./configure {...} --enable-osxapp&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you have loudmouth installed and you want to enable whiteboard functionality in Inkscape, add &amp;lt;code&amp;gt;--enable-inkboard&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Other configuration options can be set, check the list of options by issuing:&lt;br /&gt;
&amp;lt;pre&amp;gt;./configure --help&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Building and Installing ==&lt;br /&gt;
Just run:&lt;br /&gt;
&amp;lt;pre&amp;gt;make&lt;br /&gt;
make install&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Creating an .app bundle ==&lt;br /&gt;
Assuming that you have used the &amp;lt;code&amp;gt;--enable-osxapp&amp;lt;/code&amp;gt; option during &amp;lt;code&amp;gt;configure&amp;lt;/code&amp;gt;, navigate to Mac OS X packaging directory in Inkscape source code and use the automated script:&lt;br /&gt;
&amp;lt;pre&amp;gt;cd packaging/macosx&lt;br /&gt;
./osx-app.sh -s -b /path/to/install/prefix/bin/inkscape -p ../../Info.plist&amp;lt;/pre&amp;gt;&lt;br /&gt;
The script copies Inkscape binary and all its dependencies into the app bundle. The &amp;lt;code&amp;gt;-s&amp;lt;/code&amp;gt; options strips libraries from debugging information (the bundle is therefore smaller). Omit this option if you want to keep debugging info.&lt;br /&gt;
&lt;br /&gt;
== Creating a disk image to distribute Inkscape ==&lt;br /&gt;
Inkscape.app created at the previous step is completely independent from the original location of MacPorts libraries and can therefore be distributed. It will only work on your platform though (PPC or Intel) and incompatibilities are known between X11 versions on different major versions of OS X (Panther, Tiger and Leopard). The general rule is that versions are not backward compatible.&lt;br /&gt;
&lt;br /&gt;
The most widespread way of distributing applications on Mac OS X is via .dmg images. You can created a dmg image of Inkscape, with a nice background and all, using the script:&lt;br /&gt;
&amp;lt;pre&amp;gt;./osx-dmg.sh -p Inkscape.app&amp;lt;/pre&amp;gt;&lt;br /&gt;
in the packaging directory for Mac OS X (where your app bundle should be, otherwise modify the path to Inkscape.app).&lt;br /&gt;
&lt;br /&gt;
== Automated build script ==&lt;br /&gt;
All these steps are automated by a build script: &amp;lt;code&amp;gt;osx-build.sh&amp;lt;/code&amp;gt;. It has built-in help so to known how to use it just type:&lt;br /&gt;
&amp;lt;pre&amp;gt;./osx-build.sh help&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Compiling a Universal Binary of Inkscape with X11, using the all-in-one build script [untested]=&lt;br /&gt;
&lt;br /&gt;
To build a Universal Binary of Inkscape you also need to build Universal versions of all its dependencies (i.e., gtk+, cairo, pango, etc).  You can do this using the build-gtk.sh script from the Inkscape repository (it's in packaging/macosx/native-gtk/).&lt;br /&gt;
&lt;br /&gt;
This process is relatively untested, as it is only being used by Michael Wybrow  for official Inkscape release builds.  If you have any troubles using this process then please report them to Michael (mjwybrow on sourceforge).&lt;br /&gt;
&lt;br /&gt;
The process is:&lt;br /&gt;
&amp;lt;pre&amp;gt;export PREFIX=/your/install/prefix&lt;br /&gt;
export UNIVERSAL_BUILD=Yes&lt;br /&gt;
./build-gtk bootstrap&lt;br /&gt;
./build-gtk build inkscape&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Compiling Inkscape with native GTK using MacPorts [experimental] =&lt;br /&gt;
This process is very similar to compiling an X11 version of Inkscape except for the building of dependencies: need to build native versions of Inkscape dependencies. At the moment (2007-12-17) this process does not produce a usable version of Inkscape but the more people try to use it, the quicker the bugs will be ironed out!&lt;br /&gt;
&lt;br /&gt;
== Native version of Inkscape dependencies ==&lt;br /&gt;
Thanks to the power of port &amp;quot;variants&amp;quot; and port &amp;quot;deactivation&amp;quot; you can install native versions of gtk, cairo, pango and such, alongside the regular X11 ones. To know which ports have a &amp;lt;code&amp;gt;quartz&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;no_x11&amp;lt;/code&amp;gt; variant, use the command:&lt;br /&gt;
&amp;lt;pre&amp;gt;port list variant:quartz variant:no_x11&amp;lt;/pre&amp;gt;&lt;br /&gt;
This will give you an idea of what need to be replaced.&lt;br /&gt;
&lt;br /&gt;
Assuming your MacPorts tree has been already used to build regular versions of Inkscape, you first need to deactivate (suppress from the tree without really uninstalling) the X11 versions of gtk, cairo, cairomm and pango:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port deactivate gtk2 cairo cairomm pango&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then install native variants:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port install cairo +quartz+pdf+no_x11 cairomm +quartz pango +no_x11 poppler +quartz gtk2 +quartz&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Rather than deactivating and reactivating ports, you can also keep two MacPorts trees side by side, provided you install the second one from source. Let say I want to install a new tree for native versions in /opt/local/native, I would do&lt;br /&gt;
&amp;lt;pre&amp;gt;export PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/X11R6/bin&lt;br /&gt;
cd ~/MacPorts-1.x.x/&lt;br /&gt;
./configure --prefix=/opt/local-native --with-tclpackage=/Library/Tcl/macports-native&lt;br /&gt;
make&lt;br /&gt;
sudo make install&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then you need to have only one version of the port command in the path at any time so you need to setup your .bashrc (or .bash_profile or .profile) accordingly. I use shell aliases to quickly and temporarily switch to the universal version:&lt;br /&gt;
&amp;lt;pre&amp;gt;alias portpathregular=&amp;quot;export PATH=/opt/local/bin:/opt/local/sbin:/Developer/Tools:/usr/local/bin: \&lt;br /&gt;
/usr/X11R6/bin:/bin:/sbin:/usr/bin:/usr/sbin&amp;quot;&lt;br /&gt;
alias portpathuniv=&amp;quot;export PATH=/opt/local-univ/bin:/opt/local-univ/sbin:/Developer/Tools:/usr/local/bin:  \&lt;br /&gt;
/usr/X11R6/bin:/bin:/sbin:/usr/bin:/usr/sbin&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
NB: the \ are just to mark line continuation here, suppress them and put everything in one line.&lt;br /&gt;
&lt;br /&gt;
== Install the rest ==&lt;br /&gt;
Eventually, follow the regular install procedure for the rest:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port install libxslt boost boehmgc gtkmm lcms intltool popt&amp;lt;/pre&amp;gt;&lt;br /&gt;
If your MacPorts tree was already ready to compile Inkscape, you should not need to reinstall anything, with the possible exception of gtkmm, which may need to be rebuilt against the native version of gtk rather than against the X11 one (please someone confirm this).&lt;br /&gt;
&lt;br /&gt;
Get inkscape source code and go in the mac OS X specific packaging directory&lt;br /&gt;
&amp;lt;pre&amp;gt;cd packaging/macosx&amp;lt;/pre&amp;gt;&lt;br /&gt;
There edit &amp;lt;code&amp;gt;osx-build.sh&amp;lt;/code&amp;gt; to remove the configure option &amp;lt;code&amp;gt;--enable-osxapp&amp;lt;/code&amp;gt; because it puts inkscape in a .app bundle where it is started together with X11, which would defeat the purpose of this native compilation. You can also specify an alternative install prefix if you want. Then&lt;br /&gt;
&amp;lt;pre&amp;gt;./osx-build.sh u a c b i&amp;lt;/pre&amp;gt;&lt;br /&gt;
and a native version of Inkscape is installed in the prefix you specified or in the &amp;lt;code&amp;gt;Build/bin&amp;lt;/code&amp;gt; directory of Inkscape's source code. You can test it by&lt;br /&gt;
&amp;lt;pre&amp;gt; cd ../../Build/bin/&lt;br /&gt;
./inkscape&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NB: if you compiled a GTK theme engine against your old GTK install (i.e. the one with X11) and try to use it with the new install, it will complain, so edit &amp;lt;code&amp;gt;~/.gtkrc-2.0&amp;lt;/code&amp;gt; to remove the offending theme or recompile it with the new native GTK.&lt;br /&gt;
&lt;br /&gt;
= Compiling Inkscape with native GTK using the all in one build script [experimental] =&lt;br /&gt;
&lt;br /&gt;
To build a native-GTK build of Inkscape, GTK and some of its dependencies must be built with special options. You can do this using the build-gtk.sh script from the Inkscape repository (it's in packaging/macosx/native-gtk/).  This is a modified version of the Imendio native build script, found with instructions on this page:&lt;br /&gt;
http://developer.imendio.com/projects/gtk-macosx/build-instructions&lt;br /&gt;
&lt;br /&gt;
This process is relatively untested. If you have any troubles using this process then please report them to Michael Wybrow (mjwybrow on sourceforge).&lt;br /&gt;
&lt;br /&gt;
The process is:&lt;br /&gt;
&amp;lt;pre&amp;gt;export PREFIX=/your/install/prefix&lt;br /&gt;
./build-gtk bootstrap&lt;br /&gt;
./build-gtk build inkscape&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Enabling python effects =&lt;br /&gt;
moved to [[GettingEffectsWorking]]. They should work out of the box in the new versions anyway.&lt;br /&gt;
&lt;br /&gt;
= Links =&lt;br /&gt;
&lt;br /&gt;
== User Examples ==&lt;br /&gt;
* Adam Strzeleki has outlined some improvements to this process on the Inkscape [http://www.nabble.com/Inkscape-native-Mac-OS-X-build---look-improvements-td14733036.html email list]. See his screenshot from January 10, 2008 [http://www.nabble.com/attachment/14733036/1/Inkscape%20OSX%20PL.gif here].&lt;br /&gt;
* JiHO has a video of his builds [http://jo.irisson.free.fr/?p=34 here] and [http://jo.irisson.free.fr/?p=62 here].&lt;br /&gt;
&lt;br /&gt;
== Apple Documentation ==&lt;br /&gt;
* [http://developer.apple.com/documentation/MacOSX/Conceptual/BPRuntimeConfig/BPRuntimeConfig.html Introduction to Runtime Configuration] Covers the Info.plist files, Preferences, Environment variables and has a list of the most important Properties that the Property List should contain.&lt;br /&gt;
&lt;br /&gt;
== Packaging ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.sveinbjorn.org/platypus Sveinbjorn Thordarson's Website] The author of Platypus, the Script Exec wrapper that launches the Inkscape binary.&lt;br /&gt;
* [http://freespace.ausgamers.com/2005/02/creating-os-x-application-bundles-step.html  Creating OS X application bundles step by step] Covers the bundle concepts, copying libraries into the bundle, editing libraries with the install_name_tool, the Info.plist file and adding an icon.&lt;br /&gt;
* [http://java.sun.com/developer/technicalArticles/JavaLP/JavaToMac3/ Bringing your Java Application to Mac OS X] I would regard this a little dated, and the detail is (unsurprisingly) Java-related, but it is a gentle introduction to the role of the .app bundle and give a most clear account of how to create one.&lt;br /&gt;
* The [http://gimp-app.sourceforge.net/gimp.app.howto.txt Gimp .app Howto] This is a very bare document, and would be of little help to you if you were new to making packages. Note that it seems to refer to a more mature Clipboard technique and Online help than we currently have; and we ought to move to parity in these areas.&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer Documentation]]&lt;/div&gt;</summary>
		<author><name>Jiho</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=CompilingMacOsX&amp;diff=20554</id>
		<title>CompilingMacOsX</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=CompilingMacOsX&amp;diff=20554"/>
		<updated>2008-02-18T09:58:48Z</updated>

		<summary type="html">&lt;p&gt;Jiho: /* Native version of Inkscape dependencies */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= For the impatient =&lt;br /&gt;
&lt;br /&gt;
1. Install [http://developer.apple.com/tools/xcode/ XCode tools] from your OS X installation DVD&lt;br /&gt;
&lt;br /&gt;
2. Download and install [http://www.macports.org/ MacPorts]&lt;br /&gt;
&lt;br /&gt;
3. In Terminal (Applications&amp;gt;Utilities&amp;gt;Terminal) type&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port sync&lt;br /&gt;
sudo port selfupdate&lt;br /&gt;
sudo port install cairo +pdf boehmgc gtkmm intltool libxslt lcms popt poppler boost gnome-vfs \&lt;br /&gt;
 libgnomeprintui automake autoconf subversion&amp;lt;/pre&amp;gt;&lt;br /&gt;
Grab a cup of cofee&lt;br /&gt;
&lt;br /&gt;
4. In Terminal, get and build Inkscape&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
svn co https://inkscape.svn.sourceforge.net/svnroot/inkscape/inkscape/trunk inkscape&lt;br /&gt;
cd inkscape/packaging/macosx/&lt;br /&gt;
./osx-build.sh a c b i -s p&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''Et voilà''. If you want to understand what you just did, read on.&lt;br /&gt;
&lt;br /&gt;
= Requirements =&lt;br /&gt;
To compile Inkscape from source you need:&lt;br /&gt;
*Mac OS X &amp;gt; 10.3&lt;br /&gt;
*XCode Tools. They are on your installation DVD, in the optional installs, or can be download from [http://developer.apple.com/tools/xcode/ Apple Developer Connection]. You can customize the install to make it smaller (avoir documentation and example software for example). You need at least: gcc, XCode, X11SDK.&lt;br /&gt;
*Inkscape's source code. You can download an [http://www.inkscape.org/download.php official release source code], a [http://inkscape.modevia.com/svn-snap/?M=D development snapshot] or checkout a copy of the current state of the [http://www.inkscape.org/svn.php?lang=en SVN repository] using [http://subversion.tigris.org/ subversion]. Subversion comes pre-installed on Leopard. On previous system, subversion can be installed by package management systems (see point below) or with an OS X installer [http://homepage.mac.com/martinott/ package]&lt;br /&gt;
*A means of getting Inkscape's numerous dependencies: glibmm, gtkmm, lmcs, boehmgc... We recommend the use of [http://www.macports.org/ MacPorts] right now. [http://www.finkproject.org/ Fink] was used in the past but there is no information about wether it meets Inkscape needs currently. Alternatively you could use Inkscape all-in-one universal build script to install them (see below).&lt;br /&gt;
&lt;br /&gt;
= Compiling Inkscape with X11, using MacPorts [Recommended method]=&lt;br /&gt;
&lt;br /&gt;
== Installing dependencies ==&lt;br /&gt;
You can use MacPorts to list Inkscape dependencies:&lt;br /&gt;
&amp;lt;pre&amp;gt;port deps inkscape&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some are mandatory and you can install them with the command:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port install boehmgc gtkmm intltool libxslt lcms popt boost&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Others provide additional functionality to Inkscape:&lt;br /&gt;
* &amp;lt;code&amp;gt;gnome-vfs&amp;lt;/code&amp;gt; : access to remote servers, in particular import from Open Clipart Library&lt;br /&gt;
* &amp;lt;code&amp;gt;aspell&amp;lt;/code&amp;gt; : check spelling of text elements [Note: I have never seen it working on OS X]&lt;br /&gt;
* &amp;lt;code&amp;gt;libgnomeprintui&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;loudmouth&amp;lt;/code&amp;gt; : jabber library used by InkBoard&lt;br /&gt;
* &amp;lt;code&amp;gt;cairo +pdf&amp;lt;/code&amp;gt; (cairo with the pdf variant) : better pdf export&lt;br /&gt;
* &amp;lt;code&amp;gt;poppler&amp;lt;/code&amp;gt; : better pdf import&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port install gnome-vfs aspell libgnomeprintui loudmouth cairo +pdf poppler&amp;lt;/pre&amp;gt;&lt;br /&gt;
NB: Cairo was already installed at previous step as a GTK dependency. You need to either deactivate the old version and install this one, or directly write it on the command line above.&lt;br /&gt;
&lt;br /&gt;
In addition, Inkscape requires versions of the autotools more recent thant those that ship with OS X. Install them:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port install autoconf automake&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Setting the build environment ==&lt;br /&gt;
MacPorts's hierarchy (/opt/local/) is not searched for libraries by default. Therefore, before the configuration starts, some environment variables need to be set. The environment variables are presented in bash syntax here. &lt;br /&gt;
&amp;lt;pre&amp;gt;export LIBPREFIX=&amp;quot;/opt/local&amp;quot;&lt;br /&gt;
#  automake seach path&lt;br /&gt;
export CPATH=&amp;quot;$LIBPREFIX/include&amp;quot;&lt;br /&gt;
#  configure search path&lt;br /&gt;
export CPPFLAGS=&amp;quot;-I$LIBPREFIX/include&amp;quot;&lt;br /&gt;
export LDFLAGS=&amp;quot;-L$LIBPREFIX/lib&amp;quot;&lt;br /&gt;
#  compiler arguments&lt;br /&gt;
export CFLAGS=&amp;quot;-O3 -Wall&amp;quot;&lt;br /&gt;
export CXXFLAGS=&amp;quot;$CFLAGS&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also use &amp;lt;code&amp;gt;[http://en.wikipedia.org/wiki/Ccache ccache]&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;sudo port install ccache&amp;lt;/code&amp;gt;) to speed up the compilation a bit. To do so, add compiler variables:&lt;br /&gt;
&amp;lt;pre&amp;gt;export CC=&amp;quot;ccache gcc&amp;quot;&lt;br /&gt;
export CXX=&amp;quot;ccache g++&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Configuring ==&lt;br /&gt;
If you compile Inkscape for the first time from an svn checkout you need to generate the configure script. Navigate to Inkscape's source directory and run:&lt;br /&gt;
&amp;lt;pre&amp;gt;./autogen.sh&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then run configure with the options &amp;lt;code&amp;gt;--disable-static --enable-shared&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;--prefix&amp;lt;/code&amp;gt; which sets the directory where the build products are placed. It must be somewhere you have write access to.&lt;br /&gt;
&amp;lt;pre&amp;gt;./configure --disable-static --enable-shared --prefix=/path/to/build/products/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I you want to package Inkscape into a double-clickable &amp;lt;code&amp;gt;.app&amp;lt;/code&amp;gt; bundle in order to access it like a regular OS X application (you probably want to), you need to add the option &amp;lt;code&amp;gt;--enable-osxapp&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;./configure {...} --enable-osxapp&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you have loudmouth installed and you want to enable whiteboard functionality in Inkscape, add &amp;lt;code&amp;gt;--enable-inkboard&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Other configuration options can be set, check the list of options by issuing:&lt;br /&gt;
&amp;lt;pre&amp;gt;./configure --help&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Building and Installing ==&lt;br /&gt;
Just run:&lt;br /&gt;
&amp;lt;pre&amp;gt;make&lt;br /&gt;
make install&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Creating an .app bundle ==&lt;br /&gt;
Assuming that you have used the &amp;lt;code&amp;gt;--enable-osxapp&amp;lt;/code&amp;gt; option during &amp;lt;code&amp;gt;configure&amp;lt;/code&amp;gt;, navigate to Mac OS X packaging directory in Inkscape source code and use the automated script:&lt;br /&gt;
&amp;lt;pre&amp;gt;cd packaging/macosx&lt;br /&gt;
./osx-app.sh -s -b /path/to/install/prefix/bin/inkscape -p ../../Info.plist&amp;lt;/pre&amp;gt;&lt;br /&gt;
The script copies Inkscape binary and all its dependencies into the app bundle. The &amp;lt;code&amp;gt;-s&amp;lt;/code&amp;gt; options strips libraries from debugging information (the bundle is therefore smaller). Omit this option if you want to keep debugging info.&lt;br /&gt;
&lt;br /&gt;
== Creating a disk image to distribute Inkscape ==&lt;br /&gt;
Inkscape.app created at the previous step is completely independent from the original location of MacPorts libraries and can therefore be distributed. It will only work on your platform though (PPC or Intel) and incompatibilities are known between X11 versions on different major versions of OS X (Panther, Tiger and Leopard). The general rule is that versions are not backward compatible.&lt;br /&gt;
&lt;br /&gt;
The most widespread way of distributing applications on Mac OS X is via .dmg images. You can created a dmg image of Inkscape, with a nice background and all, using the script:&lt;br /&gt;
&amp;lt;pre&amp;gt;./osx-dmg.sh -p Inkscape.app&amp;lt;/pre&amp;gt;&lt;br /&gt;
in the packaging directory for Mac OS X (where your app bundle should be, otherwise modify the path to Inkscape.app).&lt;br /&gt;
&lt;br /&gt;
== Automated build script ==&lt;br /&gt;
All these steps are automated by a build script: &amp;lt;code&amp;gt;osx-build.sh&amp;lt;/code&amp;gt;. It has built-in help so to known how to use it just type:&lt;br /&gt;
&amp;lt;pre&amp;gt;./osx-build.sh help&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Compiling a Universal Binary of Inkscape with X11, using the all-in-one build script [untested]=&lt;br /&gt;
&lt;br /&gt;
To build a Universal Binary of Inkscape you also need to build Universal versions of all its dependencies (i.e., gtk+, cairo, pango, etc).  You can do this using the build-gtk.sh script from the Inkscape repository (it's in packaging/macosx/native-gtk/).&lt;br /&gt;
&lt;br /&gt;
This process is relatively untested, as it is only being used by Michael Wybrow  for official Inkscape release builds.  If you have any troubles using this process then please report them to Michael (mjwybrow on sourceforge).&lt;br /&gt;
&lt;br /&gt;
The process is:&lt;br /&gt;
&amp;lt;pre&amp;gt;export PREFIX=/your/install/prefix&lt;br /&gt;
export UNIVERSAL_BUILD=Yes&lt;br /&gt;
./build-gtk bootstrap&lt;br /&gt;
./build-gtk build inkscape&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Compiling Inkscape with native GTK using MacPorts [experimental] =&lt;br /&gt;
This process is very similar to compiling an X11 version of Inkscape except for the building of dependencies: need to build native versions of Inkscape dependencies. At the moment (2007-12-17) this process does not produce a usable version of Inkscape but the more people try to use it, the quicker the bugs will be ironed out!&lt;br /&gt;
&lt;br /&gt;
== Native version of Inkscape dependencies ==&lt;br /&gt;
Thanks to the power of port &amp;quot;variants&amp;quot; and port &amp;quot;deactivation&amp;quot; you can install native versions of gtk, cairo, pango and such, alongside the regular X11 ones. To know which ports have a &amp;lt;code&amp;gt;quartz&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;no_x11&amp;lt;/code&amp;gt; variant, use the command:&lt;br /&gt;
&amp;lt;pre&amp;gt;port list variant:quartz variant:no_x11&amp;lt;/pre&amp;gt;&lt;br /&gt;
This will give you an idea of what need to be replaced.&lt;br /&gt;
&lt;br /&gt;
Assuming your MacPorts tree has been already used to build regular versions of Inkscape, you first need to deactivate (suppress from the tree without really uninstalling) the X11 versions of gtk, cairo, cairomm and pango:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port deactivate gtk2 cairo cairomm pango&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then install native variants:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port install cairo +quartz+pdf+no_x11 cairomm +quartz pango +no_x11 poppler +quartz gtk2 +quartz&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Rather than deactivating and reactivating ports, you can also keep two MacPorts trees side by side, provided you install the second one from source. Let say I want to install a new tree for native versions in /opt/local/native, I would do&lt;br /&gt;
&amp;lt;pre&amp;gt;export PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/X11R6/bin&lt;br /&gt;
cd ~/MacPorts-1.x.x/&lt;br /&gt;
./configure --prefix=/opt/local-native --with-tclpackage=/Library/Tcl/macports-native&lt;br /&gt;
make&lt;br /&gt;
sudo make install&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then you need to have only one version of the port command in the path at any time so you need to setup your .bashrc (or .bash_profile or .profile) accordingly. I use shell aliases to quickly and temporarily switch to the universal version:&lt;br /&gt;
&amp;lt;pre&amp;gt;alias portpathregular=&amp;quot;export PATH=/opt/local/bin:/opt/local/sbin:/Developer/Tools:/usr/local/bin: \&lt;br /&gt;
/usr/X11R6/bin:/bin:/sbin:/usr/bin:/usr/sbin&amp;quot;&lt;br /&gt;
alias portpathuniv=&amp;quot;export PATH=/opt/local-univ/bin:/opt/local-univ/sbin:/Developer/Tools:/usr/local/bin:  \&lt;br /&gt;
/usr/X11R6/bin:/bin:/sbin:/usr/bin:/usr/sbin&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
NB: the \ are just to mark line continuation here, suppress them and put everything in one line.&lt;br /&gt;
&lt;br /&gt;
== Install the rest ==&lt;br /&gt;
Eventually, follow the regular install procedure for the rest:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port install libxslt boost boehmgc gtkmm lcms intltool popt&amp;lt;/pre&amp;gt;&lt;br /&gt;
If your MacPorts tree was already ready to compile Inkscape, you should not need to reinstall anything, with the possible exception of gtkmm, which may need to be rebuilt against the native version of gtk rather than against the X11 one (please someone confirm this).&lt;br /&gt;
&lt;br /&gt;
Get inkscape source code and go in the mac OS X specific packaging directory&lt;br /&gt;
&amp;lt;pre&amp;gt;cd packaging/macosx&amp;lt;/pre&amp;gt;&lt;br /&gt;
There edit &amp;lt;code&amp;gt;osx-build.sh&amp;lt;/code&amp;gt; to remove the configure option &amp;lt;code&amp;gt;--enable-osxapp&amp;lt;/code&amp;gt; because it puts inkscape in a .app bundle where it is started together with X11, which would defeat the purpose of this native compilation. You can also specify an alternative install prefix if you want. Then&lt;br /&gt;
&amp;lt;pre&amp;gt;./osx-build.sh u a c b i&amp;lt;/pre&amp;gt;&lt;br /&gt;
and a native version of Inkscape is installed in the prefix you specified or in the &amp;lt;code&amp;gt;Build/bin&amp;lt;/code&amp;gt; directory of Inkscape's source code. You can test it by&lt;br /&gt;
&amp;lt;pre&amp;gt; cd ../../Build/bin/&lt;br /&gt;
./inkscape&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NB: if you compiled a GTK theme engine against your old GTK install (i.e. the one with X11) and try to use it with the new install, it will complain, so edit &amp;lt;code&amp;gt;~/.gtkrc-2.0&amp;lt;/code&amp;gt; to remove the offending theme or recompile it with the new native GTK.&lt;br /&gt;
&lt;br /&gt;
= Compiling Inkscape with native GTK using the all in one build script [experimental] =&lt;br /&gt;
&lt;br /&gt;
To build a native-GTK build of Inkscape, GTK and some of its dependencies must be built with special options. You can do this using the build-gtk.sh script from the Inkscape repository (it's in packaging/macosx/native-gtk/).  This is a modified version of the Imendio native build script, found with instructions on this page:&lt;br /&gt;
http://developer.imendio.com/projects/gtk-macosx/build-instructions&lt;br /&gt;
&lt;br /&gt;
This process is relatively untested. If you have any troubles using this process then please report them to Michael Wybrow (mjwybrow on sourceforge).&lt;br /&gt;
&lt;br /&gt;
The process is:&lt;br /&gt;
&amp;lt;pre&amp;gt;export PREFIX=/your/install/prefix&lt;br /&gt;
./build-gtk bootstrap&lt;br /&gt;
./build-gtk build inkscape&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Enabling python effects =&lt;br /&gt;
moved to [[GettingEffectsWorking]]. They should work out of the box in the new versions anyway.&lt;br /&gt;
&lt;br /&gt;
= Links =&lt;br /&gt;
&lt;br /&gt;
== User Examples ==&lt;br /&gt;
* Adam Strzeleki has outlined some improvements to this process on the Inkscape [http://www.nabble.com/Inkscape-native-Mac-OS-X-build---look-improvements-td14733036.html email list]. See his screenshot from January 10, 2008 [http://www.nabble.com/attachment/14733036/1/Inkscape%20OSX%20PL.gif here].&lt;br /&gt;
* JiHO has a video of his build [http://jo.irisson.free.fr/?p=34 here].&lt;br /&gt;
&lt;br /&gt;
== Apple Documentation ==&lt;br /&gt;
* [http://developer.apple.com/documentation/MacOSX/Conceptual/BPRuntimeConfig/BPRuntimeConfig.html Introduction to Runtime Configuration] Covers the Info.plist files, Preferences, Environment variables and has a list of the most important Properties that the Property List should contain.&lt;br /&gt;
&lt;br /&gt;
== Packaging ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.sveinbjorn.org/platypus Sveinbjorn Thordarson's Website] The author of Platypus, the Script Exec wrapper that launches the Inkscape binary.&lt;br /&gt;
* [http://freespace.ausgamers.com/2005/02/creating-os-x-application-bundles-step.html  Creating OS X application bundles step by step] Covers the bundle concepts, copying libraries into the bundle, editing libraries with the install_name_tool, the Info.plist file and adding an icon.&lt;br /&gt;
* [http://java.sun.com/developer/technicalArticles/JavaLP/JavaToMac3/ Bringing your Java Application to Mac OS X] I would regard this a little dated, and the detail is (unsurprisingly) Java-related, but it is a gentle introduction to the role of the .app bundle and give a most clear account of how to create one.&lt;br /&gt;
* The [http://gimp-app.sourceforge.net/gimp.app.howto.txt Gimp .app Howto] This is a very bare document, and would be of little help to you if you were new to making packages. Note that it seems to refer to a more mature Clipboard technique and Online help than we currently have; and we ought to move to parity in these areas.&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer Documentation]]&lt;/div&gt;</summary>
		<author><name>Jiho</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=CompilingMacOsX&amp;diff=20544</id>
		<title>CompilingMacOsX</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=CompilingMacOsX&amp;diff=20544"/>
		<updated>2008-02-18T09:57:35Z</updated>

		<summary type="html">&lt;p&gt;Jiho: Added info on having two separate macports trees&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= For the impatient =&lt;br /&gt;
&lt;br /&gt;
1. Install [http://developer.apple.com/tools/xcode/ XCode tools] from your OS X installation DVD&lt;br /&gt;
&lt;br /&gt;
2. Download and install [http://www.macports.org/ MacPorts]&lt;br /&gt;
&lt;br /&gt;
3. In Terminal (Applications&amp;gt;Utilities&amp;gt;Terminal) type&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port sync&lt;br /&gt;
sudo port selfupdate&lt;br /&gt;
sudo port install cairo +pdf boehmgc gtkmm intltool libxslt lcms popt poppler boost gnome-vfs \&lt;br /&gt;
 libgnomeprintui automake autoconf subversion&amp;lt;/pre&amp;gt;&lt;br /&gt;
Grab a cup of cofee&lt;br /&gt;
&lt;br /&gt;
4. In Terminal, get and build Inkscape&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
svn co https://inkscape.svn.sourceforge.net/svnroot/inkscape/inkscape/trunk inkscape&lt;br /&gt;
cd inkscape/packaging/macosx/&lt;br /&gt;
./osx-build.sh a c b i -s p&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''Et voilà''. If you want to understand what you just did, read on.&lt;br /&gt;
&lt;br /&gt;
= Requirements =&lt;br /&gt;
To compile Inkscape from source you need:&lt;br /&gt;
*Mac OS X &amp;gt; 10.3&lt;br /&gt;
*XCode Tools. They are on your installation DVD, in the optional installs, or can be download from [http://developer.apple.com/tools/xcode/ Apple Developer Connection]. You can customize the install to make it smaller (avoir documentation and example software for example). You need at least: gcc, XCode, X11SDK.&lt;br /&gt;
*Inkscape's source code. You can download an [http://www.inkscape.org/download.php official release source code], a [http://inkscape.modevia.com/svn-snap/?M=D development snapshot] or checkout a copy of the current state of the [http://www.inkscape.org/svn.php?lang=en SVN repository] using [http://subversion.tigris.org/ subversion]. Subversion comes pre-installed on Leopard. On previous system, subversion can be installed by package management systems (see point below) or with an OS X installer [http://homepage.mac.com/martinott/ package]&lt;br /&gt;
*A means of getting Inkscape's numerous dependencies: glibmm, gtkmm, lmcs, boehmgc... We recommend the use of [http://www.macports.org/ MacPorts] right now. [http://www.finkproject.org/ Fink] was used in the past but there is no information about wether it meets Inkscape needs currently. Alternatively you could use Inkscape all-in-one universal build script to install them (see below).&lt;br /&gt;
&lt;br /&gt;
= Compiling Inkscape with X11, using MacPorts [Recommended method]=&lt;br /&gt;
&lt;br /&gt;
== Installing dependencies ==&lt;br /&gt;
You can use MacPorts to list Inkscape dependencies:&lt;br /&gt;
&amp;lt;pre&amp;gt;port deps inkscape&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some are mandatory and you can install them with the command:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port install boehmgc gtkmm intltool libxslt lcms popt boost&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Others provide additional functionality to Inkscape:&lt;br /&gt;
* &amp;lt;code&amp;gt;gnome-vfs&amp;lt;/code&amp;gt; : access to remote servers, in particular import from Open Clipart Library&lt;br /&gt;
* &amp;lt;code&amp;gt;aspell&amp;lt;/code&amp;gt; : check spelling of text elements [Note: I have never seen it working on OS X]&lt;br /&gt;
* &amp;lt;code&amp;gt;libgnomeprintui&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;loudmouth&amp;lt;/code&amp;gt; : jabber library used by InkBoard&lt;br /&gt;
* &amp;lt;code&amp;gt;cairo +pdf&amp;lt;/code&amp;gt; (cairo with the pdf variant) : better pdf export&lt;br /&gt;
* &amp;lt;code&amp;gt;poppler&amp;lt;/code&amp;gt; : better pdf import&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port install gnome-vfs aspell libgnomeprintui loudmouth cairo +pdf poppler&amp;lt;/pre&amp;gt;&lt;br /&gt;
NB: Cairo was already installed at previous step as a GTK dependency. You need to either deactivate the old version and install this one, or directly write it on the command line above.&lt;br /&gt;
&lt;br /&gt;
In addition, Inkscape requires versions of the autotools more recent thant those that ship with OS X. Install them:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port install autoconf automake&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Setting the build environment ==&lt;br /&gt;
MacPorts's hierarchy (/opt/local/) is not searched for libraries by default. Therefore, before the configuration starts, some environment variables need to be set. The environment variables are presented in bash syntax here. &lt;br /&gt;
&amp;lt;pre&amp;gt;export LIBPREFIX=&amp;quot;/opt/local&amp;quot;&lt;br /&gt;
#  automake seach path&lt;br /&gt;
export CPATH=&amp;quot;$LIBPREFIX/include&amp;quot;&lt;br /&gt;
#  configure search path&lt;br /&gt;
export CPPFLAGS=&amp;quot;-I$LIBPREFIX/include&amp;quot;&lt;br /&gt;
export LDFLAGS=&amp;quot;-L$LIBPREFIX/lib&amp;quot;&lt;br /&gt;
#  compiler arguments&lt;br /&gt;
export CFLAGS=&amp;quot;-O3 -Wall&amp;quot;&lt;br /&gt;
export CXXFLAGS=&amp;quot;$CFLAGS&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also use &amp;lt;code&amp;gt;[http://en.wikipedia.org/wiki/Ccache ccache]&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;sudo port install ccache&amp;lt;/code&amp;gt;) to speed up the compilation a bit. To do so, add compiler variables:&lt;br /&gt;
&amp;lt;pre&amp;gt;export CC=&amp;quot;ccache gcc&amp;quot;&lt;br /&gt;
export CXX=&amp;quot;ccache g++&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Configuring ==&lt;br /&gt;
If you compile Inkscape for the first time from an svn checkout you need to generate the configure script. Navigate to Inkscape's source directory and run:&lt;br /&gt;
&amp;lt;pre&amp;gt;./autogen.sh&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then run configure with the options &amp;lt;code&amp;gt;--disable-static --enable-shared&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;--prefix&amp;lt;/code&amp;gt; which sets the directory where the build products are placed. It must be somewhere you have write access to.&lt;br /&gt;
&amp;lt;pre&amp;gt;./configure --disable-static --enable-shared --prefix=/path/to/build/products/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I you want to package Inkscape into a double-clickable &amp;lt;code&amp;gt;.app&amp;lt;/code&amp;gt; bundle in order to access it like a regular OS X application (you probably want to), you need to add the option &amp;lt;code&amp;gt;--enable-osxapp&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;./configure {...} --enable-osxapp&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you have loudmouth installed and you want to enable whiteboard functionality in Inkscape, add &amp;lt;code&amp;gt;--enable-inkboard&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Other configuration options can be set, check the list of options by issuing:&lt;br /&gt;
&amp;lt;pre&amp;gt;./configure --help&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Building and Installing ==&lt;br /&gt;
Just run:&lt;br /&gt;
&amp;lt;pre&amp;gt;make&lt;br /&gt;
make install&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Creating an .app bundle ==&lt;br /&gt;
Assuming that you have used the &amp;lt;code&amp;gt;--enable-osxapp&amp;lt;/code&amp;gt; option during &amp;lt;code&amp;gt;configure&amp;lt;/code&amp;gt;, navigate to Mac OS X packaging directory in Inkscape source code and use the automated script:&lt;br /&gt;
&amp;lt;pre&amp;gt;cd packaging/macosx&lt;br /&gt;
./osx-app.sh -s -b /path/to/install/prefix/bin/inkscape -p ../../Info.plist&amp;lt;/pre&amp;gt;&lt;br /&gt;
The script copies Inkscape binary and all its dependencies into the app bundle. The &amp;lt;code&amp;gt;-s&amp;lt;/code&amp;gt; options strips libraries from debugging information (the bundle is therefore smaller). Omit this option if you want to keep debugging info.&lt;br /&gt;
&lt;br /&gt;
== Creating a disk image to distribute Inkscape ==&lt;br /&gt;
Inkscape.app created at the previous step is completely independent from the original location of MacPorts libraries and can therefore be distributed. It will only work on your platform though (PPC or Intel) and incompatibilities are known between X11 versions on different major versions of OS X (Panther, Tiger and Leopard). The general rule is that versions are not backward compatible.&lt;br /&gt;
&lt;br /&gt;
The most widespread way of distributing applications on Mac OS X is via .dmg images. You can created a dmg image of Inkscape, with a nice background and all, using the script:&lt;br /&gt;
&amp;lt;pre&amp;gt;./osx-dmg.sh -p Inkscape.app&amp;lt;/pre&amp;gt;&lt;br /&gt;
in the packaging directory for Mac OS X (where your app bundle should be, otherwise modify the path to Inkscape.app).&lt;br /&gt;
&lt;br /&gt;
== Automated build script ==&lt;br /&gt;
All these steps are automated by a build script: &amp;lt;code&amp;gt;osx-build.sh&amp;lt;/code&amp;gt;. It has built-in help so to known how to use it just type:&lt;br /&gt;
&amp;lt;pre&amp;gt;./osx-build.sh help&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Compiling a Universal Binary of Inkscape with X11, using the all-in-one build script [untested]=&lt;br /&gt;
&lt;br /&gt;
To build a Universal Binary of Inkscape you also need to build Universal versions of all its dependencies (i.e., gtk+, cairo, pango, etc).  You can do this using the build-gtk.sh script from the Inkscape repository (it's in packaging/macosx/native-gtk/).&lt;br /&gt;
&lt;br /&gt;
This process is relatively untested, as it is only being used by Michael Wybrow  for official Inkscape release builds.  If you have any troubles using this process then please report them to Michael (mjwybrow on sourceforge).&lt;br /&gt;
&lt;br /&gt;
The process is:&lt;br /&gt;
&amp;lt;pre&amp;gt;export PREFIX=/your/install/prefix&lt;br /&gt;
export UNIVERSAL_BUILD=Yes&lt;br /&gt;
./build-gtk bootstrap&lt;br /&gt;
./build-gtk build inkscape&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Compiling Inkscape with native GTK using MacPorts [experimental] =&lt;br /&gt;
This process is very similar to compiling an X11 version of Inkscape except for the building of dependencies: need to build native versions of Inkscape dependencies. At the moment (2007-12-17) this process does not produce a usable version of Inkscape but the more people try to use it, the quicker the bugs will be ironed out!&lt;br /&gt;
&lt;br /&gt;
== Native version of Inkscape dependencies ==&lt;br /&gt;
Thanks to the power of port &amp;quot;variants&amp;quot; and port &amp;quot;deactivation&amp;quot; you can install native versions of gtk, cairo, pango and such, alongside the regular X11 ones. To know which ports have a &amp;lt;code&amp;gt;quartz&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;no_x11&amp;lt;/code&amp;gt; variant, use the command:&lt;br /&gt;
&amp;lt;pre&amp;gt;port list variant:quartz variant:no_x11&amp;lt;/pre&amp;gt;&lt;br /&gt;
This will give you an idea of what need to be replaced.&lt;br /&gt;
&lt;br /&gt;
Assuming your MacPorts tree has been already used to build regular versions of Inkscape, you first need to deactivate (suppress from the tree without really uninstalling) the X11 versions of gtk, cairo, cairomm and pango:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port deactivate gtk2 cairo cairomm pango&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then install native variants:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port install cairo +quartz+pdf+no_x11 cairomm +quartz pango +no_x11 poppler +quartz gtk2 +quartz&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Rather than deactivating and reactivating ports, you can also keep two MacPorts trees side by side, provided you install the second one from source. Let say I want to install a new tree for native versions in /opt/local/native, I would do&lt;br /&gt;
&amp;lt;pre&amp;gt;export PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/X11R6/bin&lt;br /&gt;
cd ~/MacPorts-1.x.x/&lt;br /&gt;
./configure --prefix=/opt/local-native --with-tclpackage=/Library/Tcl/macports-native&lt;br /&gt;
make&lt;br /&gt;
sudo make install&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then you need to have only one version of the port command in the path at any time so you need to setup your .bashrc (or .bash_profile or .profile) accordingly. I use shell aliases to quickly and temporarily switch to the universal version:&lt;br /&gt;
&amp;lt;pre&amp;gt;alias portpathregular=&amp;quot;export PATH=/opt/local/bin:/opt/local/sbin:/Developer/Tools:/usr/local/bin:/usr/X11R6/bin:/bin:/sbin:/usr/bin:/usr/sbin&amp;quot;&lt;br /&gt;
alias portpathuniv=&amp;quot;export PATH=/opt/local-univ/bin:/opt/local-univ/sbin:/Developer/Tools:/usr/local/bin:/usr/X11R6/bin:/bin:/sbin:/usr/bin:/usr/sbin&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Install the rest ==&lt;br /&gt;
Eventually, follow the regular install procedure for the rest:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port install libxslt boost boehmgc gtkmm lcms intltool popt&amp;lt;/pre&amp;gt;&lt;br /&gt;
If your MacPorts tree was already ready to compile Inkscape, you should not need to reinstall anything, with the possible exception of gtkmm, which may need to be rebuilt against the native version of gtk rather than against the X11 one (please someone confirm this).&lt;br /&gt;
&lt;br /&gt;
Get inkscape source code and go in the mac OS X specific packaging directory&lt;br /&gt;
&amp;lt;pre&amp;gt;cd packaging/macosx&amp;lt;/pre&amp;gt;&lt;br /&gt;
There edit &amp;lt;code&amp;gt;osx-build.sh&amp;lt;/code&amp;gt; to remove the configure option &amp;lt;code&amp;gt;--enable-osxapp&amp;lt;/code&amp;gt; because it puts inkscape in a .app bundle where it is started together with X11, which would defeat the purpose of this native compilation. You can also specify an alternative install prefix if you want. Then&lt;br /&gt;
&amp;lt;pre&amp;gt;./osx-build.sh u a c b i&amp;lt;/pre&amp;gt;&lt;br /&gt;
and a native version of Inkscape is installed in the prefix you specified or in the &amp;lt;code&amp;gt;Build/bin&amp;lt;/code&amp;gt; directory of Inkscape's source code. You can test it by&lt;br /&gt;
&amp;lt;pre&amp;gt; cd ../../Build/bin/&lt;br /&gt;
./inkscape&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NB: if you compiled a GTK theme engine against your old GTK install (i.e. the one with X11) and try to use it with the new install, it will complain, so edit &amp;lt;code&amp;gt;~/.gtkrc-2.0&amp;lt;/code&amp;gt; to remove the offending theme or recompile it with the new native GTK.&lt;br /&gt;
&lt;br /&gt;
= Compiling Inkscape with native GTK using the all in one build script [experimental] =&lt;br /&gt;
&lt;br /&gt;
To build a native-GTK build of Inkscape, GTK and some of its dependencies must be built with special options. You can do this using the build-gtk.sh script from the Inkscape repository (it's in packaging/macosx/native-gtk/).  This is a modified version of the Imendio native build script, found with instructions on this page:&lt;br /&gt;
http://developer.imendio.com/projects/gtk-macosx/build-instructions&lt;br /&gt;
&lt;br /&gt;
This process is relatively untested. If you have any troubles using this process then please report them to Michael Wybrow (mjwybrow on sourceforge).&lt;br /&gt;
&lt;br /&gt;
The process is:&lt;br /&gt;
&amp;lt;pre&amp;gt;export PREFIX=/your/install/prefix&lt;br /&gt;
./build-gtk bootstrap&lt;br /&gt;
./build-gtk build inkscape&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Enabling python effects =&lt;br /&gt;
moved to [[GettingEffectsWorking]]. They should work out of the box in the new versions anyway.&lt;br /&gt;
&lt;br /&gt;
= Links =&lt;br /&gt;
&lt;br /&gt;
== User Examples ==&lt;br /&gt;
* Adam Strzeleki has outlined some improvements to this process on the Inkscape [http://www.nabble.com/Inkscape-native-Mac-OS-X-build---look-improvements-td14733036.html email list]. See his screenshot from January 10, 2008 [http://www.nabble.com/attachment/14733036/1/Inkscape%20OSX%20PL.gif here].&lt;br /&gt;
* JiHO has a video of his build [http://jo.irisson.free.fr/?p=34 here].&lt;br /&gt;
&lt;br /&gt;
== Apple Documentation ==&lt;br /&gt;
* [http://developer.apple.com/documentation/MacOSX/Conceptual/BPRuntimeConfig/BPRuntimeConfig.html Introduction to Runtime Configuration] Covers the Info.plist files, Preferences, Environment variables and has a list of the most important Properties that the Property List should contain.&lt;br /&gt;
&lt;br /&gt;
== Packaging ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.sveinbjorn.org/platypus Sveinbjorn Thordarson's Website] The author of Platypus, the Script Exec wrapper that launches the Inkscape binary.&lt;br /&gt;
* [http://freespace.ausgamers.com/2005/02/creating-os-x-application-bundles-step.html  Creating OS X application bundles step by step] Covers the bundle concepts, copying libraries into the bundle, editing libraries with the install_name_tool, the Info.plist file and adding an icon.&lt;br /&gt;
* [http://java.sun.com/developer/technicalArticles/JavaLP/JavaToMac3/ Bringing your Java Application to Mac OS X] I would regard this a little dated, and the detail is (unsurprisingly) Java-related, but it is a gentle introduction to the role of the .app bundle and give a most clear account of how to create one.&lt;br /&gt;
* The [http://gimp-app.sourceforge.net/gimp.app.howto.txt Gimp .app Howto] This is a very bare document, and would be of little help to you if you were new to making packages. Note that it seems to refer to a more mature Clipboard technique and Online help than we currently have; and we ought to move to parity in these areas.&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer Documentation]]&lt;/div&gt;</summary>
		<author><name>Jiho</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Release_notes/0.46&amp;diff=18414</id>
		<title>Release notes/0.46</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Release_notes/0.46&amp;diff=18414"/>
		<updated>2008-01-11T15:22:02Z</updated>

		<summary type="html">&lt;p&gt;Jiho: /* Other changes and improvements */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Inkscape 0.46=&lt;br /&gt;
'''(not released yet)'''&lt;br /&gt;
&lt;br /&gt;
Highlights in this release:&lt;br /&gt;
&lt;br /&gt;
* Paintbucket tool&lt;br /&gt;
&lt;br /&gt;
* Tweak tool&lt;br /&gt;
&lt;br /&gt;
* 3D Box tool&lt;br /&gt;
&lt;br /&gt;
* Live path effects&lt;br /&gt;
&lt;br /&gt;
* Color management&lt;br /&gt;
&lt;br /&gt;
* New SVG filters and UI&lt;br /&gt;
&lt;br /&gt;
* Native PDF and AI import&lt;br /&gt;
&lt;br /&gt;
* XAML import/export&lt;br /&gt;
&lt;br /&gt;
* Open Clip Art Library integration (import/export)&lt;br /&gt;
&lt;br /&gt;
* Stock patterns&lt;br /&gt;
&lt;br /&gt;
* Bitmap editing extension effects&lt;br /&gt;
&lt;br /&gt;
* Full on-canvas gradient editing&lt;br /&gt;
&lt;br /&gt;
* Engraver's Toolbox in the Calligraphic tool&lt;br /&gt;
&lt;br /&gt;
* Touch selection&lt;br /&gt;
&lt;br /&gt;
* Dockable dialogs&lt;br /&gt;
&lt;br /&gt;
* Command-line access to verbs&lt;br /&gt;
&lt;br /&gt;
* Snapping made usable&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;3D&amp;quot; / axonometric grid&lt;br /&gt;
&lt;br /&gt;
* Angled guidelines&lt;br /&gt;
&lt;br /&gt;
* Significant speed and interactivity improvements&lt;br /&gt;
&lt;br /&gt;
* Hundreds of smaller features and bugfixes&lt;br /&gt;
&lt;br /&gt;
=Speed and interactivity=&lt;br /&gt;
&lt;br /&gt;
* In this version, Inkscape starts using the [http://www.cairographics.org cairo] library for rendering. It is now used for '''outline mode''' display which, thanks to using cairo and other optimizations, redraws '''faster by about 25%'''. More impressive are memory savings: thanks to cairo, in outline mode Inkscape now takes only about '''50% of the memory''' used by 0.45 for the same file. &lt;br /&gt;
&lt;br /&gt;
* '''Smart redraw directionality:''' With complex images and/or on slow computers, you may have noticed that Inkscape redraws the screen image in horizontal strips, and these strips are painted in order from top to bottom. Now the redraw always starts '''at your mouse cursor location''' and proceed upwards and downwards from it, so that the area near the cursor is always redrawn first. This significantly improves program's responsiveness in some situations. For example, when you are node-editing part of a complex path, the entire path needs to be redrawn on each change, but now this redraw starts from the point you're working on. Moreover, the redraw is interruptible, so each mouse movement starts new redraw from the mouse cursor area. As a result, during such operations those parts that you're working on redraw often and feel snappy and responsive, while areas further away may lag behind more.&lt;br /&gt;
&lt;br /&gt;
* '''Faster blur''' for exporting and high quality on-screen rendering: Inkscape now uses an IIR (Infinite Impulse Response) filter for blurring with large radius. This greatly improves the speed of blur redraw at high zooms or in high-resolution export (or simply with very large blur radius). On the other hand, the results are an approximation to a true Gaussian blur, so a drawing may look slightly different from the mathematically precise blur (usually the differences are far from visible, though). This code is mainly based on: ''Recursive Gaussian Derivative Filters'' by L.J. van Vliet, I.T. Young and P.W. Verbeek (see the source code for more detailed references). &lt;br /&gt;
&lt;br /&gt;
:'''Exporting drawings with blur''' was particularly slow in 0.45; some files could take hours to export. Now this is fixed, in part by the faster algorithm mentioned above and in part by a bugfix in the export code. Now even the quite complex files with large blurs export at high resolution in at most a few minutes.  &lt;br /&gt;
&lt;br /&gt;
* Minor improvements have been made to gradient rendering performance.&lt;br /&gt;
&lt;br /&gt;
* '''Dragging handles and nodes''' as well as '''dragging and transforming objects''' by mouse became more responsive, so that working in complex drawings and especially editing complex paths is noticeably easier. In particular, this fixes the annoying latency issue where a node or a handle could follow mouse cursor even after you release mouse button after a drag. &lt;br /&gt;
&lt;br /&gt;
* '''Moving objects, nodes, and gradient handles by cursor keys''' as well as '''scaling and rotating objects from keyboard''' and '''zooming by keys''' are much more responsive when working with complex slow-rendering objects. Now, if you press and hold a key, your selection/zoom level will quickly jump to the final position instead of going through all the intermediate steps as before. &lt;br /&gt;
&lt;br /&gt;
* '''Moving the cursor around''' in a file with large and complex paths has become much snappier and more responsive. Previously, in extreme cases Inkscape could freeze for seconds while catching up with the mouse cursor; such delays are now eliminated.&lt;br /&gt;
&lt;br /&gt;
* Several improvements make '''canvas panning and scrolling''' smoother and more interactive in complex slow-rendering documents:&lt;br /&gt;
&lt;br /&gt;
:* When panning by the middle mouse button, Inkscape no longer attempts to redraw the canvas while your mouse button is pressed. Any redrawing only happens after you release the mouse. As a result, the newly revealed parts of the canvas are somewhat more &amp;quot;dirty&amp;quot; but the '''panning is smoother than before''', with few if any &amp;quot;hiccups&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
:* '''Redrawing the newly exposed parts of the canvas''' after scrolling, especially diagonal scrolling, is now faster because only the exposed areas are redrawn; before, this often resulted in the entire screen being redrawn which was much slower.&lt;br /&gt;
&lt;br /&gt;
:* Previously, if you started panning with middle button while Inkscape is still redrawing screen in a complex drawing, panning sometimes completely failed or moved canvas just a little step. Now it is '''guaranteed to pan the canvas all the way''' from mouse-press point to mouse-release point in any case, even if sometimes it fails to show the intermediate positions.&lt;br /&gt;
&lt;br /&gt;
:* When pressing and holding Ctrl+arrows to scroll canvas, Inkscape normally accelerates scrolling so that each next scrolling step is bigger than the previous. Previously, in complex drawings this acceleration sometimes got interrupted, which made scrolling annoyingly bumpy and slow. Now this is fixed so that '''scrolling is smoothly accelerated''' even in a slow-rendering document. &lt;br /&gt;
&lt;br /&gt;
:* The default '''starting speed and acceleration''' of Ctrl+arrows scrolling are slightly increased. (They are both settable in Preferences.)&lt;br /&gt;
&lt;br /&gt;
* Better responsiveness and more visual feedback in user interface: &lt;br /&gt;
&lt;br /&gt;
:*When you zoom, the '''zoom control''' on the right end of the statusbar now updates immediately, not after screen redraw as before. &lt;br /&gt;
&lt;br /&gt;
:*Many potentially slow commands (Save, Simplify, Combine, Break Apart and others) now display a '''busy cursor''' and flash a message in the statusbar (e.g. &amp;quot;Saving document...&amp;quot;) while they work. &lt;br /&gt;
&lt;br /&gt;
:*The '''statusbar messages''' displayed while you're drawing a shape or a path in Pen tool do not lag behind the mouse movements.&lt;br /&gt;
&lt;br /&gt;
* '''Combine''' and '''Convert to paths''' commands are now orders of magnitude faster when applied to a selection with hundreds or thousands of objects.&lt;br /&gt;
&lt;br /&gt;
* The time it takes to '''snap to objects''' using the selector tool has been reduced dramatically, which is most noticeable for snapping to complex paths.&lt;br /&gt;
&lt;br /&gt;
=Tools=&lt;br /&gt;
&lt;br /&gt;
==Paint Bucket tool==&lt;br /&gt;
&lt;br /&gt;
The new Paint Bucket tool works exactly as you would expect: click in any area bounded on all sides and it will '''fill it with color'''. Being a vector tool, however, Inkscape's Paint Bucket just creates a new ''path'' that &amp;quot;fills in&amp;quot; the area in which you clicked. &lt;br /&gt;
&lt;br /&gt;
===How it works===&lt;br /&gt;
&lt;br /&gt;
It is important to note that the tool is '''perceptual''', not geometric. That is, when looking for the boundaries around the point you clicked, it takes for such boundaries any ''visible'' color changes. This means that filling will stop at gradients, blurs, and even the color boundaries in imported bitmaps, but will ignore any paths or other objects that are fully (or almost) transparent or for any other reason do not stand out from the background. In short, it will work exactly as if you were filling a rasterized version of your image in a bitmap editor like Photoshop or GIMP - but will give you a vector object to work with.&lt;br /&gt;
&lt;br /&gt;
For example, now you can scan a pencil sketch, import the bitmap into Inkscape, and quickly fill all its cells with colors even without tracing the bitmap first. This is a very convenient and interactive way of digitizing your paper drawings, making the '''traditional bitmap tracing unnecessary''' in many cases.&lt;br /&gt;
&lt;br /&gt;
Internally, the tool works by performing a bitmap-based flood fill on a rendered version of the visible canvas, then tracing the resulting fill using [[potrace]] and placing the traced path into the document.&lt;br /&gt;
&lt;br /&gt;
It places the rendered path onto the current layer, so you can have a layer on top (for example, &amp;quot;Inks&amp;quot;) and select the layer below (&amp;quot;Colors&amp;quot;) and do the fills so that they always appear below the Inks.&lt;br /&gt;
&lt;br /&gt;
The '''resolution''' of the bitmap image used to perform the trace is dependent upon your '''current zoom level''' -- the more zoomed in to an area that you are, the higher the resolution of the bitmap-based flood fill. So, if you are got a fill that is too imprecise, has rough corners, or don't go into small nooks and appendices where it is supposed to go, just undo, zoom in closer and repeat filling from the same point. Conversely, if the fill leaks out through a small gap, zoom out to make the gap less visible and fill again (or use the auto gap closing parameter, see below).&lt;br /&gt;
&lt;br /&gt;
===Style===&lt;br /&gt;
&lt;br /&gt;
Like all object-creating tools, the Paint Bucket may use the '''last-set style''' for the objects it creates (this is the default), or it can use its own '''fixed style'''. You can switch between these modes on this tool's page in Inkscape Preferences (Ctrl+Shift+P). As in all other tools, the '''style swatch''' on the far right of the Controls bar shows the style that will be used for the next fill object you create.&lt;br /&gt;
&lt;br /&gt;
===Controls===&lt;br /&gt;
&lt;br /&gt;
In the tool's '''Controls bar''':&lt;br /&gt;
&lt;br /&gt;
* Paint Bucket's perceptual fill can use either all visible colors or specific color channels. Using the '''Fill by''' drop-down list, you can restrict the fill algorithm to one the following channels:&lt;br /&gt;
** Red&lt;br /&gt;
** Green&lt;br /&gt;
** Blue&lt;br /&gt;
** Hue&lt;br /&gt;
** Saturation&lt;br /&gt;
** Lightness&lt;br /&gt;
** Alpha&lt;br /&gt;
&lt;br /&gt;
* The '''Threshold''' (in per cent units) controls how large must be color difference at a point (compared to the initial click point) to stop the fill. Zero tolerance means only the area of strictly the same color will be filled; the larger the tolerance, the easier it will be for the fill to leak into adjacent different-color areas. The default value is 10%.&lt;br /&gt;
&lt;br /&gt;
* Using the '''Grow/shrink by''' parameter, you can control the amount of inset/outset to be applied to the created fill path.  Setting a positive outset causes fill paths to be larger than the filled bitmap area (good for eliminating anti-aliasing errors), while setting a negative outset causes the path to be smaller.  This works much the same as the Outset and Inset path commands, except it's done automatically after every fill.&lt;br /&gt;
&lt;br /&gt;
* With the '''Close gaps''' parameter, you can make the Paint Bucket tool  ignore any gaps in the area boundaries that would normally cause the fill to spill out of the desired area.  There are four settings to auto gap:&lt;br /&gt;
** None&lt;br /&gt;
** Small (close gaps up to 2 pixels in size)&lt;br /&gt;
** Medium (4 pixels)&lt;br /&gt;
** Large (6 pixels)&lt;br /&gt;
:Note that setting this parameter to other than None may slow down noticeably the filling of large areas.&lt;br /&gt;
&lt;br /&gt;
===Shortcuts===&lt;br /&gt;
&lt;br /&gt;
The tool's '''shortcuts''' are:&lt;br /&gt;
&lt;br /&gt;
* '''Single click''' performs filling from the click point.&lt;br /&gt;
&lt;br /&gt;
* '''Shift+click''' performs filling from the click point and then unions the resulting path with the selected path. This way, if your first attempt did not fill in all of the desired area, you can Shift+click the remaining corner to fill it in separately and combine the result with the result of the previous fill.&lt;br /&gt;
&lt;br /&gt;
* '''Ctrl+click''' on an object simply changes that object's fill to the current fill color of the tool, and '''Shift+Ctrl+click''' changes the stroke to the current stroke color.&lt;br /&gt;
&lt;br /&gt;
* '''Click and drag''' performs filling from '''all of the points''' that you pass while dragging (you will see your path visualized by a red line). From each point, the fill spreads to the neighbors with the colors similar to that point - in other words, it's like clicking with this tool at each point of the drag path and unioning the results. This lets you easily fill an area occupied by a gradient or blur - just drag from the darkest to the lightest points in the area you want to fill.&lt;br /&gt;
&lt;br /&gt;
* '''Alt+click and drag''' works similarly to simple drag, except from each point of the drag path, the fill spreads to the neighbors (if any) with the colors similar to the ''initial point'' (the point where you started the drag).  This lets you fill a series of similarly-colored yet separated areas (for example, multiple cells in a cartoon) by starting the drag in one of those areas, and alt+dragging the tool through all the other areas.&lt;br /&gt;
&lt;br /&gt;
==Tweak tool==&lt;br /&gt;
&lt;br /&gt;
The Tweak tool is an exciting new way to edit drawings which largely blurs the&lt;br /&gt;
distinction between vector and raster editing. Instead of meticulously selecting some&lt;br /&gt;
objects and then performing an action on the selection, you can now select ''all''&lt;br /&gt;
objects (or all objects you are interested in) and apply the Tweak tool's brush to&lt;br /&gt;
smoothly and naturally change the shape or style of only those objects (or parts&lt;br /&gt;
thereof) ''that the brush touches''.&lt;br /&gt;
&lt;br /&gt;
The area of the tool's action - its ''brush'' - is marked by an orange-colored circular&lt;br /&gt;
outline that moves with your mouse cursor. However, that area actually has no sharp&lt;br /&gt;
boundaries; the power of the tool's action falls off gradually, following a smooth&lt;br /&gt;
bell-shaped profile. This makes the tool act softly and smoothly.&lt;br /&gt;
&lt;br /&gt;
The tool will work on any number of selected objects; for example, you can select all&lt;br /&gt;
(Ctrl+A) and &amp;quot;smear&amp;quot; your entire drawing by Push mode or paint it by Color Paint&lt;br /&gt;
mode. You can also apply it to groups of objects; it will go into groups and act on&lt;br /&gt;
individual objects inside groups. If you're trying to use it without anything selected,&lt;br /&gt;
it will remind you by a statusbar message to select some objects.&lt;br /&gt;
&lt;br /&gt;
===Width===&lt;br /&gt;
&lt;br /&gt;
The width of the tool's brush, in the range from 1 to 100, can be changed by the&lt;br /&gt;
'''Width''' control in the tool's controls bar above the canvas. You can also change&lt;br /&gt;
width by '''Left''' and '''Right''' arrow keys (same as in the Calligraphy tool) at any&lt;br /&gt;
time (including during action) as well as '''Home''' and '''End'''. Also, as in Calligraphy&lt;br /&gt;
tool, the visible width of the brush is independent of zoom; simply zooming in or out is&lt;br /&gt;
often easier than adjusting the width if you want to cover a smaller or larger area of&lt;br /&gt;
the drawing.&lt;br /&gt;
&lt;br /&gt;
===Force===&lt;br /&gt;
&lt;br /&gt;
The next control is '''Force''' which adjusts the power of the action, also in the&lt;br /&gt;
range from 1 to 100. You can also change width by '''Up''' and '''Down''' arrow keys at&lt;br /&gt;
any time (including during action).&lt;br /&gt;
&lt;br /&gt;
If you have a pressure-sensitive tablet and your &amp;quot;Use pressure&amp;quot; button on the right-hand&lt;br /&gt;
end of the controls bar is on, then the force will also depend on how hard you actually&lt;br /&gt;
press your pen into your tablet, changing in the range from zero to whatever you set in&lt;br /&gt;
the Force control. If all you have is a mouse, then the force will be constant but still&lt;br /&gt;
settable by the Force control. &lt;br /&gt;
&lt;br /&gt;
===Path editing modes===&lt;br /&gt;
&lt;br /&gt;
The Tweak tool has a number of '''modes''', selectable by toggle buttons in the tool's&lt;br /&gt;
Controls bar and by keyboard shortcuts. Some of these modes change the shapes of &lt;br /&gt;
paths while others affect the colors of objects. All these modes share the Width and&lt;br /&gt;
Force controls but otherwise are quite different. Let's look at the path editing modes&lt;br /&gt;
first.&lt;br /&gt;
&lt;br /&gt;
Unlike the Node tool, to edit paths with the Tweak tool you don't need to worry about&lt;br /&gt;
where the nodes of a path are and how to manipulate them. You just apply the tool's&lt;br /&gt;
brush to any point, and the selected paths at that point will reshape smoothly and&lt;br /&gt;
naturally - as if made of soft jelly - regardless of where its nodes lie. If applied to&lt;br /&gt;
a shape or text object, the tool converts them to paths automatically.&lt;br /&gt;
&lt;br /&gt;
While not very useful for technical drawings, tweaking paths will be indispensable for&lt;br /&gt;
artistic uses of Inkscape - cartoons, drawings, sketches, anime, etc. This new&lt;br /&gt;
functionality is somewhat similar to the tools such as &amp;quot;Pucker&amp;quot; and &amp;quot;Bloat&amp;quot; in the&lt;br /&gt;
latest versions of Adobe Illustrator. &lt;br /&gt;
&lt;br /&gt;
There are currently six path editing modes in the Tweak tool: '''Push''', '''Shrink''',&lt;br /&gt;
'''Grow''', '''Attract''', '''Repel''', and '''Roughen'''.&lt;br /&gt;
&lt;br /&gt;
* This default mode of the tool, '''Push''', simply displaces the part of the path under the cursor in the direction of the drag. The path behaves like soft jelly, bending and bulging smoothly and naturally. It's an easy way to produce various irregular, lifelike, handmade-looking shapes starting from something as simple as an ellipse or a calligraphic stroke. For parallel-stroke hatching (engraving) done in the Calligraphy tool, pushing is an easy way to bend, pinch, or curve the entire hatching uniformly.&lt;br /&gt;
&lt;br /&gt;
* The '''Shrink''' and '''Grow''' are two opposite modes that move each point of a path in a direction perpendicular to the path's surface at the point, either inwards (Shrink) or outwards (Grow). This is similar to the Inset and Outset commands, except that the Tweak tool can act on a part of a path instead of the whole path.&lt;br /&gt;
&lt;br /&gt;
:For example, the visible lightness/darkness of an engraving hatching may not exactly correspond to your artistic intention. Also, the ends of Calligraphy pen strokes are often far from ideal - they may be too blunt or have unsightly bends or blobs. This is where the Tweak tool may help. Select all the strokes in a hatching pattern and apply a light Shrink action where you want the lines to become thinner (and the hatching to become lighter), up until total disappearance. If you press hard, shrinking works as an eraser, so you can easily clean the strokes' ends to make them thin, sharp, and uniform. Conversely, applying Grow makes strokes wider (i.e. the hatching becomes darker).&lt;br /&gt;
&lt;br /&gt;
:Of course, shrinking and growing are useful not only for calligraphic strokes. Same as with Push, with Shrink and Grow you can '''sculpt''' any path, spawning smooth treacle-like appendages with Inflating and carving holes with Melting. Unlike the &amp;quot;node sculpting&amp;quot; mode in the Node tool, however, this does not require adding new nodes to the shape.&lt;br /&gt;
&lt;br /&gt;
* The '''Attract''' and '''Repel''' modes work by moving each affected point on a path towards (Attract) or from (Repel) the cursor point. In some cases this may look similar to Shrink and Grow, but the difference is that shrinking/growing moves paths perpendicularly to the path in each point, whereas attracting/repelling moves them to or from the cursor regardless of the path shape. These modes are similar to the Pinch effect in ; you can use them for various central-symmetric distortions in parts of your paths.&lt;br /&gt;
&lt;br /&gt;
* The '''Roughen''' mode does exactly this: roughens the edge of the path without  changing its overall shape. Slight roughening simply makes the edge crooked and uneven;  strong roughening tears and explodes the edge into random blobs and splotches. Note  that this operation, especially with high Fidelity, adds a lot of nodes which increases  the size of your SVG document and may slow down Inkscape considerably. In particular,  pushing/melting/inflating of a roughened path becomes much slower and more difficult, so  it's recommended to finalize the overall shape of a path first and roughen it, if  necessary, only as the final step.&lt;br /&gt;
&lt;br /&gt;
See the screenshot at [http://inkscape.org/screenshots/gallery/inkscape-0.46-tweak-path.png] for a few examples of using the path editing modes of the Tweak tool.&lt;br /&gt;
&lt;br /&gt;
====Fidelity====&lt;br /&gt;
&lt;br /&gt;
Any tweaking of a path slightly distorts the entire path, including even those parts&lt;br /&gt;
that you didn't touch. These distortions are similar to those that a Simplify command&lt;br /&gt;
produces. The '''Fidelity''' value (also in the range from 1 to 100, default is 50)&lt;br /&gt;
allows you to control the amount of these distortions. With a higher fidelity, the&lt;br /&gt;
distortions are less noticeable, but the path may end up having a lot of nodes which&lt;br /&gt;
inflates up the SVG size and slows down Inkscape.&lt;br /&gt;
&lt;br /&gt;
The best value of Fidelity depends on the nature of your artwork. If you're sculpting an&lt;br /&gt;
amorphous blob, you can do with low fidelity of about 20. If, however, you are pushing&lt;br /&gt;
or inflating a text string (as a single path) and want the letters outside the distorted&lt;br /&gt;
area to remain crisp and clean, you will need to raise fidelity to 80 or more. &lt;br /&gt;
&lt;br /&gt;
====Known problems====&lt;br /&gt;
&lt;br /&gt;
Known problems with the path editing modes in Tweak tool:&lt;br /&gt;
&lt;br /&gt;
# they don't work on open paths (an open path becomes closed if you tweak it);&lt;br /&gt;
# they are rather slow; &lt;br /&gt;
# they quickly eat memory; and &lt;br /&gt;
# they are sometimes buggy - thin calligraphic strokes may suddenly disappear or change their shape drastically as you're melting or inflating them.&lt;br /&gt;
&lt;br /&gt;
For (4), it helps to increase Fidelity. Also, you can undo the bad change and try again with less pressure on the pen - if you do your thinning in several light touches instead of one heavy press, usually you will be able to get the desired result without the buggy behavior. &lt;br /&gt;
&lt;br /&gt;
Also, sometimes after roughening, further tweaking of a path becomes impossible with this diagnostic:&lt;br /&gt;
&lt;br /&gt;
  WARNING **: Shape error in ConvertToShape: directedEulerian(a) == false&lt;br /&gt;
&lt;br /&gt;
All these problems stem from the livarot library that we use for geometric manipulation of paths. Fortunately, livarot is scheduled for replacement by lib2geom, a new library now in development, so hopefully these issues will be addressed then.&lt;br /&gt;
&lt;br /&gt;
===Color editing modes===&lt;br /&gt;
&lt;br /&gt;
The '''Color Paint''' and '''Color Jitter''' modes, unlike the path editing modes,&lt;br /&gt;
change the colors of objects instead of their shapes. Yet they share enough common&lt;br /&gt;
features with the path editing modes to be part of the same tool: These modes also use&lt;br /&gt;
a circular soft-edged brush controlled by the Width and Force parameters on the Controls&lt;br /&gt;
bar and affected by the pen pressure (if you have a pressure-sensitive tablet).&lt;br /&gt;
&lt;br /&gt;
* '''Color Paint''' applies the style of the tool to the selected objects under the brush. The style of the tool is visible in the style swatch at the rightmost end of the tool's control bar; it can be changed by clicking on the color palette or by any other style assignment command, such as Fill and Stroke dialog. ('''Note''': unlike all other tools, in Tweak tool in Color Paint mode you cannot assign style directly to selected objects; any style-setting command changes the tool's style instead.)&lt;br /&gt;
&lt;br /&gt;
:The fill from the tool's style applies to the fills of the painted objects, and the stroke applies to the strokes. If the tool's style has no fill or no stroke, it won't affect fills or strokes, correspondingly. For example, if you want to color the fills of objects blue but leave their strokes untouched, assign blue fill to the tool's style (just click blue on the palette) but set its stroke to None (middle-click the Stroke swatch in the statusbar). Similarly, master opacity in the tool's style affects master opacities of the touched objects (if the O channel is on, see below).&lt;br /&gt;
&lt;br /&gt;
:This mode allows you to literally paint over objects, shifting their colors towards the target style of the tool. For example, if you paint with yellow fill over a blue-filled object, the object will become greenish blue, then green, then yellowish green, and end up being exactly the yellow color you're painting with. This speed of this gradual transition depends on both Force parameter and pen pressure; also, objects touched by the periphery of the brush are less affected than those hit by the brush center. Overall, using this tool is very similar to a soft brush in a raster editor such as Gimp or Photoshop.&lt;br /&gt;
&lt;br /&gt;
* '''Color Jitter''' mode does not apply any color, but instead jitters (randomizes) the colors of the objects it touches. The force of the action determines how strong is the randomization, i.e. how far the colors deviate from the original values. This mode does not use the tool's style.&lt;br /&gt;
&lt;br /&gt;
Both modes work on flat fills and gradients; for gradients, the tool takes into account not only the position of the entire object with gradient, but also the position of each gradient stop relative to the brush. This means that, for example, you can change the blue color only in an object filled with blue-red gradient simply by painting over its blue end with a brush small enough to not touch the red. (Note that color tweaking does not create gradients on objects that used flat color before, but only adjusts existing gradients in the drawing.)&lt;br /&gt;
&lt;br /&gt;
See the screenshot at [http://inkscape.org/screenshots/gallery/inkscape-0.46-tweak-color.png] for a few examples of using the color editing modes of the Tweak tool.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Channels====&lt;br /&gt;
&lt;br /&gt;
Color Paint and Color Jitter honor the '''Channels''' control. This control comprises&lt;br /&gt;
the four buttons: '''H''', '''S''', '''L''', and '''O''', which allow you to turn on and off&lt;br /&gt;
the tool's action on the object's hue, saturation, lightness, and opacity,&lt;br /&gt;
correspondingly. For example, if you want to raise the saturation of some part of your&lt;br /&gt;
drawing without changing the hue, select some maximum-saturation color (e.g. pure red)&lt;br /&gt;
and turn off all Channels buttons except S. Similarly, you can replace the hues without&lt;br /&gt;
affecting saturation or lightness (only H pressed), or lighten/darken all colors without&lt;br /&gt;
changing their hues and saturation (only L pressed). Pressing O allows you to apply the&lt;br /&gt;
master opacity from the tool's style to the master opacity of objects (but not fill or&lt;br /&gt;
stroke opacity).&lt;br /&gt;
&lt;br /&gt;
====Usage notes====&lt;br /&gt;
&lt;br /&gt;
Color painting with Tweak tool is similar, but not exactly analogous to bitmap&lt;br /&gt;
painting. Even though the tool itself works as a soft brush, it still applies its color&lt;br /&gt;
to vector objects, which behave as vector objects usually do. For example, if you want&lt;br /&gt;
to change the tint of the face in your drawing, and if a hand in the drawing is part of&lt;br /&gt;
the same object as the face, that hand will change its tint too even if it's located far&lt;br /&gt;
from the point you are painting. (We foresee a &amp;quot;fracture&amp;quot; command in one of the next&lt;br /&gt;
versions of Inkscape which will help you turn a monolithic object into a mosaic of small&lt;br /&gt;
fragments that will be then easy to paint with Tweak tool.)  Still, even with this&lt;br /&gt;
limitation, color painting is a novel way of dealing with vector drawings which allows&lt;br /&gt;
you to quickly and intuitively make adjustments which would be awkward and slow with&lt;br /&gt;
traditional approach.&lt;br /&gt;
&lt;br /&gt;
Drawings containing patterns or scatterings of small independent objects are best suited&lt;br /&gt;
for color painting with Tweak tool. Examples include:&lt;br /&gt;
&lt;br /&gt;
* freehand drawings with Calligraphy pen, consisting of many separate strokes;&lt;br /&gt;
&lt;br /&gt;
* gradient meshes imported from Adobe Illustrator files (Inkscape renders these meshes as lattices of small polygons; while there's no direct support for gradient meshes in Inkscape yet, color painting on such lattices is almost as good);&lt;br /&gt;
&lt;br /&gt;
* text converted to paths and with Break Apart command applied so that each letter is a separate path;&lt;br /&gt;
&lt;br /&gt;
* patterns made with the Tile Clones command; note that you need to unset the fill and/or stroke on the original object and use the Color tab to assign some initial color to the clones - this will make them paintable with the Tweak tool without unlinking.&lt;br /&gt;
&lt;br /&gt;
Moreover, color tweaking can be useful for compositions with a few objects or even for&lt;br /&gt;
single objects. Unlike all other color selection methods, painting with the Tweak tool&lt;br /&gt;
implements the ''color mixing'' metaphor which is much more familiar to traditional&lt;br /&gt;
artists than RGB sliders or even the color wheel. For example, start with a rectagle of&lt;br /&gt;
pure blue color; then, pick different colors by Color Paint and apply light touches with&lt;br /&gt;
minimum Force and minimum pen pressure: add a little green, a little brown, a little&lt;br /&gt;
yellow, etc. until you have the exact hue you need. Similarly, you can whiten or blacken&lt;br /&gt;
any hue by admixing white or black.&lt;br /&gt;
&lt;br /&gt;
You can also use color tweaking to add a tint, darken/lighten, saturate/desaturate, or&lt;br /&gt;
color jitter your entire drawing. Just select all in all layers, zoom out, choose a&lt;br /&gt;
large brush width so it covers all of the drawing, and apply a little color tweaking&lt;br /&gt;
(with minimum Force) that will therefore affect all visible objects.&lt;br /&gt;
&lt;br /&gt;
===Keyboard shortcuts===&lt;br /&gt;
&lt;br /&gt;
* '''W''', '''Shift+F2''': switch to the Tweak tool&lt;br /&gt;
&lt;br /&gt;
* '''Shift+P''': switch to the Push mode&lt;br /&gt;
&lt;br /&gt;
* '''Shift+S''': switch to the Shrink mode&lt;br /&gt;
&lt;br /&gt;
* '''Shift+G''': switch to the Grow mode&lt;br /&gt;
&lt;br /&gt;
* '''Shift+A''': switch to the Attract mode&lt;br /&gt;
&lt;br /&gt;
* '''Shift+E''': switch to the Repel mode&lt;br /&gt;
&lt;br /&gt;
* '''Shift+R''': switch to the Roughen mode&lt;br /&gt;
&lt;br /&gt;
* '''Shift+C''': switch to the Color Paint mode&lt;br /&gt;
&lt;br /&gt;
* '''Shift+J''': switch to the Color Jitter mode&lt;br /&gt;
&lt;br /&gt;
* '''Left, Right, Home, End''': change width&lt;br /&gt;
&lt;br /&gt;
* '''Up, Down''': change force&lt;br /&gt;
&lt;br /&gt;
* '''mouse drag''': act on selected path in the current mode&lt;br /&gt;
&lt;br /&gt;
* '''Ctrl+mouse drag''': temporarily switch to Shrink (while Ctrl is down)&lt;br /&gt;
&lt;br /&gt;
* '''Shift+Ctrl+mouse drag''': temporarily switch to Grow (while Shift+Ctrl is down)&lt;br /&gt;
&lt;br /&gt;
==3D Box tool==&lt;br /&gt;
&lt;br /&gt;
Inkscape is a two-dimensional drawing tool. However, very often it is used to draw three-dimensional objects. The new '''3D box tool''' helps you create such 3D drawings by automating the most common operation: creating a three-dimensional box in a given perspective. The tool automatically ensures that all sides of the box lie on the corresponding perspective lines. We're not going to compete with Blender - but even simple things can go a long way.&lt;br /&gt;
&lt;br /&gt;
Currently in the 3D box tool you can:&lt;br /&gt;
&lt;br /&gt;
* draw a 3D box by dragging on canvas (use Shift+dragging without releasing the mouse button to extrude in z direction)&lt;br /&gt;
&lt;br /&gt;
* adjust any of its 3 dimensions by handles&lt;br /&gt;
&lt;br /&gt;
* move a 3D box &amp;quot;in perspective&amp;quot; by dragging its center; without modifiers, movement occurs within the XY-plane (press Ctrl to constrain the movement to the directions of the coordinate axes or diagonals), with Shift the box moves parallel to the Z-axis&lt;br /&gt;
&lt;br /&gt;
* adjust the vanishing points of a perspective by dragging them across the canvas (see below) or toggling their states; all boxes sharing this perspective are transformed accordingly&lt;br /&gt;
&lt;br /&gt;
In SVG, a 3D box is represented as a '''group''' (svg:g) with a special extension attribute (in inkscape namespace); this group contains the 6 quadrilateral '''paths''' representing the sides of the box. Only the 3D box tool treats this object as a box; for all other tools it is just a group, so you can select any of the paths by Ctrl+click, apply any style to it, delete it, etc. You can of course transform the entire box or any face in it using Selector or Node tools.&lt;br /&gt;
&lt;br /&gt;
When several boxes are selected, all vanishing points of their associated perspectives are shown on the canvas. If vanishing points of different perspectives coincide, they are combined in a single &amp;quot;dragger&amp;quot;. Moving this dragger moves all the vanishing points simultaneously and transforms the associated boxes accordingly. Note that some non-selected boxes may also be reshaped if their perspectives share the same vanishing point. Pressing Shift while moving the dragger can be used to only transform the selected boxes, separating their perspectives from the non-selected ones'. On the other hand, when a vanishing point being dragged comes close enough to another one, both snap together and are combined in a single dragger.&lt;br /&gt;
&lt;br /&gt;
===Keyboard shortcuts===&lt;br /&gt;
&lt;br /&gt;
* '''X''', '''Alt+F4''': switch to the 3D box tool&lt;br /&gt;
&lt;br /&gt;
* The various kinds of parentheses, namely '''[''' ''']''', '''(''' ''')''', '''{''' '''}''', can be used to rotate infinite (i.e., parallel) perspective lines in X-, Y-, and Z-direction, respectively. Closing parentheses rotate clockwise and opening parentheses rotate counterclockwise. The angle of rotation is taken from the preferences. Pressing '''Alt''' reduces the amount of rotation to 1 screen pixel.&lt;br /&gt;
&lt;br /&gt;
* '''L''': toggle visibility of perspective lines&lt;br /&gt;
&lt;br /&gt;
* '''A''': when perspective lines are visible, toggle between &amp;quot;all lines&amp;quot; and &amp;quot;only lines connected to front corners&amp;quot; (this can help to avoid visual clutter)&lt;br /&gt;
&lt;br /&gt;
[max]&lt;br /&gt;
&lt;br /&gt;
==Gradient Tool==&lt;br /&gt;
===Selecting multiple stops===&lt;br /&gt;
'''More than one gradient stop''' can be selected at a time. Shortcuts for working with multiple stop selections are generally modeled on the Node tool. &lt;br /&gt;
* Add a stop to the selected stops by '''Shift+click'''.&lt;br /&gt;
* Press '''Ctrl+A''' to select all stops in the selected objects.&lt;br /&gt;
* '''Shift+drag''' around stops to add them to selection.&lt;br /&gt;
Multiple selected stops:&lt;br /&gt;
*Can be moved together by '''mouse drag''' or by '''arrow keys'''. For example, creating a linear gradient, then press Ctrl+A to select all stops and use arrow keys to move the entire gradient as a whole.&lt;br /&gt;
*Can be deleted at the same time by pressing '''Del'''.&lt;br /&gt;
An always up-to-date description of the current handle selection is provided in the statusbar in the Gradient tool, including the number of selected handles (and the type of the single selected handle), as well as the total number of handles and selected objects.&lt;br /&gt;
&lt;br /&gt;
===Editing intermediate stops===&lt;br /&gt;
'''Intermediate stops''' in gradients can be added, deleted, and edited on canvas (previously this was only possible in the Gradient Editor dialog).&lt;br /&gt;
*Stops can be added by '''double clicking''' or by '''Ctrl+Alt+Click''' on the gradient line. Also, you can '''drag-and-drop''' a color from the palette onto the gradient line to create a new stop with this color. Dropping a color on an existing stop changes the color of that stop.&lt;br /&gt;
*When two or more adjacent stops are selected, pressing '''Ins''' adds stops in the middles of all selected stop intervals.&lt;br /&gt;
*Intermediate stops can be '''mousedrag'''ged or moved by '''arrow keys''' along their gradient line, within the limits of the adjacent unselected stops (or end handles). &lt;br /&gt;
:*Dragging with '''Ctrl''' moves the selected stops snapping them to 1/10 fractions of the available range.&lt;br /&gt;
:*Dragging with '''Alt''' moves the selected stops depending on how close each one is to the stop being dragged, using a smooth bell-like curve similar to the node sculpting feature in Node tool. This makes it easy to approximate different gradient profiles; for example, if you have a two-stop gradient that you want to shape according to a curve profile, select both ends of the gradient, press '''Ins''' a few times to add a number of intermediate nodes, then '''Alt+drag''' a node in the middle to smoothly profile the gradient.&lt;br /&gt;
*Stops can also be moved by '''arrow keys''' with all the regular modifiers ('''Shift''' for 10x movement, '''Alt''' for pixel-size movement at the current zoom, '''Shift+Alt''' for 10 pixels movement at the current zoom).&lt;br /&gt;
*Stops can be deleted by '''Ctrl+Alt+Click''' on a stop or by the '''Del''' key for all the selected stop(s).&lt;br /&gt;
:*When you delete an end stop, the nearest intermediate stop becomes the new end stop of the gradient (without moving - i.e., the gradient span becomes shorter).&lt;br /&gt;
:*When you delete an end stop and there are no intermediate stops, the object will be painted with a solid fill taken from the color &amp;amp; opacity of the remaining stop.&lt;br /&gt;
*Pressing '''Ctrl+L''' with some intermediate stops selected attempts to ''simplify'' the selected portion of the gradient, removing those stops that can be removed without too much change in the way the gradient looks. In particular, new stops created by double-clicking or pressing Ins initially do not change the appearance of the gradient, so if you press Ctrl+L, all redundant stops that weren't moved or repainted since creation will be deleted.&lt;br /&gt;
&lt;br /&gt;
===Style of gradient stops===&lt;br /&gt;
*When you have one of the '''gradient handles selected''', its style (color and opacity) is reflected by the selected style indicator (left of the statusbar) and the Fill&amp;amp;Stroke dialog. Previously, opacity of a gradient handle was reflected as fill-opacity and stroke-opacity; now it is reflected as '''master opacity''' (the &amp;quot;O:&amp;quot; spinbutton in the selected style indicator, the &amp;quot;Master opacity&amp;quot; slider in Fill&amp;amp;Stroke). This makes it much easier to view and change opacity of gradient handles using only the selected style indicator in the statusbar.&lt;br /&gt;
:*When multiple gradient stops are selected, the selected style indicator (in the statusbar) displays and controls the averaged color and opacity of the selected stops.&lt;br /&gt;
*When one or more gradient stops are selected, using the Copy command ('''Ctrl+C''') copies to the clipboard the style (color and opacity) of the selected stop or the averaged style of several selected stops, not the entire object with gradient as before. This means you can now copy/paste style between stops: select the source stop(s), copy, select the destination stop(s), paste style ('''Ctrl+Shift+V'''). With several selected stops, this also allows you to easily average their colors and opacities by copying them and pasting the style back onto them. (After that, redundant gradient stops can be removed by simplification with '''Ctrl+L''').&lt;br /&gt;
*If the selected object(s) have gradient in fill or stroke, the '''selected style indicator''' in the bottom-left corner of the editing window now displays a '''live gradient preview''' prefixed by '''R''' or '''L''' to indicate Radial or Linear gradients (instead of displaying &amp;quot;L Gradient&amp;quot; or &amp;quot;R Gradient&amp;quot; text labels as before). Also, this and other similar widget now use italic font face to indicate &amp;lt;i&amp;gt;None&amp;lt;/i&amp;gt; and bold to indicate &amp;lt;b&amp;gt;Unset&amp;lt;/b&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Automatic duplication of gradients===&lt;br /&gt;
When copy/pasting or duplicating an object with gradient, it now automatically gets a '''copy''' of the original gradient, so modifying it does not affect the source object's gradient anymore (before, you had to press the Duplicate button on the Gradient controls bar for this). The Duplicate button is therefore removed. &lt;br /&gt;
&lt;br /&gt;
However, to accommodate the needs of users who have relied on sharing the same gradient definition across objects, this behavior can be optionally suppressed. The '''Prevent sharing of gradient definitions''' checkbox on the Misc tab of Inkscape Preferences is by default checked; if you uncheck it, Inkscape does not automatically copy gradient definitions for new objects, which means that copy/pasting, duplicating, pasting style, and explicit assignment of a gradient to an object via the Gradient tool controls results in a shared gradient definition, so that changing the colors or mid-stop positions of the gradient on one object (but not changing the coordinates of the end handles) affects all other objects that share the same definition.&lt;br /&gt;
&lt;br /&gt;
==Calligraphy tool: Engraver's Toolbox ==&lt;br /&gt;
&lt;br /&gt;
Several new features were added to the Calligraphic pen to make&lt;br /&gt;
Inkscape capable of the ancient art of '''line&lt;br /&gt;
engraving'''. Traditional engraving is a very labour-intensive&lt;br /&gt;
process, and while for a long time it was the only practical way&lt;br /&gt;
of reproducing lifelike images in black-and-white print, about a&lt;br /&gt;
century ago it was almost completely displaced by automatic&lt;br /&gt;
halftone screens. However, line engravings have their&lt;br /&gt;
characteristic charm, and there's no reason not to try to&lt;br /&gt;
resurrect this art form with the help of Inkscape.&lt;br /&gt;
&lt;br /&gt;
A brief visual guide to the new functionality can be seen on&lt;br /&gt;
these screenshots:&lt;br /&gt;
&lt;br /&gt;
http://inkscape.org/screenshots/gallery/inkscape-0.46-engraving1.png&lt;br /&gt;
&lt;br /&gt;
http://inkscape.org/screenshots/gallery/inkscape-0.46-engraving2.png&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Tracking a guide path with Ctrl===&lt;br /&gt;
&lt;br /&gt;
One of the most common operations in line engraving is&lt;br /&gt;
'''hatching''' (or sometimes ''cross-hatching'' when several&lt;br /&gt;
hatching grids cross): filling a space with many parallel&lt;br /&gt;
straight or variously curved lines (usually of varying width to&lt;br /&gt;
represent a gradual shading). You could try to achieve a similar&lt;br /&gt;
effect with e.g. path interpolation (blending), but it is rather&lt;br /&gt;
cumbersome and limited; manual drawing of hatch lines, on the&lt;br /&gt;
other hand, is tedious and nearly impossible to do&lt;br /&gt;
uniformly. Now Inkscape provides &amp;quot;assisted hatching&amp;quot; by&lt;br /&gt;
'''tracking a guide path''', allowing you to hatch quickly and&lt;br /&gt;
uniformly and at the same time giving you sufficient manual&lt;br /&gt;
control over the process.&lt;br /&gt;
&lt;br /&gt;
Here's how to do this. First, select the '''guide path''' that&lt;br /&gt;
you will track. It may be another calligraphic stroke, any path&lt;br /&gt;
or shape, or even a letter of a text object. Then switch to&lt;br /&gt;
Calligraphic pen, select the desired parameters (line width,&lt;br /&gt;
angle, fixation etc.) and, before starting to draw, press&lt;br /&gt;
Ctrl. You will see a gray '''track circle''' centered at your&lt;br /&gt;
mouse pointer and touching the closest point on the selected&lt;br /&gt;
guide path. (If you have no guide path selected, a statusbar&lt;br /&gt;
message will tell you to select it.)&lt;br /&gt;
&lt;br /&gt;
Now move your mouse close to the guide path, so that the track&lt;br /&gt;
circle radius is equal to the desired spacing of your hatch&lt;br /&gt;
pattern, and start drawing along the guide path. At that moment,&lt;br /&gt;
the radius of the circle gets locked; now the circle slides&lt;br /&gt;
along the guide path - and the actual stroke is drawn by the&lt;br /&gt;
center of the tracking circle, ''not'' by your mouse point. As&lt;br /&gt;
a result, you are getting a smooth stroke going parallel to the&lt;br /&gt;
guide path and always at the same distance from it.&lt;br /&gt;
&lt;br /&gt;
When the stroke is ready, release your mouse button (or lift&lt;br /&gt;
your tablet pen) but '''do not let go of the Ctrl key''' because&lt;br /&gt;
as long as you have it pressed, the tool remembers the hatch&lt;br /&gt;
spacing you set when you started drawing. Now, you have just&lt;br /&gt;
created a new stroke and, as usual with Inkscape tools, it gets&lt;br /&gt;
selected instead of what was selected before. In our case, this&lt;br /&gt;
means that the newly drawn stroke itself becomes the new guide&lt;br /&gt;
path. Next, you can draw a second stroke along the first one,&lt;br /&gt;
then a third one along the second, etc. Eventually you can fill&lt;br /&gt;
any desired space with uniform hatching.&lt;br /&gt;
&lt;br /&gt;
Alternatively, if you uncheck &amp;quot;Select new path&amp;quot; in the Calligraphy tool preferences, newly created strokes will not be selected, so your original guide path will be kept selected. In this mode, Inkscape will increase the tracking distance after each created stroke so that you can create uniformly spaced hatching by tracking a single guide path. &lt;br /&gt;
&lt;br /&gt;
The attachment to the guide path is not absolute. If you stray&lt;br /&gt;
your mouse pointer far enough from the guide path, you will be&lt;br /&gt;
able to tear it off (the track circle turns from green to red)&lt;br /&gt;
and move freely. This is intentional; this feature allows you,&lt;br /&gt;
for example, to continue drawing a stroke past the end of a&lt;br /&gt;
guide stroke, thus making your hatching cover a wider area than&lt;br /&gt;
the initial guide path. Special care is taken to make such&lt;br /&gt;
tearing off as smooth as possible and to suppress violent jerks,&lt;br /&gt;
but this is not always possible; the general advice is to not&lt;br /&gt;
try to hatch too fast. If jerking and unintended tearoffs still&lt;br /&gt;
bother you, try increasing the Mass parameter.&lt;br /&gt;
&lt;br /&gt;
Also, special code is in place to prevent flipovers - accidental&lt;br /&gt;
jumps to the other side of the guide path. Brief flipovers are&lt;br /&gt;
suppressed, but if you intentionally go over to the other side&lt;br /&gt;
and stay there, eventually Inkscape will obey and your tracking&lt;br /&gt;
stroke will also flip over to follow you.&lt;br /&gt;
&lt;br /&gt;
Tracking a guide also allows some slight feedback by gradually&lt;br /&gt;
changing the tracking distance in response to your drawing&lt;br /&gt;
behavior. Thus, if you're consistently trying to draw closer or&lt;br /&gt;
farther from the guide than the current tracking distance, the&lt;br /&gt;
distance will correspondingly decrease or increase, so you will&lt;br /&gt;
get a hatching that is slightly spacing in or out. (The effect&lt;br /&gt;
is very slight, however, so as not to become a nuisance.)  Also,&lt;br /&gt;
note that since tracking follows the edge of the stroke, strokes&lt;br /&gt;
of varying width (such as those tracing background, see below)&lt;br /&gt;
will result in gradual bending of the hatching pattern as you&lt;br /&gt;
proceed.&lt;br /&gt;
&lt;br /&gt;
===Tracing background by stroke width===&lt;br /&gt;
&lt;br /&gt;
There is a new toggle button on the Calligraphy tool's controls&lt;br /&gt;
bar, '''Trace background'''. When on, the width of your pen&lt;br /&gt;
depends on the lightness of the background under the stroke in&lt;br /&gt;
each point, so that white translates into the minimum stoke&lt;br /&gt;
width (1) and black translates to the maximum (which is set by the&lt;br /&gt;
Width parameter). This can work alone or in combination with&lt;br /&gt;
pressure sensitivity, depending on whether the &amp;quot;Use pressure&amp;quot; button&lt;br /&gt;
is also toggled.&lt;br /&gt;
&lt;br /&gt;
This feature allows you to not only hatch over an imported&lt;br /&gt;
bitmap image or any drawing, but to do so automatically&lt;br /&gt;
reproducing the highlights and shades of the background with&lt;br /&gt;
your strokes becoming lighter and heavier as needed.&lt;br /&gt;
&lt;br /&gt;
===Misc features===&lt;br /&gt;
&lt;br /&gt;
* For consistency with other drawing tools, drawing with '''Shift''' in Calligraphy tool automatically '''unions''' the newly created stroke with whatever paths were selected (and selects the result).  Thus, you can do a series of overlapping Shift+strokes to create one unioned path object instead of separate objects as before. &lt;br /&gt;
&lt;br /&gt;
* To facilitate changing the Width parameter, the Home/End keys in Calligraphy tool switch you to the minimum (1) and maximum (100) width, correspondingly. (This is in addition to the Left/Right arrow keys that change Width by 1; remember also that you can press Alt+X, type any width, and press Enter.)&lt;br /&gt;
&lt;br /&gt;
==Selector==&lt;br /&gt;
&lt;br /&gt;
* A new selection mode is available: '''selecting by touch'''. In this mode, you draw a freehand path across the objects; when you release mouse button, all objects that are touched by this path get selected. This mode is very convenient  in situations where you need to select objects so intermingled that selecting them by the rectangular rubberband is too difficult and so numerous that click-selecting them one by one is too tedious. &lt;br /&gt;
&lt;br /&gt;
:To activate selecting by touch, whenever you are drawing a rubberband rectangle, just press '''Alt''' to switch it to the touch mode. The rectangle will disappear and a red ''touch path'' will be shown instead. When dragging from an empty space, you can press '''Alt''' first and then start to drag to get the touch mode (note that your selection must be empty, otherwise Alt+dragging will move the selected objects instead). To start a touch selection from a point over an object, or to add to existing selection by touching, press '''Shift+Alt''' and then start to drag.&lt;br /&gt;
&lt;br /&gt;
* Previously, the only way to switch selection from scale mode to rotate mode or back was to click on it, which was rather inconvenient when the selected object is in a group or under other objects. Now you can switch modes with keyboard as well by pressing '''Shift+S''' in Selector tool.&lt;br /&gt;
&lt;br /&gt;
* Draging the '''scale handles with Alt''' now scales selection by an integer factor, i.e. up to '''2''', '''3''', '''4''', etc. times the original size or down to '''1/2'''. '''1/3''', '''1/4''', etc. of the original size (in any of the two dimensions independently). This way you can, for example, mirror any object around one of the edges of its box. (This replaces the old and rarely used &amp;quot;slow&amp;quot; scaling mode with Alt.)&lt;br /&gt;
&lt;br /&gt;
* '''Horizontal/vertical flipping''': So far, flipping a selection made it flip within its bounding box, so that the latter remained fixed. In the move/scale mode of the selector tool, this behaviour remains unchanged. However, in rotate/shear mode flipping now happens about an (imaginary) vertical/horizontal axis through the rotation center. This is very handy, since the latter can be freely dragged around and snaps to all kinds of objects if desired.&lt;br /&gt;
&lt;br /&gt;
* '''Objects to Marker''' was added to the objects menu, which converts the current selection to a marker, with the center point of the selection being set to the center of the marker.&lt;br /&gt;
&lt;br /&gt;
==Node tool==&lt;br /&gt;
&lt;br /&gt;
* If any of the nodes in the currently selected path is mouseovered, then horizontal/vertical flipping ('H' and 'V' keys), stepwise rotation ('[' and ']' keys) and scaling ('&amp;lt;' and '&amp;gt;' keys) now all use this specific node as center/axis. If there is no mouseovered node, the center of the bounding box is used instead (as is currently the case unconditionally). Nodes that are covered by one of their handles are also detected as mouseovered.&lt;br /&gt;
&lt;br /&gt;
* [helper path display - johan]&lt;br /&gt;
** this is deactivated for normal paths now. only paths with LPE applied will show it. should there be a button to turn it on for normal paths aswell?&lt;br /&gt;
&lt;br /&gt;
* As a long-requested feature, two entry fields are added to the toolbar which allow precise editing of the coordinates of selected nodes.&lt;br /&gt;
&lt;br /&gt;
==Rectangle Tool==&lt;br /&gt;
&lt;br /&gt;
* Ctrl+dragging now also allows the creation of rectangles with sides constrained to the golden ratio (approx. 1 : 1.618034), not only integer ratios.&lt;br /&gt;
&lt;br /&gt;
==Text tool==&lt;br /&gt;
* [text toolbar - deadchip?]&lt;br /&gt;
* If text contains a tref element, the text tool's behavior may not be as expected.  Please see [[#The tref Element]]&lt;br /&gt;
&lt;br /&gt;
==Dropper Tool==&lt;br /&gt;
&lt;br /&gt;
The shortcut 'D' is now used to &amp;lt;i&amp;gt;toggle&amp;lt;/i&amp;gt; (not just switch to) the dropper tool - much like space is used to toggle the selector tool. That is, pressing 'D' a second time switches back to the tool used before.&lt;br /&gt;
&lt;br /&gt;
=SVG features=&lt;br /&gt;
&lt;br /&gt;
==The tref element==&lt;br /&gt;
&lt;br /&gt;
Inkscape can now correctly open files with '''tref''' elements, and new tref elements can be created manually in the XML editor.&lt;br /&gt;
&lt;br /&gt;
The actual character data contained in a text element can either be embedded directly, or it can be the character content of an element referenced by a '''tref'''.&lt;br /&gt;
&lt;br /&gt;
While the textual content from the referenced element will be stripped of any markup before being used by the '''tref''', the '''tref''' element can itself have the same attributes as a '''tspan'''.  In fact, when rendered, it is as though the '''tref''' element is replaced by a '''tspan''' with the same attributes, and the referenced character data is embedded in that '''tspan'''.&lt;br /&gt;
&lt;br /&gt;
The property '''xlink:href''' is used to refer to another element whose character data will be used.  Any element can be referred to except an ancestor of the '''tref'''.  When any of the text contained in the referred element changes, the '''tref''' will immediately be updated to display the new data.&lt;br /&gt;
&lt;br /&gt;
Existing tref elements can be converted into tspan elements with '''Edit &amp;gt; Clone &amp;gt; Unlink Clone'''.  If more than one '''tref''' is contained within a selection, all '''trefs''' will be converted into '''tspans'''.  All attributes applied to the '''tref''' will be retained in the new '''tspan'''.&lt;br /&gt;
&lt;br /&gt;
A '''tref''' element can be mixed with any other elements allowed to be contained by a text element.&lt;br /&gt;
&lt;br /&gt;
The cloned character data rendered by the '''tref''' may not be edited, but any characters surrounding it can be changed.  Styles cannot be applied to a subset of the cloned characters, but if all are selected, a style can be applied to the '''tref'''.&lt;br /&gt;
&lt;br /&gt;
==SVG filters==&lt;br /&gt;
&lt;br /&gt;
===New filters supported===&lt;br /&gt;
&lt;br /&gt;
* The '''feBlend''' filter primitive gives us image blending modes, like in many image manipulation programs. These modes are screen, multiply, darken and lighten. There's a caveat, though: when blending an object against an semi-transparent background, the background will be accumulated twice, resulting in thicker objects under the bounding box of blended object. This is a limitation of current version of SVG format, not a bug in Inkscape.&lt;br /&gt;
&lt;br /&gt;
* The '''feColorMatrix''' filter primitive applies a matrix transformation to colour of each rendered pixel. This allows for effects like turning object to grayscale, modifying colour saturation and changing colour hue.&lt;br /&gt;
&lt;br /&gt;
* The '''feComposite''' filter primitive composites two images using one of the [http://en.wikipedia.org/wiki/Porter-Duff Porter-Duff blending modes] (described in paper Compositing Digital Images by T. Porter and T. Duff, published in SIGGRAPH '84 Conference Proceedings, Association for Computing Machinery, Volume 18, Number 3, July 1984) or the aritmetic mode described in SVG standard. Porter-Duff blending modes are essentially logical operations between the images. For example, xor mode shows the areas, where either one of the objects is, but not the areas where both of the objects are. Arithmetic mode lets you specify coefficients k1-k4 for blending equation (result colour) = k1 * (first input colour) * (second input colour) + k2 * (first input colour) + k3 * (second input colour) + k4.&lt;br /&gt;
&lt;br /&gt;
* The '''feConvolveMatrix''' lets you specify a [http://en.wikipedia.org/wiki/Convolution Convolution] to be applied on the image. Common effects created using convolution matrices are blur, sharpening, embossing and edge detection. There's a fairly good explanation and some example matrices at [http://www.gamedev.net/reference/programming/features/imageproc/page2.asp www.gamedev.net/reference/programming/features/imageproc/page2.asp]. Note that while gaussian blur can be created using this filter primitive, the special gaussian blur primitive is faster and resolution-independent.&lt;br /&gt;
&lt;br /&gt;
* Filter primitives '''feDiffuseLighting''' and '''feSpecularLighting''' create lighting maps for the object in input image. SVG doesn't have concept of third dimension, so these filters use alpha channel of input image as a height map: the more opaque given point in input image is, the nearer spectator it is considered to be. There exists an example for using these in Inkscape distribution, in share/examples/lighting_effects.svg or [http://inkscape.svn.sourceforge.net/viewvc/*checkout*/inkscape/inkscape/trunk/share/examples/lighting_effects.svg?revision=15523 in SVN]&lt;br /&gt;
&lt;br /&gt;
* The '''feDisplacementMap''' filter primitive displaces the pixels in the first input using the second input as a displacement map, that shows from how far the pixel should come from. Classical examples are whirl and pinch effects, that can be found in most image manipulation programs and even in some screensavers, where this kind off effect is moving around screen, twisting desktop beneath it.&lt;br /&gt;
&lt;br /&gt;
* The '''feImage''' filter primitive allows using external images as part of filtering chain. For example, one could use external image as a displacement map for feDisplacementMap or as a height map for lighting effects. Note that while SVG standard allows using other parts of the SVG file in this filter primitive, the current Inkscape implementation only allows external images.&lt;br /&gt;
&lt;br /&gt;
* The '''feMerge''' filter primitive composites several temporary images inside the filter primitive to a single image. It uses normal alpha compositing for this. This is equivalent to using several feBlend primitives in 'normal' mode or several feComposite primitives in 'over' -mode.&lt;br /&gt;
&lt;br /&gt;
* The '''feMorphology''' filter primitive provides erode and dilate effects, that are common in image manipulation programs. With erode, darker and more transparent areas spread to lighter and more opaque areas, whereas with dilate lighter and more opaque areas spread to darker and more transparent areas. For single-colour objects, this basically means, erode makes the object thinner and dilate makes it thicker.&lt;br /&gt;
&lt;br /&gt;
* The '''feOffset''' filter primitive offsets the image by an user-defined amount. For example, this is useful for drop shadows, where the shadow is in a slightly different position than the actual object.&lt;br /&gt;
&lt;br /&gt;
* The '''feTurbulence''' filter primitive renders [http://en.wikipedia.org/wiki/Perlin_noise Perlin noise]. This kind of noise is useful in simulating several nature phenomena like clouds, fire and smoke and in generating complex textures like marble or granite.&lt;br /&gt;
&lt;br /&gt;
See also wiki page [[Filter Effects]] for more info on filters in Inkscape in general.&lt;br /&gt;
&lt;br /&gt;
===Filters UI===&lt;br /&gt;
&lt;br /&gt;
* New dialog for creating and modifying filter effects ('''Object&amp;gt;Filter Effects...''')&lt;br /&gt;
* The list at the left of the dialog displays all filters currently in the document.&lt;br /&gt;
** New filters can be added with the '''Add''' button beneath the list&lt;br /&gt;
** Right-clicking a filter for the pop-up menu allows duplicating or removing a filter.&lt;br /&gt;
** Double-clicking a filter will apply it to all selected objects&lt;br /&gt;
** A black dot is placed next to whatever filter is applied to the selected objects. If more than one filter is in use by selected objects, an unfilled dot is used instead.&lt;br /&gt;
* The second list, at the left of the dialog, displays the '''filter primitives''' that are contained within the currently-selected filter.&lt;br /&gt;
** New primitives can be added by selecting the primitive type from the combo box beneath the list, and then pressing the '''Add''' button.&lt;br /&gt;
** Right-clicking a primitive for the pop-up menu allows duplicating or removing a primitive.&lt;br /&gt;
** Primitives can be rearranged by clicking and dragging any filter in the list.&lt;br /&gt;
** When a filter is selected, the '''Settings''' group at the bottom of the dialog will change to display the attributes available for that primitive. Changing a setting results in an immediate update to the document.&lt;br /&gt;
** The &amp;quot;in&amp;quot; and &amp;quot;in2&amp;quot; attributes for filters that support them are not shown in the '''Settings''' group. These input connections are displayed graphically in the list, under the '''Connections''' column.&lt;br /&gt;
*** Inputs for a particular filter are displayed as triangles. Depending on the primitive type, there may be one or two inputs (or more for Merge primitives.) Connections can be created by clicking on a triangle and dragging.&lt;br /&gt;
*** There are six standard input types that can be used for any primitive input; Source Graphic, Source Alpha, Background Image, Background Alpha, Fill Paint, and Stroke Paint. These are displayed vertically on the far right of the list. Click and drag from an input triangle to one of the standard inputs to connect them.&lt;br /&gt;
*** Primitives can also be connected to other primitives by clicking an input triangle and dragging upwards to another primitive. A primitive can only be connected to one higher up the list.&lt;br /&gt;
*** Single-clicking on an input triangle will unset it, returning it to the default. If it is on a Merge primitive, the input will be deleted.&lt;br /&gt;
*** Merge inputs have an empty input at the end. Dragging a connection from this input will add a new input to the primitive.&lt;br /&gt;
&lt;br /&gt;
=Live Path Effects (LPE)=&lt;br /&gt;
&lt;br /&gt;
'''Live path effects''' (not to be confused with extension effects or SVG filters) are a new way to &amp;lt;b&amp;gt;non-destructively modify path and shape objects&amp;lt;/b&amp;gt;. Path effects affect the path data of an object but not its style. The original path is preserved and can be edited directly on-canvas, and the path effect applied to it will be updated live. &lt;br /&gt;
&lt;br /&gt;
In this version, we include several path effects that are analogous to the corresponding extension effects (such as Path along Path effect and Pattern along Path that replaces the extension of the same name). The most important advantage of path effects is that they are, indeed, live - you can still edit the original path and the effect will update in real time (unlike the extension effects which were one-time one-way transformations). In the future, we plan to reimplement most if not all of path-changing extensions as live path effects.&lt;br /&gt;
&lt;br /&gt;
Live path effects were developed by Johan Engelen as part of the GSoC 2007.&lt;br /&gt;
&lt;br /&gt;
==Details about operation==&lt;br /&gt;
The following schematic tries to explain how LPE work.&lt;br /&gt;
&lt;br /&gt;
    original style  ------------&amp;gt;  output style&lt;br /&gt;
    original path   --&amp;gt;  LPE  --&amp;gt;  output path&lt;br /&gt;
                          ^&lt;br /&gt;
                          |&lt;br /&gt;
                      parameters&lt;br /&gt;
&lt;br /&gt;
The original style and path are from the path that the effect is applied on. The output is what is visible on screen. What is very important to notice is that &amp;lt;b&amp;gt;output style equals original style&amp;lt;/b&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The parameters can be paths, numbers, points, text, in principle anything.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Applying effects==&lt;br /&gt;
Path effects are applied through the Path Effects dialog (opened from the Path menu, or by pressing Ctrl+Shift+7. This dialog is also used for controlling the effect's parameters and for removing effects.&lt;br /&gt;
&lt;br /&gt;
When a path with a path effect applied is selected, the statusbar description mentions that, for example &amp;quot;'''Path''' (4 nodes, path effect)&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
There is a special Paste Path Effect command (Ctrl+7) that can be used to copy effects from one path to another.&lt;br /&gt;
&lt;br /&gt;
==Editing effect parameters==&lt;br /&gt;
When switching to the node edit tool (&amp;lt;b&amp;gt;F2&amp;lt;/b&amp;gt;), the &amp;lt;b&amp;gt;original path&amp;lt;/b&amp;gt; can be edited. The original path is shown as a red helper path. Normal path operations, like simplify, still work.&lt;br /&gt;
&lt;br /&gt;
Some parameters of effects can be edited on-canvas. For example, path parameters can be node-edited, by pressing the &amp;quot;edit on-canvas&amp;quot; button in the Path Effects dialog. &amp;lt;b&amp;gt;Press &amp;quot;7&amp;quot; to cycle through the different on-canvas editable parameters.&amp;lt;/b&amp;gt; This way, one can edit the parameters without opening the Path Effects dialog. The statusbar tells the name of the parameters that is currently being shown.&lt;br /&gt;
&lt;br /&gt;
==Available effects==&lt;br /&gt;
&lt;br /&gt;
===Path along path===&lt;br /&gt;
The &amp;lt;b&amp;gt;Path along Path&amp;lt;/b&amp;gt; effect can curve a path along another path. When this effect is applied to a path, it can be bend along another path (called ''bend path''). With the node edit tool, both the original path and the bend path can be changed &amp;lt;b&amp;gt;on-canvas&amp;lt;/b&amp;gt; and the result is &amp;lt;b&amp;gt;updated live&amp;lt;/b&amp;gt;. This provides a direct equivalent of &amp;quot;vector brushes&amp;quot; or &amp;quot;skeletal strokes&amp;quot; features in other vector editors. &lt;br /&gt;
&lt;br /&gt;
In the effect's control panel in the Path Effects dialog, you can select how many copies of the original path are put along the bend path (either '''single''' or '''repeated''') and whether it is '''stretched''' to fill the bend path. In this dialog you'll also find a button to edit the bend path on-canvas and a button to '''paste''' a new bend path from clipboard. A possible workflow is this: you select and copy the new bend path to the clipboard, then select the path you want to bend, apply the Path along path effect, and paste the bend path with the paste button next to 'bend path'.&lt;br /&gt;
&lt;br /&gt;
Example file: live-path-effects-pathalongpath.svg&lt;br /&gt;
&lt;br /&gt;
===Pattern along path===&lt;br /&gt;
The &amp;lt;b&amp;gt;Pattern along Path&amp;lt;/b&amp;gt; effect can curve a path along another path. When this effect is applied to path A (called ''skeleton''), another path B (called ''pattern'') can then be passed as a parameter. The result is that path B is bent along path A. With the node edit tool, path A can be changed &amp;lt;b&amp;gt;on-canvas&amp;lt;/b&amp;gt; and the result is &amp;lt;b&amp;gt;updated live&amp;lt;/b&amp;gt;. This provides a direct equivalent of &amp;quot;vector brushes&amp;quot; or &amp;quot;skeletal strokes&amp;quot; features in other vector editors. &lt;br /&gt;
&lt;br /&gt;
In the effect's control panel in the Path Effects dialog, you can select how many copies of the pattern are attached (either '''single''' or '''repeated''') and whether the pattern is '''stretched''' to fill the skeleton path. You can also choose the pattern for the selected skeleton [either directly or] by '''pasting''' it from clipboard (that is, you select and copy to the clipboard the pattern, then select the skeleton, apply the Path along path effect, and paste the pattern). The '''Scale width''' parameter allows you to change the width of the pattern applied to the path.&lt;br /&gt;
&lt;br /&gt;
Example file: live-path-effects-pathalongpath.svg&lt;br /&gt;
&lt;br /&gt;
===Stitch Subcurves===&lt;br /&gt;
The &amp;lt;b&amp;gt;Stitch Subcurves&amp;lt;/b&amp;gt; effect connects points from two subpaths of the path with straight line or curved segments, i.e. the &amp;lt;i&amp;gt;stitches&amp;lt;/i&amp;gt;. It looks a lot like the Effect Lines from Expression 3. The result is also referred to as &amp;quot;String Art&amp;quot;. For some examples of string art, see http://members.shaw.ca/jillbritton/string_art/jbstringart.htm. &lt;br /&gt;
&lt;br /&gt;
The &amp;lt;b&amp;gt;shape&amp;lt;/b&amp;gt; of the &amp;lt;b&amp;gt;connecting paths&amp;lt;/b&amp;gt; can controlled by the &amp;lt;b&amp;gt;stroke path&amp;lt;/b&amp;gt; parameter. This could be used to draw 'hair-shaped' connecting paths with sharp end-tips. Other controls include the &amp;lt;b&amp;gt;number of paths&amp;lt;/b&amp;gt;, the variation in spacing between the connecting paths (&amp;lt;b&amp;gt;clustering&amp;lt;/b&amp;gt;) and also whether the start and end points of the stitches should like exactly on the original subcurves or can &amp;lt;b&amp;gt;stray randomly&amp;lt;/b&amp;gt; around them. Finally the width of the stroke path can be varied.&lt;br /&gt;
&lt;br /&gt;
Note that this effect can only be applied to a path with two subpaths in it, hence '&amp;lt;b&amp;gt;sub&amp;lt;/b&amp;gt;curve' in the name. Use Path &amp;gt; Combine to create such a path from two separate paths.&lt;br /&gt;
&lt;br /&gt;
Example file: live-path-effects-curvestitch.svg&lt;br /&gt;
&lt;br /&gt;
Example file showing cooperation between Stitch Subcurves and Path along Path:  live-path-effects-curvestitch-hair.svg&lt;br /&gt;
&lt;br /&gt;
===Gears===&lt;br /&gt;
The &amp;lt;b&amp;gt;Gears&amp;lt;/b&amp;gt; effect is a toy effect. It generates a chain of interconnected gears from the path that has the effect applied to it. The nodes of the path define the centers of the gears. The first 3 nodes are special; the first defines the start angle of the chain, the second defines the center of the first gear and the third knot specifies the radius of the first gear. That is, to create a chain of 2 gears, you will need a path with 4 nodes; for 3 gears, 5 nodes, and so on. &lt;br /&gt;
&lt;br /&gt;
Example file: live-path-effects-gears.svg&lt;br /&gt;
&lt;br /&gt;
==Development of new effects==&lt;br /&gt;
One of the goals of the Summer of Code project was to make it easy to create new effects. There is a framework that greatly simplifies effect implementation; very little code is needed to get the effect hooked into Inkscape. This leaves valuable time for the actual effect to be implemented. See the http://wiki.inkscape.org/wiki/index.php/MakingLivePathEffects wiki page for an explanation of how to get started with your own effect!&lt;br /&gt;
&lt;br /&gt;
[johan]&lt;br /&gt;
&lt;br /&gt;
=Extension effects=&lt;br /&gt;
&lt;br /&gt;
== Live preview ==&lt;br /&gt;
&lt;br /&gt;
* '''Live preview of effects''': Using the async behavior (see below), as soon as the parameters dialog for an effect is shown, the script is executed in the background and the screen updates as soon as it's finished.  This can result is seemingly faster execution if no parameters are changed.  If some parameters are adjusted, the script is restarted. This allows you to see immediately the effects of any  parameter change without pressing the OK button on the effect's dialog.&lt;br /&gt;
&lt;br /&gt;
* '''Spawn Glib API''': Scripting extension have been moved to the Glib spawn API to ensure that parameters and variables aren't interpreted by a shell.  This also means that scripting extensions are executed in a separate process asynchronously allowing the GTK main loop to continue to execute.&lt;br /&gt;
&lt;br /&gt;
* '''Progress dialog''': While an extension is working on a document, a small dialog is shown allowing the user to cancel the execution.&lt;br /&gt;
&lt;br /&gt;
== New and improved effects ==&lt;br /&gt;
&lt;br /&gt;
* The new '''Modify Path &amp;gt; Edge 3D''' extension creates black, grey and white paths around a shape, then blurs and clips them for a 3D effect.&lt;br /&gt;
&lt;br /&gt;
* The new '''Render &amp;gt; Barcode''' extension creates a [http://en.wikipedia.org/wiki/Barcode barcode]. Supported types include EAN13, EAN8, UPC-A, UPC-E, UPC-5, Code39, Code39Ext, Code93, Code128, and RM4SCC. &lt;br /&gt;
&lt;br /&gt;
* The new '''Render &amp;gt; Gear''' extension creates a [http://en.wikipedia.org/wiki/Gear mechanical gear] given the number of teeth, the circular pitch (in px units), and the pressure angle.&lt;br /&gt;
&lt;br /&gt;
* The new '''Render &amp;gt; [[Spirograph]]''' extension creates intricate mathematical curves akin to the classic [http://en.wikipedia.org/wiki/Spirograph mechanical Spirograph toy] (see [http://wiki.inkscape.org/wiki/images/Spirograph_Samples.svg samples]).&lt;br /&gt;
&lt;br /&gt;
* A group of new effects in the '''Text''' submenu performs various case conversions on selected text objects: converting to UPPERCASE, lowercase, Sentence case, Title Case, as well as flipping case (switching uppercase to lowercase and vice versa) and rANdoMiZInG cAse. If no texts are selected, the effect works on all texts in the document.&lt;br /&gt;
&lt;br /&gt;
* Another effect in the Text submenu, '''Replace text''', performs search-and-replace on the selected text objects or (if nothing is selected) on all texts in the document. Searching is case sensitive. You can use this effect to globally delete all occurrences of some text fragment by replacing it with empty string. Conversely, if you search for an empty string and replace it with some string, this string will be inserted after every character of your text; for example, you can space out a text by replacing in it an empty string with a single space. &lt;br /&gt;
&lt;br /&gt;
* A new effect, '''Replace color''' in the Color submenu, simply replaces one RRGGBB-specified color to another within selection or, if there's no selection, in the entire document. As with other effects in that submenu, the replacement affects fill, stroke, and gradient colors, but not colors of bitmaps.&lt;br /&gt;
&lt;br /&gt;
*The new '''Color &amp;gt; Randomize''' extension allows you to change the color via hue, saturation and lightness check boxes. This is useful if you want to colorize lots of shapes at the same time.&lt;br /&gt;
&lt;br /&gt;
*The '''Whirl''' extension uses the center of view as the center of whirl, so you don't have to enter the center coordinates numerically.&lt;br /&gt;
&lt;br /&gt;
*The '''Render &amp;gt; Grid''' extension has got an extended range of grid spacings, from 0.1 to 1000 px.&lt;br /&gt;
&lt;br /&gt;
*The '''Render &amp;gt; Function Plotter''' extension can now plot using polar coordinates.&lt;br /&gt;
&lt;br /&gt;
*The '''Generate Template &amp;gt; Perfect-Bound Cover''' extension creates templates for wraparound covers for perfect-bound books using US size and paper weight measurements.   This extension will resize the document to include the width, height, spine width, and bleed measurements that are provided to the extensions, so it should be the first operation done before designing.&lt;br /&gt;
&lt;br /&gt;
== XSLT effects ==&lt;br /&gt;
&lt;br /&gt;
* '''XSLT''' is now supported for input, output and effect extensions.  This is used to support the XAML file format (both import and export) and the Adobe Illustrator SVG import which removes Adobe's stuff from SVG.&lt;br /&gt;
&lt;br /&gt;
== ImageMagick effects ==&lt;br /&gt;
&lt;br /&gt;
New raster operations available through the effects drop-down menu, powered by the ImageMagick library. For any of these effects to work, you need to have an '''image object selected''' in the drawing. &lt;br /&gt;
&lt;br /&gt;
* '''Adaptive Threshold''' applies adaptive thresholding to the bitmap. Average color of rectangle provided by '''width''' and '''height''' used as threshold value. Use '''offset''' to apply a different threshold than the average.&lt;br /&gt;
&lt;br /&gt;
* '''Add Noise''' adds random noise of certain types to the bitmap.&lt;br /&gt;
&lt;br /&gt;
* '''Blur''' blurs the bitmap, using '''radius''' as the amount of blur. Higher radius means more blur. (Note that unlike the vector Gaussian blur of objects, this bitmap blur will not extend the edges of the image, so it may appear truncated at the edges.)&lt;br /&gt;
&lt;br /&gt;
* '''Channel''' extracts the specified channel from the bitmap.&lt;br /&gt;
&lt;br /&gt;
* '''Charcoal''' applies a charcoal drawing style to a bitmap. Radius controls the width (or detail) of charcoal strokes. Higher '''radius''' means lower detail. '''Sigma''': the higher it is, the less defined the charcoal is.&lt;br /&gt;
&lt;br /&gt;
* '''Colorize''' overlays the bitmap with a given color at a given intensity.&lt;br /&gt;
&lt;br /&gt;
* '''Contrast''' lightly enhances the contrast (difference between lights and darks) of a bitmap.&lt;br /&gt;
&lt;br /&gt;
* '''Cycle Colormap''' cycles the colormap of a bitmap.&lt;br /&gt;
&lt;br /&gt;
* '''Despeckle''' reduce the speckle noise in a bitmap.&lt;br /&gt;
&lt;br /&gt;
* '''Edge''' hilights edges in a bitmap.&lt;br /&gt;
&lt;br /&gt;
* '''Emboss''' embosses a bitmap, hilighting edges with 3D effect.&lt;br /&gt;
&lt;br /&gt;
* '''Enhance''' enhance a bitmap, minimizing noise.&lt;br /&gt;
&lt;br /&gt;
* '''Equalize''' equalizes a bitmap. Histogram equalization.&lt;br /&gt;
&lt;br /&gt;
* '''Flop''' mirrors a bitmap, reflecting each scanline in the horizontal direction.&lt;br /&gt;
&lt;br /&gt;
* '''Gaussian Blur''' blurs a bitmap, more strongly than regular blur.&lt;br /&gt;
&lt;br /&gt;
* '''Implode''' sucks everything towards the center of the bitmap.&lt;br /&gt;
&lt;br /&gt;
* '''Level''' scales values falling between the given '''Black Point''' to '''White Point''' range to the full color range.&lt;br /&gt;
&lt;br /&gt;
* '''Level Channel''' acts the same way as level but for only one channel.&lt;br /&gt;
&lt;br /&gt;
* '''Median Filter''' filters a a bitmap by replacing each pixel component with the median color in a circular neighborhood&lt;br /&gt;
&lt;br /&gt;
* '''Modulate''' adjusts the percent hue, saturation, and brightness of a bitmap.&lt;br /&gt;
&lt;br /&gt;
* '''Negate''' takes the inverse of a bitmap.&lt;br /&gt;
&lt;br /&gt;
* '''Normalize''' normalizes a bitmap, expanding color range to the full possible range of color.&lt;br /&gt;
&lt;br /&gt;
* '''Oil Paint''' stylizes a bitmap so that it appears to be painted with oils.&lt;br /&gt;
&lt;br /&gt;
* '''Opacity''' modifies the opacity channel of a bitmap.&lt;br /&gt;
&lt;br /&gt;
* '''Raise''' alters the lightness of the edges of a bitmap to create a raised appearance, much like a frame.&lt;br /&gt;
&lt;br /&gt;
* '''Reduce Noise''' reduces noise in a bitmap by using a noise peak elimination filter.&lt;br /&gt;
&lt;br /&gt;
* '''Shade''' shades a bitmap by simulating a distant light source&lt;br /&gt;
&lt;br /&gt;
* '''Sharpen''' sharpens a bitmap.&lt;br /&gt;
&lt;br /&gt;
* '''Solarize''' solarizes a bitmap, like overexposing photographic film.&lt;br /&gt;
&lt;br /&gt;
* '''Spread''' randomly spread pixels in a bitmap within the radius of '''amount'''.&lt;br /&gt;
&lt;br /&gt;
* '''Swirl''' swirls the bitmap around the center point.&lt;br /&gt;
&lt;br /&gt;
* '''Threshold''' thresholds a bitmap.&lt;br /&gt;
&lt;br /&gt;
* '''Unsharpmask''' sharpens a bitmap using an unsharp mask algorithm.&lt;br /&gt;
&lt;br /&gt;
* '''Wave''' alters a bitmap along the sine wave.&lt;br /&gt;
&lt;br /&gt;
These effects are part of the Google Summer of Code 2007, coded by Christopher Brown.&lt;br /&gt;
&lt;br /&gt;
== Misc ==&lt;br /&gt;
&lt;br /&gt;
* All Python effects are switched from the old and unmaintained PyXML library to the new powerful [http://codespeak.net/lxml/ lxml] library.&lt;br /&gt;
&lt;br /&gt;
* A new parameter, '''precision''' is added to the parameter definitions in the [[MakingAnINX|inx file format]], allowing you to set the number of digits in that parameter's spinbutton in the effect UI.&lt;br /&gt;
&lt;br /&gt;
= Stock patterns =&lt;br /&gt;
&lt;br /&gt;
Since a few versions ago, Inkscape supports patterns in fill and stroke. However, up to now the only way to apply a pattern was by creating it in the document using the Object(s) to Pattern command, which wasn't very convenient. Now, if you switch an object's fill or stroke to pattern using the Fill&amp;amp;Stroke dialog, you will get a drop-down list with a number of predefined '''stock patterns''' that you can apply simply by selecting them from the list:&lt;br /&gt;
&lt;br /&gt;
*A selection of plain '''stripes''' differing by the ratio of the stripe width to gap width (for example, the &amp;quot;Stripes 1:2&amp;quot; pattern has gaps twice as wide as stripes), in the range from 4:1 to 1:64. All stripes patterns are in two versions: with black stripes and with white stripes (gaps are always transparent).&lt;br /&gt;
&lt;br /&gt;
*Two '''checkerboard''' patterns with black and white odd squares (even squares are transparent)&lt;br /&gt;
&lt;br /&gt;
*'''Packed circles''': a hexagonal pattern of black circles with transparent gaps.&lt;br /&gt;
&lt;br /&gt;
*'''Polka dots''': a scattering of dots designed to look randomly but evenly distributed so as to mask the regularity of the repeating pattern. There are three size variants of this pattern (small, medium, and large dots) and two color variants (black and white dots).&lt;br /&gt;
&lt;br /&gt;
*'''Wavy''' is a pattern of wavy lines.&lt;br /&gt;
&lt;br /&gt;
*'''Camouflage''' is a green-toned protective pattern such as that used by the military.&lt;br /&gt;
&lt;br /&gt;
*'''Ermine''' is the traditional heraldic pattern representing stylized stoat furs with black tails.&lt;br /&gt;
&lt;br /&gt;
*Three bitmap patterns: '''sand''', '''cloth''', and '''old paint''' are based on seamless photographic tiles and allow you to add some natural texture to your drawing. All of them are grayscale, so you can make objects with these textures semitransparent and overlay them over other colored objects to &amp;quot;texturize&amp;quot; them. &lt;br /&gt;
&lt;br /&gt;
After applying a stock pattern, switch to Node tool to edit the location, scale, and rotation of the pattern via on-canvas handles.&lt;br /&gt;
&lt;br /&gt;
All stock patterns are stored in the file &amp;lt;code&amp;gt;patterns/patterns.svg&amp;lt;/code&amp;gt; in Inkscape's &amp;lt;code&amp;gt;share&amp;lt;/code&amp;gt; directory (typically &amp;lt;code&amp;gt;/usr/share/inkscape&amp;lt;/code&amp;gt; on Linux, &amp;lt;code&amp;gt;&amp;lt;i&amp;gt;inkscape-dir&amp;lt;/i&amp;gt;/share&amp;lt;/code&amp;gt; on Windows). You can add your own patterns to this file or replace it with any other SVG file containing the patterns you need.&lt;br /&gt;
&lt;br /&gt;
=Color management=&lt;br /&gt;
&lt;br /&gt;
== Calibrated SVG color including CMYK ==&lt;br /&gt;
&lt;br /&gt;
Inkscape now supports color-managed color definitions that use a colorspace other than sRGB (for example Adobe RGB, or calibrated CMYK colors). In the SVG file, this is done using the&lt;br /&gt;
optional &amp;quot;icc-color(...)&amp;quot; paint components as described in section 11.2 &amp;quot;Specifying paint&amp;quot; of the SVG 1.1 specification&lt;br /&gt;
[http://www.w3.org/TR/SVG11/painting.html#SpecifyingPaint]. A fallback sRGB value will be used, for non color-managed workflows. This allows for the use of calibrated color spaces, including using CMYK values that are preserved across applications.&lt;br /&gt;
&lt;br /&gt;
The new CMS color selector tab allows these colors to be edited.&lt;br /&gt;
&lt;br /&gt;
== Display adjustment ==&lt;br /&gt;
&lt;br /&gt;
In Inkscape Preferences, Color Management tab, there's are new options for enabling display adjustment; you can select any calibration profile (an ICC file) suitable for your display. Options for rendering intent can also be chosen.&lt;br /&gt;
&lt;br /&gt;
=== Per-window adjustment ===&lt;br /&gt;
Display adjustment is enabled and disabled per each editing window. This allows for simultaneous viewing of adjusted and unadjusted views of a single document by using multiple windows. There is a toggle at the bottom-right corner of the scrollbars that allows for turning on and off display adjustment. It also will be disabled to provide visible feedback when no profile is set to be available for adjustment.&lt;br /&gt;
&lt;br /&gt;
=== XICC Support ===&lt;br /&gt;
On X11-based systems (i.e. Unix and Mac OSX), use of [[http://www.burtonini.com/computing/x-icc-profiles-spec-latest.html ICC Profiles In X Specification]] (or XICC) can be enabled. Support for version 0.2 of this specification has been implemented. Enabling this option by choosing to retrieve profiles from the display will switch Inkscape to using profiles attached to screens at runtime. These allow display adjustment to be changed on the fly, and to be set and cleared per-monitor. This is especially helpful with more than a single monitor.&lt;br /&gt;
&lt;br /&gt;
Other Open Source software such as [http://www.gimp.org/ GIMP] support XICC. This allows all aware applications to be adjusted by setting a profile only once.&lt;br /&gt;
&lt;br /&gt;
=== Multi-monitor aware ===&lt;br /&gt;
When XICC support is enabled, windows will adjust to the proper profile as they are moved across monitors. Also, as the windows are moved onto monitors with no profile attached, the adjustment toggle will become disabled. When the windows are moved onto screens that do have profiles, the toggle will become enabled.&lt;br /&gt;
&lt;br /&gt;
== Soft Proofing ==&lt;br /&gt;
&lt;br /&gt;
In Inkscape Preferences, Color Management tab, there's a new option for enabling output device preview; you can select any calibration profile (an ICC file) suitable for your output device. Options for rendering intent can also be chosen, along with out of gamut warnings.&lt;br /&gt;
&lt;br /&gt;
=Snapping=&lt;br /&gt;
&lt;br /&gt;
* Snapping has been implemented or improved for:&lt;br /&gt;
&lt;br /&gt;
:* '''Newly created shapes'''&lt;br /&gt;
&lt;br /&gt;
:* '''Skewing''' of objects&lt;br /&gt;
&lt;br /&gt;
:* '''Handles''' of objects, incl. '''gradients'''&lt;br /&gt;
&lt;br /&gt;
:* '''Images''' and '''clones'''&lt;br /&gt;
&lt;br /&gt;
:* Text boxes, which snap to '''text baselines''' again&lt;br /&gt;
&lt;br /&gt;
:* Objects, for which snapping now optionally considers the '''rotation center'''&lt;br /&gt;
&lt;br /&gt;
:* Objects, which now allow for '''constrained snapping'''&lt;br /&gt;
&lt;br /&gt;
:* '''Guides''', which now snap while dragging them&lt;br /&gt;
&lt;br /&gt;
:* '''Axonometric grids'''&lt;br /&gt;
&lt;br /&gt;
:* '''Angled guide lines'''&lt;br /&gt;
&lt;br /&gt;
:* '''Bounding boxes''', of which now all four corners snap&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Other snapping fixes and improvements include:&lt;br /&gt;
&lt;br /&gt;
:* It is now possible to snap to '''intersections''' of e.g. gridlines with guidelines, and of line segments. &lt;br /&gt;
&lt;br /&gt;
:* The '''snapping preferences dialog''' has been restyled to make it more intuitive. &lt;br /&gt;
&lt;br /&gt;
:* Inkscape now has a global snapping toggle, which has been added to the view-menu and is accessible through a shortcut&lt;br /&gt;
&lt;br /&gt;
:* Inkscape now allows for controlling the snapping per grid when multiple grids are being used&lt;br /&gt;
&lt;br /&gt;
:* Snapping distance is now set in screen pixels and is therefore '''independent of zoom'''. &lt;br /&gt;
&lt;br /&gt;
:* Snapping of objects has been made more clean, by only snapping '''bounding box corners to bounding boxes''', and '''nodes to other nodes and paths'''.&lt;br /&gt;
&lt;br /&gt;
:* The time it takes to snap to objects using the selector tool has been reduced significantly.&lt;br /&gt;
&lt;br /&gt;
:* The bug where &amp;quot;node-to-node&amp;quot; snapping caused jerky movement of nodes is fixed.&lt;br /&gt;
&lt;br /&gt;
:* The '''aspect ratio''' is correctly preserved while scaling objects with snapping turned on.&lt;br /&gt;
&lt;br /&gt;
:* Only nodes at '''non-smooth parts''' of a path now snap.&lt;br /&gt;
&lt;br /&gt;
:* The confusing &amp;quot;Default transformations origin&amp;quot; option has been removed. Now Inkscape always uses the opposite edge of the object's bounding box as the '''transformation origin''' (though the bounding box itself can now be different, see next item).&lt;br /&gt;
&lt;br /&gt;
:* A new preference option has been added to specify the kind of bounding box to be used for transforming objects (see Inkscape Preferences, Tools, Selector). You can choose between the '''visual bounding box''' (which takes into account the stroke width, markers, and blur margins; this is the default behavior) or '''geometric bounding box''' (which encloses only the path itself, disregarding stroke width).&lt;br /&gt;
&lt;br /&gt;
=Grids=&lt;br /&gt;
Grids have undergone some big changes under-the-hood. These are the visible changes:&lt;br /&gt;
* There is a &amp;lt;b&amp;gt;new 3D/axonometric grid&amp;lt;/b&amp;gt;!&lt;br /&gt;
* A new tab in the document properties dialog, solely meant for grids; the former grid/guide tab is now solely for guides. I envision a list of guides there in the future, for easier deletion of guides etc.&lt;br /&gt;
* More than one grid can be active at the same time&lt;br /&gt;
** Each grid can be enabled/disabled separately from the document properties dialog.&lt;br /&gt;
* One can make grids invisible by unchecking the &amp;quot;Visible&amp;quot; checkbox in the grid's tab in the document properties dialog. Snapping is still enabled even for invisible grids!&lt;br /&gt;
* Multiple views on the same document share the same grids, but the grid can be turned off for each view separately. For example: one could have an overview view without grids showing. Duplicate that window and zoom in on some detail; then grids can be shown only for that view, and snapping will only happen in those views for which grids are enabled. (sorry i am not able to explain more clearly, perhaps someone else can?)&lt;br /&gt;
* Grid information is now stored in SVG as a child of sodipodi:namedview. Old files will be converted to this new format automatically&lt;br /&gt;
* The rectangular grid now has an option to show dots on gridline intersections instead of solid lines&lt;br /&gt;
&lt;br /&gt;
From developer perspective:&lt;br /&gt;
&lt;br /&gt;
* Implementation of new grids is much easier now; subclassing CanvasGrid and adding an entry in the is enough. Have a peek at how the rectangular grid is implemented (CanvasXYGrid).&lt;br /&gt;
* Note that there is no longer &amp;quot;the grid&amp;quot;, there might be several grids active now!&lt;br /&gt;
&lt;br /&gt;
A side effect of removal of old gridcode: apparantly the origin of the desktop rules used to be set to the origin of the grid. I find this strange: specifying a grid origin of (2,2) would have me think the origin would be at ruler location (2,2) instead of (0,0) as it is in 0.45.1.&lt;br /&gt;
I have commented the grid-origin correction to the ruler range, because now there is not a single grid anymore to correct it for. Isn't there a control somewhere to define the documents origin? Now the ruler origin is set to (0,0)&lt;br /&gt;
&lt;br /&gt;
--johan&lt;br /&gt;
&lt;br /&gt;
=Angled guidelines=&lt;br /&gt;
&lt;br /&gt;
Now, Inkscape also provides angled guidelines! Double click on a guide to set its angle.&lt;br /&gt;
&lt;br /&gt;
*  When dragging a guideline off the rulers close to the edge, the guideline will automatically be angled. The angle is set depending on the grid.&lt;br /&gt;
** For the rectangular grid, the angle is 45 degrees.&lt;br /&gt;
** For the axonometric grid, the angle is matched to the grid. When the Ctrl-key is pressed, the angle is perpendicular to the grid lines (useful for aligning gradients).&lt;br /&gt;
&lt;br /&gt;
=Import/Export=&lt;br /&gt;
&lt;br /&gt;
==PDF and AI import==&lt;br /&gt;
&lt;br /&gt;
In this version, Inkscape can natively (i.e. without any additional software) import PDF files and the newer PDF-based Adobe Illustrator files (starting from AI version 9.0). &lt;br /&gt;
&lt;br /&gt;
'''Implemented features''': The new import extension can import '''paths''', '''text''', '''clippaths''', '''masked or non-masked images''', and '''softmasks'''. It supports '''pattern fills''' (XStep and YStep attributes are ignored) as well as '''linear and radial gradients''' (only those using sampled or exponential functions). '''Gradient meshes''' are imported, but they get converted to groups of small tiles (flat-colored paths) that approximate the mesh; the user can adjust the precision of this approximation. &lt;br /&gt;
&lt;br /&gt;
'''PDF import settings''': After opening a PDF or AI document, the PDF Import Settings dialog shows up. Here you can select:&lt;br /&gt;
&lt;br /&gt;
* the '''page''' to be imported from a multipage PDF;&lt;br /&gt;
&lt;br /&gt;
* the overall '''clip region''' (which can be none or set to any of the PDF boxes, e.g. the crop box, the media box, the trim box, etc.);&lt;br /&gt;
&lt;br /&gt;
* the '''precision''' for the approximation of '''gradient meshes'''; note that setting this too high may result in a huge SVG file and slow performance when importing files with gradient meshes;&lt;br /&gt;
&lt;br /&gt;
* a checkbox controlling whether the '''images''' should be '''embedded''' into the resulting SVG document or saved on the current path;&lt;br /&gt;
&lt;br /&gt;
* a '''preview''' of the selected page (shown if poppler-cairo is present on the system or if the selected page has a thumbnail embedded into the PDF document).&lt;br /&gt;
&lt;br /&gt;
'''Text editing tips''': Any text imported from PDF or AI has each letter's precise place on the page ''fixed''. While this preserves the exact appearance (e.g. justification of text blocks) of the imported document, it makes editing such text difficult: deleting text fails to contract the text line and inserting text fails to expand it, i.e. typed letters overlay the existing letters. (However, you still can replace a letter with another letter of about the same width, although you may need to kern it into place with Alt+arrows.)&lt;br /&gt;
&lt;br /&gt;
To work around this, select the text object you want to edit and use '''Text &amp;gt; Remove manual kerns''' command. This will remove the exact positioning information, so if the text block was justified it will lose justification, but instead you will be able to edit it as usual. &lt;br /&gt;
&lt;br /&gt;
Note that there is a way to select even a single line in a text block. For this, open the XML editor, expand the &amp;lt;svg:text&amp;gt; tree branch corresponding to your text, and select any of the &amp;lt;svg:tspan&amp;gt; objects under it. Now you can remove manual kerns from this line only. After you finish editing the line, you can manually justify it back, for example by adding spaces, manual kerns (Alt+arrows), or by adjusting letterspacing (select the whole line and use Alt+&amp;gt; or Alt+&amp;lt;).&lt;br /&gt;
&lt;br /&gt;
The native PDF/AI importer is based on the poppler library and was implemented by Miklós Erdélyi as part of the Google Summer of Code 2007.&lt;br /&gt;
&lt;br /&gt;
==PDF export==&lt;br /&gt;
&lt;br /&gt;
* A new cairo-based PDF exporter has been added to Inkscape (marked as &amp;quot;Cairo PDF&amp;quot; in the export format list). Inkscape 0.46 can export shapes, strokes, transparency, gradients, patterns, text, and images correctly to cairo. While clipping paths and masks are known to be faulty or missing. Also, unlike the old PDF exporter, the cairo-based PDF export produces compressed PDF files that are reasonably compact. cairo will write a PDF with vector graphics when possible and fall back to raster graphics when needed. What can be exported as vectors and how much of the image will be rasterized when the fallback kicks in depends on your version of cairo. cairo version 1.2 with the pdf backend compiled in is the minimum requirement for any cairo-based PDF exports, but it is highly recommended to use at least '''cairo 1.5.2''' for quality PDF export.&lt;br /&gt;
&lt;br /&gt;
* A new cairo-based PostScript exporter has been added (marked as &amp;quot;Cairo PS&amp;quot; in the export format list). The cairo PS backend is not as mature as the PDF backend. It rasterizes a lot of its content. Text output does not work where it works with the PDF backend.&lt;br /&gt;
&lt;br /&gt;
==CDR (CorelDraw) import==&lt;br /&gt;
&lt;br /&gt;
Inkscape can use [http://www.sk1project.org/modules.php?name=Products&amp;amp;product=uniconvertor UniConvertor] if it's installed on your system to import documents in CDR format (CorelDraw). This feature is Unix-only at this time (since UniConvertor is Unix-only) and requires that you have Python and UniConvertor installed. As of UniConvertor 1.0rc2, only versions from 7 to X3 of the CDR format are supported, and text objects are not converted. &lt;br /&gt;
&lt;br /&gt;
==XAML import/export==&lt;br /&gt;
&lt;br /&gt;
* Inkscape can import vector graphics portions of XAML documents, as well as export its documents to XAML.&lt;br /&gt;
&lt;br /&gt;
==Adobe Illustrator SVG clean import==&lt;br /&gt;
&lt;br /&gt;
* Using this new import filter, Inkscape can open an SVG document removing any elements and attributes in the namespaces that Adobe Illustrator uses for its stuff.  This will clean out everything except the actual SVG content.&lt;br /&gt;
&lt;br /&gt;
==Bitmap export==&lt;br /&gt;
&lt;br /&gt;
* '''Batch export''': The Bitmap Export dialog (Ctrl+Shift+E) got a new checkbox, ''Batch export all selected objects''. This checkbox is available when two or more objects are selected. If it is checked, instead of exporting selection as a whole, Inkscape exports each selected object separately into its own PNG file. This uses each object's export hints (i.e. export filename and DPI) if they are remembered from a previous export; otherwise, the filename is created from the object ID and the DPI is 90 pixels per inch. '''Caution:''' Unlike regular export, batch export overwrites all existing PNG files without warning.&lt;br /&gt;
&lt;br /&gt;
:This makes it possible to implement all kinds of '''image slicing''' and automated export scenarios. For example, if you are working on a web site design, you can create a separate &amp;quot;export&amp;quot; layer. In that layer, &amp;quot;slice&amp;quot; your web page image into separate areas by creating invisible rectangles with no fill and no stroke. Select each rectangle (by Tab/Shift+Tab, or by switching to Outline mode where even an invisible rectangle can be selected by clicking on its outline) and export it into the corresponding filename (which gets saved as that object's export hint). After that, if you do any changes to your graphics, it's very easy to reexport all the slices: just switch to the &amp;quot;export&amp;quot; layer, select all in that layer (Ctrl+A), and export with the ''Batch export selected objects'' checkbox on.&lt;br /&gt;
&lt;br /&gt;
* '''Hide all except selected''': A new checkbox allows you to hide in the exported image everything except selected object(s).&lt;br /&gt;
&lt;br /&gt;
* The Export dialog automatically appends the '''.png''' extension to the export filename you specify.&lt;br /&gt;
&lt;br /&gt;
== Open Clip Art Library import and export ==&lt;br /&gt;
&lt;br /&gt;
{rejon}&lt;br /&gt;
&lt;br /&gt;
=Command line=&lt;br /&gt;
&lt;br /&gt;
Several new command line options are added that make Inkscape even more scriptable and automatable than before.&lt;br /&gt;
&lt;br /&gt;
* --verb-list will list all the Verb IDs and their names in Inkscape. This makes writing your own menus and hotkeys much easier as you can easily find out what the choices are.&lt;br /&gt;
&lt;br /&gt;
* --verb followed by a verb ID allows you to specify a verb to be called on every document opened by Inkscape initially from the command line.&lt;br /&gt;
&lt;br /&gt;
* --select followed by a node ID will allow you to add a node to the list of selected objects.&lt;br /&gt;
&lt;br /&gt;
* --query-all produces a comma delimited listing of all objects in the document, with their x, y, height, and width values.&lt;br /&gt;
&lt;br /&gt;
These options can be used, for example, for performance testing.  You could do something like this:&lt;br /&gt;
&lt;br /&gt;
 $ time inkscape --verb=FileClose my_complex_file.svg&lt;br /&gt;
&lt;br /&gt;
to measure the time it takes to load and display the file.&lt;br /&gt;
&lt;br /&gt;
Of course, with the ability to select objects, it can be much more useful than&lt;br /&gt;
that.  You can call extension effects, or any other verb, then FileSave and&lt;br /&gt;
FileClose to automate all kinds of operations on your drawings.&lt;br /&gt;
&lt;br /&gt;
=User interface=&lt;br /&gt;
&lt;br /&gt;
== [dockable dialogs - gustav] ==&lt;br /&gt;
&lt;br /&gt;
Inkscape's dialog handling has been reworked in this release to allow dialogs to behave like '''dockable panels'''. The dock area that holds the user's dialogs is located right of the canvas.&lt;br /&gt;
&lt;br /&gt;
Dialogs placed in the dock can easily be rearranged, resized, stacked in groups or iconified. Furthermore, a dialog can be dragged of the dock to become a floating dock in itself&amp;amp;mdash;this allows other dialogs to be dragged and dropped on it to form a floating group of dialogs.&lt;br /&gt;
&lt;br /&gt;
The old dialog behavior (used in releases before 0.46) has been preserved as an option, and if it is preferred, one can select it under ''Windows'' &amp;gt; ''Dialog behavior'' in the Inkscape preferences dialog.&lt;br /&gt;
&lt;br /&gt;
Known issues:&lt;br /&gt;
&lt;br /&gt;
* Some of Inkscape's dialogs are yet to be adapted to allow docking, these include the &amp;quot;Text and Font&amp;quot; dialog, the &amp;quot;Tiled clones&amp;quot; dialog, the &amp;quot;XML editor&amp;quot; and the &amp;quot;Object properties&amp;quot; dialog.&lt;br /&gt;
&lt;br /&gt;
* [Remembered positions of dockable floating dialogs is inexact.] &lt;br /&gt;
&lt;br /&gt;
[options]&lt;br /&gt;
&lt;br /&gt;
== [toolbars - [[JonCruz]]] ==&lt;br /&gt;
&lt;br /&gt;
'''Main toolbar''' on the left can now optionally use '''smaller buttons'''. With the several new tools added in this version, this may help users with small screens where the toolbar otherwise may not fit vertically. The toggle is on the Misc tab of the Inkscape Preferences dialog.&lt;br /&gt;
&lt;br /&gt;
[calligraphy: menus, tooltips; star; ...]&lt;br /&gt;
&lt;br /&gt;
Switched to stock GTK+ toolbars.&lt;br /&gt;
&lt;br /&gt;
Extra magic secret sauce added.&lt;br /&gt;
&lt;br /&gt;
== [filedialogs - [[JonCruz]]] ==&lt;br /&gt;
&lt;br /&gt;
== Swatches panel, color drag-and-drop ==&lt;br /&gt;
&lt;br /&gt;
* Right-clicking a color swatch now opens a context menu which allows you to apply the color to the fill or stroke of selection.&lt;br /&gt;
&lt;br /&gt;
* Dragging colors from the color palette has been fixed and improved:&lt;br /&gt;
&lt;br /&gt;
:* Now the dropped color is applied to '''the object on which you drop it''', regardless of whether that object is selected or not. This means you can change the color of only one object from selection without having to select it separately. (If you want to assign color to the entire selection, just click on the color swatch on the palette, not drag it.)&lt;br /&gt;
&lt;br /&gt;
:* If an object has stroke and you '''drop the color over stroke''', the color is applied to stroke and not fill. (Another way to always apply color to stroke is to '''Shift+drag''' it.)&lt;br /&gt;
&lt;br /&gt;
:* When gradient handles are active (e.g. in Gradient or Node tools), you can '''drop a color onto the gradient line''' to create a new gradient mid stop with this color, or '''drop a color onto an existing stop''' to recolor that stop.&lt;br /&gt;
&lt;br /&gt;
==Color gestures==&lt;br /&gt;
&lt;br /&gt;
A new method for quick and precise adjustment of colors is added in this version: color gestures. It works on the selected objects by grabbing the '''fill or stroke color swatch''' in the '''selected style indicator''' (on the left of the statusbar) and dragging it in various directions as described below. Note that this only works when the swatch displays a '''flat color'''; it does not work for a swatch showing &amp;quot;None&amp;quot;, &amp;quot;N/A&amp;quot;, or displaying a gradient (although you can select one or more gradient stops in Gradient tool and color-adjust them by color gestures just as you would do for objects). Color gestures can work on '''fill''' or '''stroke''', depending on which swatch in the selected color indicator you drag.&lt;br /&gt;
&lt;br /&gt;
Color gestures work in '''HSL''' color space. Dragging without any keyboard modifiers adjusts the '''hue''' channel, dragging with '''Shift''' adjusts '''saturation''', and dragging with '''Ctrl''' adjusts '''lightness'''.&lt;br /&gt;
&lt;br /&gt;
The adjustment is done by '''&amp;quot;rotating&amp;quot;''' the color swatch away from the original direction which is assumed to be '''NE at 45 degrees''' (i.e. from&lt;br /&gt;
the swatch diagonally into the document window). Once you click and drag the color swatch, imagine a diagonal line going from the point where you clicked in the NE direction, across the entire Inkscape window. By dragging '''below or to the right''' of that line, you decrease the corresponding color channel, to the minimum at the lower edge of the window; by dragging it above or to the left, you increase it, to the maximum at the left edge of the window. If you hover your mouse exactly over the 45 degrees line, the change will be zero.&lt;br /&gt;
&lt;br /&gt;
Note that you can easily vary the '''precision''' of your adjustment. If you drag close enough to the swatch, each small movement results in a big change of the color. If you need a finer adjustment, just drag farther away from the swatch, towards the center of the Inkscape window or even to its upper right corner, where minute movements will produce very small changes in the color. In fact, this method gives you more color precision than even the color wheel in the Fill and Stroke dialog, unless you expand that dialog to fill the entire screen which is rarely practical.&lt;br /&gt;
&lt;br /&gt;
The mouse '''cursor''' changes when you're doing color gestures, reflecting the channel currently adjusted and indicating the directions for increasing and decreasing the value. Also, watch the '''statusbar''' which will indicate, as you drag, the channel you are adjusting, the original value of that channel, the new value, and the difference. &lt;br /&gt;
&lt;br /&gt;
You can '''switch channels while you drag'''. That is, you don't need to &lt;br /&gt;
drag it again and again from the swatch if you want to adjust all three channels - you can do it all in one drag, by pressing and releasing Ctrl and Shift as necessary. Note that when you change the keyboard modifiers during drag, the position of the zero-change line is temporarily changed to go through the current mouse position; this is done so that there are no sudden changes in color if you are switching modifiers away from the original 45-degree line.&lt;br /&gt;
&lt;br /&gt;
The '''Alt''' modifier is special. Pressing Alt means &amp;quot;do nothing&amp;quot;; this allows you to move the mouse, without releasing, to a more convenient place from where to continue tweaking the color after letting go of Alt. As with the other modifiers, releasing Alt temporarily redefines the zero-change axis to go through the point where Alt was released. For example, imagine  you made your color darker by Ctrl+dragging towards the bottom edge of the window and you now need to make it less saturated. You cannot however Shift+drag it any lower because there's just not enough room for that. In that situation, without releasing the mouse, Alt+drag it upwards to a convenient spot and then Shift+drag downwards as needed. Also, you can start dragging from the swatch with Alt pressed to avoid changing the color while you take a more convenient position for adjustments.&lt;br /&gt;
&lt;br /&gt;
For example, you can select a green rectangle and first turn it into greenish-blue by dragging away from the Fill swatch and slightly above the 45 degrees line; then, without releasing the mouse, press Ctrl and drag a bit to the right to darken the color; then press Shift, release Ctrl, and adjust saturation. You can press or release Ctrl and Shift as many times as necessary during a single drag; when you are finally satisfied with your color, release the mouse to commit the change.&lt;br /&gt;
&lt;br /&gt;
Apart from precise adjustments, you can use color gestures to very quickly perform some common color transformations:&lt;br /&gt;
&lt;br /&gt;
* Ctrl+drag the swatch to the right and down to paint all selected objects black.&lt;br /&gt;
&lt;br /&gt;
* Ctrl+drag the swatch upwards and to the left to paint all selected objects white.&lt;br /&gt;
&lt;br /&gt;
* Shift+drag the swatch to the right and down to desaturate the color of selected objects.&lt;br /&gt;
&lt;br /&gt;
* Shift+drag the swatch upwards and to the left to maximize saturation of the color of selected objects. &lt;br /&gt;
&lt;br /&gt;
Note that when several objects or gradient stops with different colors are selected, the selected style indicator shows their '''averaged''' color. If you adjust that color by gesturing, the changed color will be assigned back to all selected objects/stops, in effect eliminating any difference between them. If you want to adjust many different-colored objects preserving their relative differences, use the color modes of the Tweak tool or color adjustment extension effects.&lt;br /&gt;
&lt;br /&gt;
This new technique requires some getting used to, but once you get the idea it is quite convenient, fast, and precise.&lt;br /&gt;
&lt;br /&gt;
== Print dialog integration == &lt;br /&gt;
&lt;br /&gt;
* '''Print Dialog''': The GTK Unix Print Dialog has been hooked up!  From the dialog, you can select any of the Postscript-capable printers known to your system and configure them as with any other GTK application.&lt;br /&gt;
&lt;br /&gt;
== Saving window geometry globally ==&lt;br /&gt;
&lt;br /&gt;
Previously, window geometry (size and position of document windows) could only be saved into the document (so that each document stored its own window geometry). Now, a new option is added to save the geometry of the last used window to the preferences and apply this geometry to all new windows.  Thus, with the &amp;quot;Save geometry to preferences&amp;quot; option enabled, new windows will open with the shape of the most recent previous window.  This mode also remembers and restores the maximized/fullscreen state (unlike geometry saved to documents).&lt;br /&gt;
&lt;br /&gt;
== Preserving zoom/view of reverted documents ==&lt;br /&gt;
&lt;br /&gt;
When reverting files to their previously saved state, the current zoom factor/panning is now retained (as opposed to reverted to the saved state, too, as it was the case before). This less interrupts the workflow when one is working on some detail in the drawing.&lt;br /&gt;
&lt;br /&gt;
== New ways to scroll and zoom ==&lt;br /&gt;
&lt;br /&gt;
* You can now enable Space+mouse drag to pan canvas, as it does in Adobe Illustrator. This mode is enabled by the '''Left mouse button pans when Space is pressed''' checkbox in the Scrolling tab of the Inksape Preferences dialog. By default it is off and pressing the spacebar key switches you to Selector and back, as it always did in Inkscape.&lt;br /&gt;
&lt;br /&gt;
* By default, rotating the mouse wheel scrolls the canvas vertically and Ctrl+wheel zooms in and out. Now, if you turn on the '''Mouse wheel zooms by default''' checkbox in the Scrolling tab of the Inksape Preferences dialog, this behavior is reversed: mouse wheel zooms without Ctrl and scrolls with Ctrl. This new mode should be familiar for users of AutoCAD and CorelDraw.&lt;br /&gt;
&lt;br /&gt;
* In the Zoom tool, right mouse button always zooms out instead of calling the context menu (which is rather useless in this tool anyway).&lt;br /&gt;
&lt;br /&gt;
== Using other keys in place of Alt ==&lt;br /&gt;
&lt;br /&gt;
* Many Linux users have found the use of '''Alt-drag''' and '''Alt+click''' in Inkscape problematical because this shortcut is often captured by window managers. In 0.46, instead of disabling of the window manager shortcut as suggested in [http://wiki.inkscape.org/wiki/index.php/FAQ#How_to_make_Alt.2Bclick_and_Alt.2Bdrag_work_on_Linux.3F the FAQ], you can change a setting in your preferences.xml file called &amp;lt;code&amp;gt;mapalt&amp;lt;/code&amp;gt; in the &amp;lt;code&amp;gt;options&amp;lt;/code&amp;gt; group. This numerical value ranges from 1 to 5; 1 indicates no change, any other value refers to some special key on a keyboard, such as '''Alt Gr''', the '''Windows''' key, etc. The specific mapping of these values to the keys on your keyboard can be viewed and/or editied by '''xkeycaps''', available from [http://www.jwz.org/xkeycaps www.jwz.org]. The value associated with a particular key is shown in that program at the top of the screen beside the word &amp;quot;Modifiers&amp;quot; when the mouse is held over a key on the main display.&lt;br /&gt;
&lt;br /&gt;
== GTK theme on OS X ==&lt;br /&gt;
&lt;br /&gt;
A GTK theme is now included in Inkscape.app bundle on OS X. If the user does not have any personal customization (e.g. in a .gtkrc-2.0 file) this theme is used. It reflects the OS X settings for &amp;quot;Appearance&amp;quot; and &amp;quot;Highlight Color&amp;quot; set in System Preferences &amp;gt; Appearance.&lt;br /&gt;
&lt;br /&gt;
=Other changes and improvements=&lt;br /&gt;
&lt;br /&gt;
* '''Gnome VFS Improvements''': Gnome VFS Non-Local files are now usable through all of our file choosers in Open, Save and Export. This compile-time option allowed people to open any Gnome-VFS-based URI from the command-line in the past, but not non-local resources (WebDAV, SFTP, etc) and this now allows for all the lovely possibilities Gnome-VFS provides.&lt;br /&gt;
&lt;br /&gt;
* In previous versions, Inkscape didn't allow you to '''group a single object.''' Yet in some cases, this operation is useful (for example, to blur the clipped edged of an object, or apply more than one clippath/mask to an object). Now this limitation is removed; just select any single object and group it to get a single-object group. &lt;br /&gt;
&lt;br /&gt;
* The somewhat cryptic &amp;quot;F:&amp;quot; and &amp;quot;S:&amp;quot; labels in the selected style indicator (at the left end of the statusbar) and in tool's style swatches are now spelled out as '''Fill:''' and '''Stroke:'''. We believe this makes the interface, even if less space-efficient, a bit more friendly for newbies.&lt;br /&gt;
&lt;br /&gt;
* The '''style swatches''' at the right end of object-creating tools' control bars now open the Preferences page of the corresponding tool when clicked. Also, now these swatches display a tooltip explaining its purpose (e.g. &amp;quot;Style of new rectangles&amp;quot;, &amp;quot;Style of new calligraphic strokes&amp;quot;, etc.)&lt;br /&gt;
&lt;br /&gt;
* On the '''Scale''' tab of the '''Transform dialog''', the numbers now show the current size of selection, not size increment as before. Correspondingly, with the % unit chosen, you see 100% displayed, and to scale it up twice, you enter 200%, not 100% as before. This is a more intuitive behavior and it's more consistent with how the W/H controls work in the Selector tool. &lt;br /&gt;
&lt;br /&gt;
* After dragging a curve segment in Node tool, Inkscape no longer selects the two adjacent nodes if they were not selected before. &lt;br /&gt;
&lt;br /&gt;
* The '''Tile Clones''' dialog now uses the object's defined '''rotation axis''' (which can be freely moved by Selector tool and which is saved separately for each object) for all rotations (including both symmetry rotations and the Rotation tab rotations), scales, and flips. This renders unnecessary the previous workarounds where you had to group an object with another transparent object to affect how it's rotated by the clone tiler. &lt;br /&gt;
&lt;br /&gt;
* The '''Shift''' tab of the '''Tile Clones''' dialog has two new options: '''Cumulate''': when checked, each tile is shifted by the normal amount plus the cumulative shifts of all previous tiles. This is useful when placing tiles that are being scaled by a uniform amount. '''Exlude tile''': when checked, the tile width or height is not automatically included in calculating the tile's shift. This is useful when using the dialog to place clones on a circle or spiral (rather than using a shift of -100%). It is also useful when positioning tiles using the '''Exponent''' parameter.&lt;br /&gt;
&lt;br /&gt;
* The '''Scale''' tab of the '''Tile Clones''' dialog has a new parameter: '''Base''' that allows placing tiles along a logarithmic spiral (as often found in nature). If the value is '''0''', the parameter is not used. Use a value less than one for a converging spiral and a value of greater than one for a diverging spiral. The actual scale is calculated as '''base''' raised to the nominal '''scale''' power.&lt;br /&gt;
&lt;br /&gt;
* In '''Pencil''' and '''Calligraphic''' tools, pressing '''Esc''' or '''Ctrl+Z''' while drawing cancels the currently drawn path or stroke. When not drawing, these keys work as before (Esc deselects, Ctrl+Z undoes last action). (This is the same behavior as in the Pen tool where it was introduced in a previous version.)&lt;br /&gt;
&lt;br /&gt;
* A set of new verbs has been added to allow the user to easily '''unlock all locked objects''' or '''unhide all hidden objects'''. There are two variants one that operates on the current layer and its children and one that operates globally. While searching for hidden or locked object descendants of locked layers are ignored.&lt;br /&gt;
&lt;br /&gt;
* Several more '''rotation snapping increments''' are available in the Steps tab of the Inkscape Preferences dialog: 36, 22.5, 18, 12, and 0.5 degrees. &lt;br /&gt;
&lt;br /&gt;
* The list of folder shortcuts in the '''Open''' dialog includes the folder with Inkscape's SVG '''examples''' for easy access. Similarly, the '''Save''' dialog has a shortcut for the user's own '''templates''' dialog making it easy to save the current document as a template (if saved as &amp;lt;code&amp;gt;default.svg&amp;lt;/code&amp;gt;, it will be loaded every time you run Inkscape or create new document with Ctrl+N; with any other name, it will be added to the File &amp;gt; New submenu).&lt;br /&gt;
&lt;br /&gt;
* For time-intensive operations such as Paint Bucket and Simplify, the system's busy wait cursor is displayed to indicate to the user that Inkscape is actively working, and not frozen.&lt;br /&gt;
&lt;br /&gt;
* Several improvements in '''inkview''': busy cursor is shown while loading file, the button window stays on top and responds to keyboard shortcuts; several memleaks stopped and bugs fixed. The &amp;quot;slideshow mode&amp;quot; of the main inkscape application (-s or --slideshow command line option) is removed; use inkview instead.&lt;br /&gt;
&lt;br /&gt;
* In Document Metadata dialog, updated '''Creative Commons Licenses''' to version '''3.0'''.&lt;br /&gt;
&lt;br /&gt;
* Preferences have been added for setting the default metadata and licenses, so this information can be automatically filled in with new documents.&lt;br /&gt;
&lt;br /&gt;
* The built-in '''Potrace''' tracing engine is upgraded to version '''1.8''' with some minor bugs fixed.&lt;br /&gt;
&lt;br /&gt;
* File dialog windows (open/save) now have an '''Enable preview''' checkbox which allows you to disable the preview pane.&lt;br /&gt;
&lt;br /&gt;
* In the Calligraphic pen controls, the toggle button to enable tablet pressure sensitivity is moved to the Width control, and the button for tilt sensitivity is moved to Angle, to better reflect what parameters these toggles affect.&lt;br /&gt;
&lt;br /&gt;
* In Node and Gradient tools, using '''Tab/Shift+Tab''' to select next/previous node or gradient handle scrolls the canvas if necessary to show the selection. &lt;br /&gt;
&lt;br /&gt;
* The option '''Import bitmap as &amp;lt;image&amp;gt;''' is removed; it was added several versions ago to allow optionally importing images as rectangles with image pattern, to make clipping the images easier. Now that you can easily use clipping paths, as well as convert any image to rectangle with pattern with Alt+I, this option is not really necessary and removed to reduce confusion. Bitmaps are always imported into SVG as an &amp;lt;image&amp;gt; element.&lt;br /&gt;
&lt;br /&gt;
* Support has been added for stock patterns, in the same way that stock markers were already supported. Adding patterns to share/patterns/patterns.svg, and giving them a inkscape-stockid attribute as found on the examples already there will make them available in all Inkscape sessions from the patterns tab of the fill &amp;amp; stroke dialog.&lt;br /&gt;
&lt;br /&gt;
* New '''fontforge_glyph.svg''' template is added for font designers who draw glyphs in Inkscape and import them into FontFoge. It is 1000x1000px large and has a horizontal guide at 200px to mark border for descenders.&lt;br /&gt;
&lt;br /&gt;
* Save dialogs have been modified to clarify that they '''Save as SVG''', so people using Inkscape to edit PDF, EPS, and other file formats will be less confused at the default behavior when saving files.&lt;br /&gt;
&lt;br /&gt;
* Add some new '''UML markers''', including filled and hollow diamonds and triangles.&lt;br /&gt;
&lt;br /&gt;
* Inkscape application bundle on '''Mac OS X''' now has the possibility to contain '''pre-compiled python modules''' (e.g. lxml, numpy, etc.) and to use them without requiring any work from the user. Since Python itself is shipped with Mac OS X, the user only has to drag and drop Inkscape on its hard-drive and all the extensions will be '''functional immediately'''.&lt;br /&gt;
&lt;br /&gt;
=Notable bugfixes=&lt;br /&gt;
&lt;br /&gt;
These are bugfixes compared to 0.45.1; for a list of fixes in 0.45.1 compared to 0.45, see [[ReleaseNotes045|0.45.1 release notes]].&lt;br /&gt;
&lt;br /&gt;
* The '''sodipodi:docbase''' attribute is no longer added to the root &amp;lt;svg&amp;gt; element. This attribute used to keep the latest directory that the document was saved to, and thus represented a mild privacy violation (i.e., by sharing your Inkscape SVG files you allowed others to have a peek into your directory structure). Note, however, that Inkscape does not remove this attribute from old documents it opens; if you want you can remove it yourself. Inkscape just no longer creates this attribute in new documents.&lt;br /&gt;
&lt;br /&gt;
* A fix in the blur rendering code made '''exporting blurred objects to bitmap''' much faster and fixed the disappearing of blurred objects in exported bitmaps which happened for large objects in 0.45.  The same fix got rid of the rendering artefacts that sometimes appeared on blurred objects during scrolling. &lt;br /&gt;
&lt;br /&gt;
* Inkscape now properly quotes &amp;lt;code&amp;gt;font-family&amp;lt;/code&amp;gt; values and therefore can use '''fonts''' with various '''nonalphanumeric characters''' in their names, which previously failed. &lt;br /&gt;
&lt;br /&gt;
* If you have saved documents with a previous version of Inkscape which used '''right-to-left text''' (e.g. Arabic, Hebrew) then the paragraph alignment of non-flowed text has been reversed in this release. This is due to a bug in previous versions - the new behaviour is compliant with the SVG specification and compatible with other editors and viewers. To correct your images, simply reverse the paragraph alignment by selecting the text and clicking the appropriate button on the toolbar.&lt;br /&gt;
&lt;br /&gt;
* A large family of bugs was exterminated where an object's style could only refer other objects (such as gradients, patterns, and filters) that come after it in the document. Now any objects can be referenced from a style regardless of their place in the document. This fixed the '''disappearance of gradients/patterns/filters''' after you undo an effect, as well as lots of assorted crashes and misrenderings (mostly on non-Inkscape SVG files).&lt;br /&gt;
&lt;br /&gt;
* On Windows, '''file opening/saving dialogs''' can no longer sink under the main editor window (they now have the inkscape window set correctly as their parent window).&lt;br /&gt;
&lt;br /&gt;
* '''Stock markers''' now appear in the &amp;quot;recently used markers&amp;quot; section of the marker selector dropdowns in the Fill &amp;amp; Stroke dialog.  Before, any markers with stock id's (including markers modified by the user) were hidden, making it difficult to work with modified stock markers.&lt;br /&gt;
&lt;br /&gt;
* A regression in 0.45 caused crashes when '''undo or redo''' was attempted before the previous action could complete (e.g. pressing ctrl+z while you are still drawing a rectangle). This is now fixed.&lt;br /&gt;
&lt;br /&gt;
* Previously, if there was a single '''invalid property''' in a &amp;lt;code&amp;gt;style&amp;lt;/code&amp;gt; attribute, the entire attribute was discarded, i.e. the object lost all styling. Now Inkscape's behavior is more compliant to the CSS specification: it ignores only the invalid property but reads in all the rest.&lt;br /&gt;
&lt;br /&gt;
* Several bugs are fixed in '''searching for linked images'''. Now moving SVG documents with their associated images to a different place or a different machine should work more reliably. &lt;br /&gt;
&lt;br /&gt;
* Master opacity did not apply to stroke '''markers''' as it should; fixed.&lt;br /&gt;
&lt;br /&gt;
* '''Creative Commons Public Domain Declaration URI''' points to the right location now.&lt;br /&gt;
&lt;br /&gt;
* Text objects didn't display the '''pattern editing handles'''; fixed.&lt;br /&gt;
&lt;br /&gt;
* On Windows, the Inkscape uninstaller deleted all files under the install directory. This could lead to removing user-created files, or even other program files not related to inkscape if the install directory was C:\Program Files. The new uninstaller '''tracks all installed files and asks for confirmation before deleting any other files'''. However, installation and uninstallation process is now slower.&lt;br /&gt;
&lt;br /&gt;
* Clones were wrongly unlinked when their original was moved to another layer; fixed.&lt;br /&gt;
&lt;br /&gt;
* Previous versions had a problem on '''Windows Vista''' where selected menu item was invisible. Now our Windows builds use a newer version of GTK library which fixes this problem.&lt;br /&gt;
&lt;br /&gt;
* Duplicating empty text objects that have just been created no longer crashes. Also, the XML editor crash related to empty text objects is fixed. A downside is that the SVG will become cluttered with empty text objects as they are no longer automatically removed. A better fix for the problem is planned.&lt;br /&gt;
&lt;br /&gt;
* In Tile Clones dialog, the PMG symmetry group was created incorrectly, which is now fixed.&lt;br /&gt;
&lt;br /&gt;
= Previous releases =&lt;br /&gt;
&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>Jiho</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Release_notes/0.46&amp;diff=18409</id>
		<title>Release notes/0.46</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Release_notes/0.46&amp;diff=18409"/>
		<updated>2008-01-11T15:21:06Z</updated>

		<summary type="html">&lt;p&gt;Jiho: /* Other changes and improvements */ Add note about bundled python modules on OS X&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Inkscape 0.46=&lt;br /&gt;
'''(not released yet)'''&lt;br /&gt;
&lt;br /&gt;
Highlights in this release:&lt;br /&gt;
&lt;br /&gt;
* Paintbucket tool&lt;br /&gt;
&lt;br /&gt;
* Tweak tool&lt;br /&gt;
&lt;br /&gt;
* 3D Box tool&lt;br /&gt;
&lt;br /&gt;
* Live path effects&lt;br /&gt;
&lt;br /&gt;
* Color management&lt;br /&gt;
&lt;br /&gt;
* New SVG filters and UI&lt;br /&gt;
&lt;br /&gt;
* Native PDF and AI import&lt;br /&gt;
&lt;br /&gt;
* XAML import/export&lt;br /&gt;
&lt;br /&gt;
* Open Clip Art Library integration (import/export)&lt;br /&gt;
&lt;br /&gt;
* Stock patterns&lt;br /&gt;
&lt;br /&gt;
* Bitmap editing extension effects&lt;br /&gt;
&lt;br /&gt;
* Full on-canvas gradient editing&lt;br /&gt;
&lt;br /&gt;
* Engraver's Toolbox in the Calligraphic tool&lt;br /&gt;
&lt;br /&gt;
* Touch selection&lt;br /&gt;
&lt;br /&gt;
* Dockable dialogs&lt;br /&gt;
&lt;br /&gt;
* Command-line access to verbs&lt;br /&gt;
&lt;br /&gt;
* Snapping made usable&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;3D&amp;quot; / axonometric grid&lt;br /&gt;
&lt;br /&gt;
* Angled guidelines&lt;br /&gt;
&lt;br /&gt;
* Significant speed and interactivity improvements&lt;br /&gt;
&lt;br /&gt;
* Hundreds of smaller features and bugfixes&lt;br /&gt;
&lt;br /&gt;
=Speed and interactivity=&lt;br /&gt;
&lt;br /&gt;
* In this version, Inkscape starts using the [http://www.cairographics.org cairo] library for rendering. It is now used for '''outline mode''' display which, thanks to using cairo and other optimizations, redraws '''faster by about 25%'''. More impressive are memory savings: thanks to cairo, in outline mode Inkscape now takes only about '''50% of the memory''' used by 0.45 for the same file. &lt;br /&gt;
&lt;br /&gt;
* '''Smart redraw directionality:''' With complex images and/or on slow computers, you may have noticed that Inkscape redraws the screen image in horizontal strips, and these strips are painted in order from top to bottom. Now the redraw always starts '''at your mouse cursor location''' and proceed upwards and downwards from it, so that the area near the cursor is always redrawn first. This significantly improves program's responsiveness in some situations. For example, when you are node-editing part of a complex path, the entire path needs to be redrawn on each change, but now this redraw starts from the point you're working on. Moreover, the redraw is interruptible, so each mouse movement starts new redraw from the mouse cursor area. As a result, during such operations those parts that you're working on redraw often and feel snappy and responsive, while areas further away may lag behind more.&lt;br /&gt;
&lt;br /&gt;
* '''Faster blur''' for exporting and high quality on-screen rendering: Inkscape now uses an IIR (Infinite Impulse Response) filter for blurring with large radius. This greatly improves the speed of blur redraw at high zooms or in high-resolution export (or simply with very large blur radius). On the other hand, the results are an approximation to a true Gaussian blur, so a drawing may look slightly different from the mathematically precise blur (usually the differences are far from visible, though). This code is mainly based on: ''Recursive Gaussian Derivative Filters'' by L.J. van Vliet, I.T. Young and P.W. Verbeek (see the source code for more detailed references). &lt;br /&gt;
&lt;br /&gt;
:'''Exporting drawings with blur''' was particularly slow in 0.45; some files could take hours to export. Now this is fixed, in part by the faster algorithm mentioned above and in part by a bugfix in the export code. Now even the quite complex files with large blurs export at high resolution in at most a few minutes.  &lt;br /&gt;
&lt;br /&gt;
* Minor improvements have been made to gradient rendering performance.&lt;br /&gt;
&lt;br /&gt;
* '''Dragging handles and nodes''' as well as '''dragging and transforming objects''' by mouse became more responsive, so that working in complex drawings and especially editing complex paths is noticeably easier. In particular, this fixes the annoying latency issue where a node or a handle could follow mouse cursor even after you release mouse button after a drag. &lt;br /&gt;
&lt;br /&gt;
* '''Moving objects, nodes, and gradient handles by cursor keys''' as well as '''scaling and rotating objects from keyboard''' and '''zooming by keys''' are much more responsive when working with complex slow-rendering objects. Now, if you press and hold a key, your selection/zoom level will quickly jump to the final position instead of going through all the intermediate steps as before. &lt;br /&gt;
&lt;br /&gt;
* '''Moving the cursor around''' in a file with large and complex paths has become much snappier and more responsive. Previously, in extreme cases Inkscape could freeze for seconds while catching up with the mouse cursor; such delays are now eliminated.&lt;br /&gt;
&lt;br /&gt;
* Several improvements make '''canvas panning and scrolling''' smoother and more interactive in complex slow-rendering documents:&lt;br /&gt;
&lt;br /&gt;
:* When panning by the middle mouse button, Inkscape no longer attempts to redraw the canvas while your mouse button is pressed. Any redrawing only happens after you release the mouse. As a result, the newly revealed parts of the canvas are somewhat more &amp;quot;dirty&amp;quot; but the '''panning is smoother than before''', with few if any &amp;quot;hiccups&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
:* '''Redrawing the newly exposed parts of the canvas''' after scrolling, especially diagonal scrolling, is now faster because only the exposed areas are redrawn; before, this often resulted in the entire screen being redrawn which was much slower.&lt;br /&gt;
&lt;br /&gt;
:* Previously, if you started panning with middle button while Inkscape is still redrawing screen in a complex drawing, panning sometimes completely failed or moved canvas just a little step. Now it is '''guaranteed to pan the canvas all the way''' from mouse-press point to mouse-release point in any case, even if sometimes it fails to show the intermediate positions.&lt;br /&gt;
&lt;br /&gt;
:* When pressing and holding Ctrl+arrows to scroll canvas, Inkscape normally accelerates scrolling so that each next scrolling step is bigger than the previous. Previously, in complex drawings this acceleration sometimes got interrupted, which made scrolling annoyingly bumpy and slow. Now this is fixed so that '''scrolling is smoothly accelerated''' even in a slow-rendering document. &lt;br /&gt;
&lt;br /&gt;
:* The default '''starting speed and acceleration''' of Ctrl+arrows scrolling are slightly increased. (They are both settable in Preferences.)&lt;br /&gt;
&lt;br /&gt;
* Better responsiveness and more visual feedback in user interface: &lt;br /&gt;
&lt;br /&gt;
:*When you zoom, the '''zoom control''' on the right end of the statusbar now updates immediately, not after screen redraw as before. &lt;br /&gt;
&lt;br /&gt;
:*Many potentially slow commands (Save, Simplify, Combine, Break Apart and others) now display a '''busy cursor''' and flash a message in the statusbar (e.g. &amp;quot;Saving document...&amp;quot;) while they work. &lt;br /&gt;
&lt;br /&gt;
:*The '''statusbar messages''' displayed while you're drawing a shape or a path in Pen tool do not lag behind the mouse movements.&lt;br /&gt;
&lt;br /&gt;
* '''Combine''' and '''Convert to paths''' commands are now orders of magnitude faster when applied to a selection with hundreds or thousands of objects.&lt;br /&gt;
&lt;br /&gt;
* The time it takes to '''snap to objects''' using the selector tool has been reduced dramatically, which is most noticeable for snapping to complex paths.&lt;br /&gt;
&lt;br /&gt;
=Tools=&lt;br /&gt;
&lt;br /&gt;
==Paint Bucket tool==&lt;br /&gt;
&lt;br /&gt;
The new Paint Bucket tool works exactly as you would expect: click in any area bounded on all sides and it will '''fill it with color'''. Being a vector tool, however, Inkscape's Paint Bucket just creates a new ''path'' that &amp;quot;fills in&amp;quot; the area in which you clicked. &lt;br /&gt;
&lt;br /&gt;
===How it works===&lt;br /&gt;
&lt;br /&gt;
It is important to note that the tool is '''perceptual''', not geometric. That is, when looking for the boundaries around the point you clicked, it takes for such boundaries any ''visible'' color changes. This means that filling will stop at gradients, blurs, and even the color boundaries in imported bitmaps, but will ignore any paths or other objects that are fully (or almost) transparent or for any other reason do not stand out from the background. In short, it will work exactly as if you were filling a rasterized version of your image in a bitmap editor like Photoshop or GIMP - but will give you a vector object to work with.&lt;br /&gt;
&lt;br /&gt;
For example, now you can scan a pencil sketch, import the bitmap into Inkscape, and quickly fill all its cells with colors even without tracing the bitmap first. This is a very convenient and interactive way of digitizing your paper drawings, making the '''traditional bitmap tracing unnecessary''' in many cases.&lt;br /&gt;
&lt;br /&gt;
Internally, the tool works by performing a bitmap-based flood fill on a rendered version of the visible canvas, then tracing the resulting fill using [[potrace]] and placing the traced path into the document.&lt;br /&gt;
&lt;br /&gt;
It places the rendered path onto the current layer, so you can have a layer on top (for example, &amp;quot;Inks&amp;quot;) and select the layer below (&amp;quot;Colors&amp;quot;) and do the fills so that they always appear below the Inks.&lt;br /&gt;
&lt;br /&gt;
The '''resolution''' of the bitmap image used to perform the trace is dependent upon your '''current zoom level''' -- the more zoomed in to an area that you are, the higher the resolution of the bitmap-based flood fill. So, if you are got a fill that is too imprecise, has rough corners, or don't go into small nooks and appendices where it is supposed to go, just undo, zoom in closer and repeat filling from the same point. Conversely, if the fill leaks out through a small gap, zoom out to make the gap less visible and fill again (or use the auto gap closing parameter, see below).&lt;br /&gt;
&lt;br /&gt;
===Style===&lt;br /&gt;
&lt;br /&gt;
Like all object-creating tools, the Paint Bucket may use the '''last-set style''' for the objects it creates (this is the default), or it can use its own '''fixed style'''. You can switch between these modes on this tool's page in Inkscape Preferences (Ctrl+Shift+P). As in all other tools, the '''style swatch''' on the far right of the Controls bar shows the style that will be used for the next fill object you create.&lt;br /&gt;
&lt;br /&gt;
===Controls===&lt;br /&gt;
&lt;br /&gt;
In the tool's '''Controls bar''':&lt;br /&gt;
&lt;br /&gt;
* Paint Bucket's perceptual fill can use either all visible colors or specific color channels. Using the '''Fill by''' drop-down list, you can restrict the fill algorithm to one the following channels:&lt;br /&gt;
** Red&lt;br /&gt;
** Green&lt;br /&gt;
** Blue&lt;br /&gt;
** Hue&lt;br /&gt;
** Saturation&lt;br /&gt;
** Lightness&lt;br /&gt;
** Alpha&lt;br /&gt;
&lt;br /&gt;
* The '''Threshold''' (in per cent units) controls how large must be color difference at a point (compared to the initial click point) to stop the fill. Zero tolerance means only the area of strictly the same color will be filled; the larger the tolerance, the easier it will be for the fill to leak into adjacent different-color areas. The default value is 10%.&lt;br /&gt;
&lt;br /&gt;
* Using the '''Grow/shrink by''' parameter, you can control the amount of inset/outset to be applied to the created fill path.  Setting a positive outset causes fill paths to be larger than the filled bitmap area (good for eliminating anti-aliasing errors), while setting a negative outset causes the path to be smaller.  This works much the same as the Outset and Inset path commands, except it's done automatically after every fill.&lt;br /&gt;
&lt;br /&gt;
* With the '''Close gaps''' parameter, you can make the Paint Bucket tool  ignore any gaps in the area boundaries that would normally cause the fill to spill out of the desired area.  There are four settings to auto gap:&lt;br /&gt;
** None&lt;br /&gt;
** Small (close gaps up to 2 pixels in size)&lt;br /&gt;
** Medium (4 pixels)&lt;br /&gt;
** Large (6 pixels)&lt;br /&gt;
:Note that setting this parameter to other than None may slow down noticeably the filling of large areas.&lt;br /&gt;
&lt;br /&gt;
===Shortcuts===&lt;br /&gt;
&lt;br /&gt;
The tool's '''shortcuts''' are:&lt;br /&gt;
&lt;br /&gt;
* '''Single click''' performs filling from the click point.&lt;br /&gt;
&lt;br /&gt;
* '''Shift+click''' performs filling from the click point and then unions the resulting path with the selected path. This way, if your first attempt did not fill in all of the desired area, you can Shift+click the remaining corner to fill it in separately and combine the result with the result of the previous fill.&lt;br /&gt;
&lt;br /&gt;
* '''Ctrl+click''' on an object simply changes that object's fill to the current fill color of the tool, and '''Shift+Ctrl+click''' changes the stroke to the current stroke color.&lt;br /&gt;
&lt;br /&gt;
* '''Click and drag''' performs filling from '''all of the points''' that you pass while dragging (you will see your path visualized by a red line). From each point, the fill spreads to the neighbors with the colors similar to that point - in other words, it's like clicking with this tool at each point of the drag path and unioning the results. This lets you easily fill an area occupied by a gradient or blur - just drag from the darkest to the lightest points in the area you want to fill.&lt;br /&gt;
&lt;br /&gt;
* '''Alt+click and drag''' works similarly to simple drag, except from each point of the drag path, the fill spreads to the neighbors (if any) with the colors similar to the ''initial point'' (the point where you started the drag).  This lets you fill a series of similarly-colored yet separated areas (for example, multiple cells in a cartoon) by starting the drag in one of those areas, and alt+dragging the tool through all the other areas.&lt;br /&gt;
&lt;br /&gt;
==Tweak tool==&lt;br /&gt;
&lt;br /&gt;
The Tweak tool is an exciting new way to edit drawings which largely blurs the&lt;br /&gt;
distinction between vector and raster editing. Instead of meticulously selecting some&lt;br /&gt;
objects and then performing an action on the selection, you can now select ''all''&lt;br /&gt;
objects (or all objects you are interested in) and apply the Tweak tool's brush to&lt;br /&gt;
smoothly and naturally change the shape or style of only those objects (or parts&lt;br /&gt;
thereof) ''that the brush touches''.&lt;br /&gt;
&lt;br /&gt;
The area of the tool's action - its ''brush'' - is marked by an orange-colored circular&lt;br /&gt;
outline that moves with your mouse cursor. However, that area actually has no sharp&lt;br /&gt;
boundaries; the power of the tool's action falls off gradually, following a smooth&lt;br /&gt;
bell-shaped profile. This makes the tool act softly and smoothly.&lt;br /&gt;
&lt;br /&gt;
The tool will work on any number of selected objects; for example, you can select all&lt;br /&gt;
(Ctrl+A) and &amp;quot;smear&amp;quot; your entire drawing by Push mode or paint it by Color Paint&lt;br /&gt;
mode. You can also apply it to groups of objects; it will go into groups and act on&lt;br /&gt;
individual objects inside groups. If you're trying to use it without anything selected,&lt;br /&gt;
it will remind you by a statusbar message to select some objects.&lt;br /&gt;
&lt;br /&gt;
===Width===&lt;br /&gt;
&lt;br /&gt;
The width of the tool's brush, in the range from 1 to 100, can be changed by the&lt;br /&gt;
'''Width''' control in the tool's controls bar above the canvas. You can also change&lt;br /&gt;
width by '''Left''' and '''Right''' arrow keys (same as in the Calligraphy tool) at any&lt;br /&gt;
time (including during action) as well as '''Home''' and '''End'''. Also, as in Calligraphy&lt;br /&gt;
tool, the visible width of the brush is independent of zoom; simply zooming in or out is&lt;br /&gt;
often easier than adjusting the width if you want to cover a smaller or larger area of&lt;br /&gt;
the drawing.&lt;br /&gt;
&lt;br /&gt;
===Force===&lt;br /&gt;
&lt;br /&gt;
The next control is '''Force''' which adjusts the power of the action, also in the&lt;br /&gt;
range from 1 to 100. You can also change width by '''Up''' and '''Down''' arrow keys at&lt;br /&gt;
any time (including during action).&lt;br /&gt;
&lt;br /&gt;
If you have a pressure-sensitive tablet and your &amp;quot;Use pressure&amp;quot; button on the right-hand&lt;br /&gt;
end of the controls bar is on, then the force will also depend on how hard you actually&lt;br /&gt;
press your pen into your tablet, changing in the range from zero to whatever you set in&lt;br /&gt;
the Force control. If all you have is a mouse, then the force will be constant but still&lt;br /&gt;
settable by the Force control. &lt;br /&gt;
&lt;br /&gt;
===Path editing modes===&lt;br /&gt;
&lt;br /&gt;
The Tweak tool has a number of '''modes''', selectable by toggle buttons in the tool's&lt;br /&gt;
Controls bar and by keyboard shortcuts. Some of these modes change the shapes of &lt;br /&gt;
paths while others affect the colors of objects. All these modes share the Width and&lt;br /&gt;
Force controls but otherwise are quite different. Let's look at the path editing modes&lt;br /&gt;
first.&lt;br /&gt;
&lt;br /&gt;
Unlike the Node tool, to edit paths with the Tweak tool you don't need to worry about&lt;br /&gt;
where the nodes of a path are and how to manipulate them. You just apply the tool's&lt;br /&gt;
brush to any point, and the selected paths at that point will reshape smoothly and&lt;br /&gt;
naturally - as if made of soft jelly - regardless of where its nodes lie. If applied to&lt;br /&gt;
a shape or text object, the tool converts them to paths automatically.&lt;br /&gt;
&lt;br /&gt;
While not very useful for technical drawings, tweaking paths will be indispensable for&lt;br /&gt;
artistic uses of Inkscape - cartoons, drawings, sketches, anime, etc. This new&lt;br /&gt;
functionality is somewhat similar to the tools such as &amp;quot;Pucker&amp;quot; and &amp;quot;Bloat&amp;quot; in the&lt;br /&gt;
latest versions of Adobe Illustrator. &lt;br /&gt;
&lt;br /&gt;
There are currently six path editing modes in the Tweak tool: '''Push''', '''Shrink''',&lt;br /&gt;
'''Grow''', '''Attract''', '''Repel''', and '''Roughen'''.&lt;br /&gt;
&lt;br /&gt;
* This default mode of the tool, '''Push''', simply displaces the part of the path under the cursor in the direction of the drag. The path behaves like soft jelly, bending and bulging smoothly and naturally. It's an easy way to produce various irregular, lifelike, handmade-looking shapes starting from something as simple as an ellipse or a calligraphic stroke. For parallel-stroke hatching (engraving) done in the Calligraphy tool, pushing is an easy way to bend, pinch, or curve the entire hatching uniformly.&lt;br /&gt;
&lt;br /&gt;
* The '''Shrink''' and '''Grow''' are two opposite modes that move each point of a path in a direction perpendicular to the path's surface at the point, either inwards (Shrink) or outwards (Grow). This is similar to the Inset and Outset commands, except that the Tweak tool can act on a part of a path instead of the whole path.&lt;br /&gt;
&lt;br /&gt;
:For example, the visible lightness/darkness of an engraving hatching may not exactly correspond to your artistic intention. Also, the ends of Calligraphy pen strokes are often far from ideal - they may be too blunt or have unsightly bends or blobs. This is where the Tweak tool may help. Select all the strokes in a hatching pattern and apply a light Shrink action where you want the lines to become thinner (and the hatching to become lighter), up until total disappearance. If you press hard, shrinking works as an eraser, so you can easily clean the strokes' ends to make them thin, sharp, and uniform. Conversely, applying Grow makes strokes wider (i.e. the hatching becomes darker).&lt;br /&gt;
&lt;br /&gt;
:Of course, shrinking and growing are useful not only for calligraphic strokes. Same as with Push, with Shrink and Grow you can '''sculpt''' any path, spawning smooth treacle-like appendages with Inflating and carving holes with Melting. Unlike the &amp;quot;node sculpting&amp;quot; mode in the Node tool, however, this does not require adding new nodes to the shape.&lt;br /&gt;
&lt;br /&gt;
* The '''Attract''' and '''Repel''' modes work by moving each affected point on a path towards (Attract) or from (Repel) the cursor point. In some cases this may look similar to Shrink and Grow, but the difference is that shrinking/growing moves paths perpendicularly to the path in each point, whereas attracting/repelling moves them to or from the cursor regardless of the path shape. These modes are similar to the Pinch effect in ; you can use them for various central-symmetric distortions in parts of your paths.&lt;br /&gt;
&lt;br /&gt;
* The '''Roughen''' mode does exactly this: roughens the edge of the path without  changing its overall shape. Slight roughening simply makes the edge crooked and uneven;  strong roughening tears and explodes the edge into random blobs and splotches. Note  that this operation, especially with high Fidelity, adds a lot of nodes which increases  the size of your SVG document and may slow down Inkscape considerably. In particular,  pushing/melting/inflating of a roughened path becomes much slower and more difficult, so  it's recommended to finalize the overall shape of a path first and roughen it, if  necessary, only as the final step.&lt;br /&gt;
&lt;br /&gt;
See the screenshot at [http://inkscape.org/screenshots/gallery/inkscape-0.46-tweak-path.png] for a few examples of using the path editing modes of the Tweak tool.&lt;br /&gt;
&lt;br /&gt;
====Fidelity====&lt;br /&gt;
&lt;br /&gt;
Any tweaking of a path slightly distorts the entire path, including even those parts&lt;br /&gt;
that you didn't touch. These distortions are similar to those that a Simplify command&lt;br /&gt;
produces. The '''Fidelity''' value (also in the range from 1 to 100, default is 50)&lt;br /&gt;
allows you to control the amount of these distortions. With a higher fidelity, the&lt;br /&gt;
distortions are less noticeable, but the path may end up having a lot of nodes which&lt;br /&gt;
inflates up the SVG size and slows down Inkscape.&lt;br /&gt;
&lt;br /&gt;
The best value of Fidelity depends on the nature of your artwork. If you're sculpting an&lt;br /&gt;
amorphous blob, you can do with low fidelity of about 20. If, however, you are pushing&lt;br /&gt;
or inflating a text string (as a single path) and want the letters outside the distorted&lt;br /&gt;
area to remain crisp and clean, you will need to raise fidelity to 80 or more. &lt;br /&gt;
&lt;br /&gt;
====Known problems====&lt;br /&gt;
&lt;br /&gt;
Known problems with the path editing modes in Tweak tool:&lt;br /&gt;
&lt;br /&gt;
# they don't work on open paths (an open path becomes closed if you tweak it);&lt;br /&gt;
# they are rather slow; &lt;br /&gt;
# they quickly eat memory; and &lt;br /&gt;
# they are sometimes buggy - thin calligraphic strokes may suddenly disappear or change their shape drastically as you're melting or inflating them.&lt;br /&gt;
&lt;br /&gt;
For (4), it helps to increase Fidelity. Also, you can undo the bad change and try again with less pressure on the pen - if you do your thinning in several light touches instead of one heavy press, usually you will be able to get the desired result without the buggy behavior. &lt;br /&gt;
&lt;br /&gt;
Also, sometimes after roughening, further tweaking of a path becomes impossible with this diagnostic:&lt;br /&gt;
&lt;br /&gt;
  WARNING **: Shape error in ConvertToShape: directedEulerian(a) == false&lt;br /&gt;
&lt;br /&gt;
All these problems stem from the livarot library that we use for geometric manipulation of paths. Fortunately, livarot is scheduled for replacement by lib2geom, a new library now in development, so hopefully these issues will be addressed then.&lt;br /&gt;
&lt;br /&gt;
===Color editing modes===&lt;br /&gt;
&lt;br /&gt;
The '''Color Paint''' and '''Color Jitter''' modes, unlike the path editing modes,&lt;br /&gt;
change the colors of objects instead of their shapes. Yet they share enough common&lt;br /&gt;
features with the path editing modes to be part of the same tool: These modes also use&lt;br /&gt;
a circular soft-edged brush controlled by the Width and Force parameters on the Controls&lt;br /&gt;
bar and affected by the pen pressure (if you have a pressure-sensitive tablet).&lt;br /&gt;
&lt;br /&gt;
* '''Color Paint''' applies the style of the tool to the selected objects under the brush. The style of the tool is visible in the style swatch at the rightmost end of the tool's control bar; it can be changed by clicking on the color palette or by any other style assignment command, such as Fill and Stroke dialog. ('''Note''': unlike all other tools, in Tweak tool in Color Paint mode you cannot assign style directly to selected objects; any style-setting command changes the tool's style instead.)&lt;br /&gt;
&lt;br /&gt;
:The fill from the tool's style applies to the fills of the painted objects, and the stroke applies to the strokes. If the tool's style has no fill or no stroke, it won't affect fills or strokes, correspondingly. For example, if you want to color the fills of objects blue but leave their strokes untouched, assign blue fill to the tool's style (just click blue on the palette) but set its stroke to None (middle-click the Stroke swatch in the statusbar). Similarly, master opacity in the tool's style affects master opacities of the touched objects (if the O channel is on, see below).&lt;br /&gt;
&lt;br /&gt;
:This mode allows you to literally paint over objects, shifting their colors towards the target style of the tool. For example, if you paint with yellow fill over a blue-filled object, the object will become greenish blue, then green, then yellowish green, and end up being exactly the yellow color you're painting with. This speed of this gradual transition depends on both Force parameter and pen pressure; also, objects touched by the periphery of the brush are less affected than those hit by the brush center. Overall, using this tool is very similar to a soft brush in a raster editor such as Gimp or Photoshop.&lt;br /&gt;
&lt;br /&gt;
* '''Color Jitter''' mode does not apply any color, but instead jitters (randomizes) the colors of the objects it touches. The force of the action determines how strong is the randomization, i.e. how far the colors deviate from the original values. This mode does not use the tool's style.&lt;br /&gt;
&lt;br /&gt;
Both modes work on flat fills and gradients; for gradients, the tool takes into account not only the position of the entire object with gradient, but also the position of each gradient stop relative to the brush. This means that, for example, you can change the blue color only in an object filled with blue-red gradient simply by painting over its blue end with a brush small enough to not touch the red. (Note that color tweaking does not create gradients on objects that used flat color before, but only adjusts existing gradients in the drawing.)&lt;br /&gt;
&lt;br /&gt;
See the screenshot at [http://inkscape.org/screenshots/gallery/inkscape-0.46-tweak-color.png] for a few examples of using the color editing modes of the Tweak tool.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Channels====&lt;br /&gt;
&lt;br /&gt;
Color Paint and Color Jitter honor the '''Channels''' control. This control comprises&lt;br /&gt;
the four buttons: '''H''', '''S''', '''L''', and '''O''', which allow you to turn on and off&lt;br /&gt;
the tool's action on the object's hue, saturation, lightness, and opacity,&lt;br /&gt;
correspondingly. For example, if you want to raise the saturation of some part of your&lt;br /&gt;
drawing without changing the hue, select some maximum-saturation color (e.g. pure red)&lt;br /&gt;
and turn off all Channels buttons except S. Similarly, you can replace the hues without&lt;br /&gt;
affecting saturation or lightness (only H pressed), or lighten/darken all colors without&lt;br /&gt;
changing their hues and saturation (only L pressed). Pressing O allows you to apply the&lt;br /&gt;
master opacity from the tool's style to the master opacity of objects (but not fill or&lt;br /&gt;
stroke opacity).&lt;br /&gt;
&lt;br /&gt;
====Usage notes====&lt;br /&gt;
&lt;br /&gt;
Color painting with Tweak tool is similar, but not exactly analogous to bitmap&lt;br /&gt;
painting. Even though the tool itself works as a soft brush, it still applies its color&lt;br /&gt;
to vector objects, which behave as vector objects usually do. For example, if you want&lt;br /&gt;
to change the tint of the face in your drawing, and if a hand in the drawing is part of&lt;br /&gt;
the same object as the face, that hand will change its tint too even if it's located far&lt;br /&gt;
from the point you are painting. (We foresee a &amp;quot;fracture&amp;quot; command in one of the next&lt;br /&gt;
versions of Inkscape which will help you turn a monolithic object into a mosaic of small&lt;br /&gt;
fragments that will be then easy to paint with Tweak tool.)  Still, even with this&lt;br /&gt;
limitation, color painting is a novel way of dealing with vector drawings which allows&lt;br /&gt;
you to quickly and intuitively make adjustments which would be awkward and slow with&lt;br /&gt;
traditional approach.&lt;br /&gt;
&lt;br /&gt;
Drawings containing patterns or scatterings of small independent objects are best suited&lt;br /&gt;
for color painting with Tweak tool. Examples include:&lt;br /&gt;
&lt;br /&gt;
* freehand drawings with Calligraphy pen, consisting of many separate strokes;&lt;br /&gt;
&lt;br /&gt;
* gradient meshes imported from Adobe Illustrator files (Inkscape renders these meshes as lattices of small polygons; while there's no direct support for gradient meshes in Inkscape yet, color painting on such lattices is almost as good);&lt;br /&gt;
&lt;br /&gt;
* text converted to paths and with Break Apart command applied so that each letter is a separate path;&lt;br /&gt;
&lt;br /&gt;
* patterns made with the Tile Clones command; note that you need to unset the fill and/or stroke on the original object and use the Color tab to assign some initial color to the clones - this will make them paintable with the Tweak tool without unlinking.&lt;br /&gt;
&lt;br /&gt;
Moreover, color tweaking can be useful for compositions with a few objects or even for&lt;br /&gt;
single objects. Unlike all other color selection methods, painting with the Tweak tool&lt;br /&gt;
implements the ''color mixing'' metaphor which is much more familiar to traditional&lt;br /&gt;
artists than RGB sliders or even the color wheel. For example, start with a rectagle of&lt;br /&gt;
pure blue color; then, pick different colors by Color Paint and apply light touches with&lt;br /&gt;
minimum Force and minimum pen pressure: add a little green, a little brown, a little&lt;br /&gt;
yellow, etc. until you have the exact hue you need. Similarly, you can whiten or blacken&lt;br /&gt;
any hue by admixing white or black.&lt;br /&gt;
&lt;br /&gt;
You can also use color tweaking to add a tint, darken/lighten, saturate/desaturate, or&lt;br /&gt;
color jitter your entire drawing. Just select all in all layers, zoom out, choose a&lt;br /&gt;
large brush width so it covers all of the drawing, and apply a little color tweaking&lt;br /&gt;
(with minimum Force) that will therefore affect all visible objects.&lt;br /&gt;
&lt;br /&gt;
===Keyboard shortcuts===&lt;br /&gt;
&lt;br /&gt;
* '''W''', '''Shift+F2''': switch to the Tweak tool&lt;br /&gt;
&lt;br /&gt;
* '''Shift+P''': switch to the Push mode&lt;br /&gt;
&lt;br /&gt;
* '''Shift+S''': switch to the Shrink mode&lt;br /&gt;
&lt;br /&gt;
* '''Shift+G''': switch to the Grow mode&lt;br /&gt;
&lt;br /&gt;
* '''Shift+A''': switch to the Attract mode&lt;br /&gt;
&lt;br /&gt;
* '''Shift+E''': switch to the Repel mode&lt;br /&gt;
&lt;br /&gt;
* '''Shift+R''': switch to the Roughen mode&lt;br /&gt;
&lt;br /&gt;
* '''Shift+C''': switch to the Color Paint mode&lt;br /&gt;
&lt;br /&gt;
* '''Shift+J''': switch to the Color Jitter mode&lt;br /&gt;
&lt;br /&gt;
* '''Left, Right, Home, End''': change width&lt;br /&gt;
&lt;br /&gt;
* '''Up, Down''': change force&lt;br /&gt;
&lt;br /&gt;
* '''mouse drag''': act on selected path in the current mode&lt;br /&gt;
&lt;br /&gt;
* '''Ctrl+mouse drag''': temporarily switch to Shrink (while Ctrl is down)&lt;br /&gt;
&lt;br /&gt;
* '''Shift+Ctrl+mouse drag''': temporarily switch to Grow (while Shift+Ctrl is down)&lt;br /&gt;
&lt;br /&gt;
==3D Box tool==&lt;br /&gt;
&lt;br /&gt;
Inkscape is a two-dimensional drawing tool. However, very often it is used to draw three-dimensional objects. The new '''3D box tool''' helps you create such 3D drawings by automating the most common operation: creating a three-dimensional box in a given perspective. The tool automatically ensures that all sides of the box lie on the corresponding perspective lines. We're not going to compete with Blender - but even simple things can go a long way.&lt;br /&gt;
&lt;br /&gt;
Currently in the 3D box tool you can:&lt;br /&gt;
&lt;br /&gt;
* draw a 3D box by dragging on canvas (use Shift+dragging without releasing the mouse button to extrude in z direction)&lt;br /&gt;
&lt;br /&gt;
* adjust any of its 3 dimensions by handles&lt;br /&gt;
&lt;br /&gt;
* move a 3D box &amp;quot;in perspective&amp;quot; by dragging its center; without modifiers, movement occurs within the XY-plane (press Ctrl to constrain the movement to the directions of the coordinate axes or diagonals), with Shift the box moves parallel to the Z-axis&lt;br /&gt;
&lt;br /&gt;
* adjust the vanishing points of a perspective by dragging them across the canvas (see below) or toggling their states; all boxes sharing this perspective are transformed accordingly&lt;br /&gt;
&lt;br /&gt;
In SVG, a 3D box is represented as a '''group''' (svg:g) with a special extension attribute (in inkscape namespace); this group contains the 6 quadrilateral '''paths''' representing the sides of the box. Only the 3D box tool treats this object as a box; for all other tools it is just a group, so you can select any of the paths by Ctrl+click, apply any style to it, delete it, etc. You can of course transform the entire box or any face in it using Selector or Node tools.&lt;br /&gt;
&lt;br /&gt;
When several boxes are selected, all vanishing points of their associated perspectives are shown on the canvas. If vanishing points of different perspectives coincide, they are combined in a single &amp;quot;dragger&amp;quot;. Moving this dragger moves all the vanishing points simultaneously and transforms the associated boxes accordingly. Note that some non-selected boxes may also be reshaped if their perspectives share the same vanishing point. Pressing Shift while moving the dragger can be used to only transform the selected boxes, separating their perspectives from the non-selected ones'. On the other hand, when a vanishing point being dragged comes close enough to another one, both snap together and are combined in a single dragger.&lt;br /&gt;
&lt;br /&gt;
===Keyboard shortcuts===&lt;br /&gt;
&lt;br /&gt;
* '''X''', '''Alt+F4''': switch to the 3D box tool&lt;br /&gt;
&lt;br /&gt;
* The various kinds of parentheses, namely '''[''' ''']''', '''(''' ''')''', '''{''' '''}''', can be used to rotate infinite (i.e., parallel) perspective lines in X-, Y-, and Z-direction, respectively. Closing parentheses rotate clockwise and opening parentheses rotate counterclockwise. The angle of rotation is taken from the preferences. Pressing '''Alt''' reduces the amount of rotation to 1 screen pixel.&lt;br /&gt;
&lt;br /&gt;
* '''L''': toggle visibility of perspective lines&lt;br /&gt;
&lt;br /&gt;
* '''A''': when perspective lines are visible, toggle between &amp;quot;all lines&amp;quot; and &amp;quot;only lines connected to front corners&amp;quot; (this can help to avoid visual clutter)&lt;br /&gt;
&lt;br /&gt;
[max]&lt;br /&gt;
&lt;br /&gt;
==Gradient Tool==&lt;br /&gt;
===Selecting multiple stops===&lt;br /&gt;
'''More than one gradient stop''' can be selected at a time. Shortcuts for working with multiple stop selections are generally modeled on the Node tool. &lt;br /&gt;
* Add a stop to the selected stops by '''Shift+click'''.&lt;br /&gt;
* Press '''Ctrl+A''' to select all stops in the selected objects.&lt;br /&gt;
* '''Shift+drag''' around stops to add them to selection.&lt;br /&gt;
Multiple selected stops:&lt;br /&gt;
*Can be moved together by '''mouse drag''' or by '''arrow keys'''. For example, creating a linear gradient, then press Ctrl+A to select all stops and use arrow keys to move the entire gradient as a whole.&lt;br /&gt;
*Can be deleted at the same time by pressing '''Del'''.&lt;br /&gt;
An always up-to-date description of the current handle selection is provided in the statusbar in the Gradient tool, including the number of selected handles (and the type of the single selected handle), as well as the total number of handles and selected objects.&lt;br /&gt;
&lt;br /&gt;
===Editing intermediate stops===&lt;br /&gt;
'''Intermediate stops''' in gradients can be added, deleted, and edited on canvas (previously this was only possible in the Gradient Editor dialog).&lt;br /&gt;
*Stops can be added by '''double clicking''' or by '''Ctrl+Alt+Click''' on the gradient line. Also, you can '''drag-and-drop''' a color from the palette onto the gradient line to create a new stop with this color. Dropping a color on an existing stop changes the color of that stop.&lt;br /&gt;
*When two or more adjacent stops are selected, pressing '''Ins''' adds stops in the middles of all selected stop intervals.&lt;br /&gt;
*Intermediate stops can be '''mousedrag'''ged or moved by '''arrow keys''' along their gradient line, within the limits of the adjacent unselected stops (or end handles). &lt;br /&gt;
:*Dragging with '''Ctrl''' moves the selected stops snapping them to 1/10 fractions of the available range.&lt;br /&gt;
:*Dragging with '''Alt''' moves the selected stops depending on how close each one is to the stop being dragged, using a smooth bell-like curve similar to the node sculpting feature in Node tool. This makes it easy to approximate different gradient profiles; for example, if you have a two-stop gradient that you want to shape according to a curve profile, select both ends of the gradient, press '''Ins''' a few times to add a number of intermediate nodes, then '''Alt+drag''' a node in the middle to smoothly profile the gradient.&lt;br /&gt;
*Stops can also be moved by '''arrow keys''' with all the regular modifiers ('''Shift''' for 10x movement, '''Alt''' for pixel-size movement at the current zoom, '''Shift+Alt''' for 10 pixels movement at the current zoom).&lt;br /&gt;
*Stops can be deleted by '''Ctrl+Alt+Click''' on a stop or by the '''Del''' key for all the selected stop(s).&lt;br /&gt;
:*When you delete an end stop, the nearest intermediate stop becomes the new end stop of the gradient (without moving - i.e., the gradient span becomes shorter).&lt;br /&gt;
:*When you delete an end stop and there are no intermediate stops, the object will be painted with a solid fill taken from the color &amp;amp; opacity of the remaining stop.&lt;br /&gt;
*Pressing '''Ctrl+L''' with some intermediate stops selected attempts to ''simplify'' the selected portion of the gradient, removing those stops that can be removed without too much change in the way the gradient looks. In particular, new stops created by double-clicking or pressing Ins initially do not change the appearance of the gradient, so if you press Ctrl+L, all redundant stops that weren't moved or repainted since creation will be deleted.&lt;br /&gt;
&lt;br /&gt;
===Style of gradient stops===&lt;br /&gt;
*When you have one of the '''gradient handles selected''', its style (color and opacity) is reflected by the selected style indicator (left of the statusbar) and the Fill&amp;amp;Stroke dialog. Previously, opacity of a gradient handle was reflected as fill-opacity and stroke-opacity; now it is reflected as '''master opacity''' (the &amp;quot;O:&amp;quot; spinbutton in the selected style indicator, the &amp;quot;Master opacity&amp;quot; slider in Fill&amp;amp;Stroke). This makes it much easier to view and change opacity of gradient handles using only the selected style indicator in the statusbar.&lt;br /&gt;
:*When multiple gradient stops are selected, the selected style indicator (in the statusbar) displays and controls the averaged color and opacity of the selected stops.&lt;br /&gt;
*When one or more gradient stops are selected, using the Copy command ('''Ctrl+C''') copies to the clipboard the style (color and opacity) of the selected stop or the averaged style of several selected stops, not the entire object with gradient as before. This means you can now copy/paste style between stops: select the source stop(s), copy, select the destination stop(s), paste style ('''Ctrl+Shift+V'''). With several selected stops, this also allows you to easily average their colors and opacities by copying them and pasting the style back onto them. (After that, redundant gradient stops can be removed by simplification with '''Ctrl+L''').&lt;br /&gt;
*If the selected object(s) have gradient in fill or stroke, the '''selected style indicator''' in the bottom-left corner of the editing window now displays a '''live gradient preview''' prefixed by '''R''' or '''L''' to indicate Radial or Linear gradients (instead of displaying &amp;quot;L Gradient&amp;quot; or &amp;quot;R Gradient&amp;quot; text labels as before). Also, this and other similar widget now use italic font face to indicate &amp;lt;i&amp;gt;None&amp;lt;/i&amp;gt; and bold to indicate &amp;lt;b&amp;gt;Unset&amp;lt;/b&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Automatic duplication of gradients===&lt;br /&gt;
When copy/pasting or duplicating an object with gradient, it now automatically gets a '''copy''' of the original gradient, so modifying it does not affect the source object's gradient anymore (before, you had to press the Duplicate button on the Gradient controls bar for this). The Duplicate button is therefore removed. &lt;br /&gt;
&lt;br /&gt;
However, to accommodate the needs of users who have relied on sharing the same gradient definition across objects, this behavior can be optionally suppressed. The '''Prevent sharing of gradient definitions''' checkbox on the Misc tab of Inkscape Preferences is by default checked; if you uncheck it, Inkscape does not automatically copy gradient definitions for new objects, which means that copy/pasting, duplicating, pasting style, and explicit assignment of a gradient to an object via the Gradient tool controls results in a shared gradient definition, so that changing the colors or mid-stop positions of the gradient on one object (but not changing the coordinates of the end handles) affects all other objects that share the same definition.&lt;br /&gt;
&lt;br /&gt;
==Calligraphy tool: Engraver's Toolbox ==&lt;br /&gt;
&lt;br /&gt;
Several new features were added to the Calligraphic pen to make&lt;br /&gt;
Inkscape capable of the ancient art of '''line&lt;br /&gt;
engraving'''. Traditional engraving is a very labour-intensive&lt;br /&gt;
process, and while for a long time it was the only practical way&lt;br /&gt;
of reproducing lifelike images in black-and-white print, about a&lt;br /&gt;
century ago it was almost completely displaced by automatic&lt;br /&gt;
halftone screens. However, line engravings have their&lt;br /&gt;
characteristic charm, and there's no reason not to try to&lt;br /&gt;
resurrect this art form with the help of Inkscape.&lt;br /&gt;
&lt;br /&gt;
A brief visual guide to the new functionality can be seen on&lt;br /&gt;
these screenshots:&lt;br /&gt;
&lt;br /&gt;
http://inkscape.org/screenshots/gallery/inkscape-0.46-engraving1.png&lt;br /&gt;
&lt;br /&gt;
http://inkscape.org/screenshots/gallery/inkscape-0.46-engraving2.png&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Tracking a guide path with Ctrl===&lt;br /&gt;
&lt;br /&gt;
One of the most common operations in line engraving is&lt;br /&gt;
'''hatching''' (or sometimes ''cross-hatching'' when several&lt;br /&gt;
hatching grids cross): filling a space with many parallel&lt;br /&gt;
straight or variously curved lines (usually of varying width to&lt;br /&gt;
represent a gradual shading). You could try to achieve a similar&lt;br /&gt;
effect with e.g. path interpolation (blending), but it is rather&lt;br /&gt;
cumbersome and limited; manual drawing of hatch lines, on the&lt;br /&gt;
other hand, is tedious and nearly impossible to do&lt;br /&gt;
uniformly. Now Inkscape provides &amp;quot;assisted hatching&amp;quot; by&lt;br /&gt;
'''tracking a guide path''', allowing you to hatch quickly and&lt;br /&gt;
uniformly and at the same time giving you sufficient manual&lt;br /&gt;
control over the process.&lt;br /&gt;
&lt;br /&gt;
Here's how to do this. First, select the '''guide path''' that&lt;br /&gt;
you will track. It may be another calligraphic stroke, any path&lt;br /&gt;
or shape, or even a letter of a text object. Then switch to&lt;br /&gt;
Calligraphic pen, select the desired parameters (line width,&lt;br /&gt;
angle, fixation etc.) and, before starting to draw, press&lt;br /&gt;
Ctrl. You will see a gray '''track circle''' centered at your&lt;br /&gt;
mouse pointer and touching the closest point on the selected&lt;br /&gt;
guide path. (If you have no guide path selected, a statusbar&lt;br /&gt;
message will tell you to select it.)&lt;br /&gt;
&lt;br /&gt;
Now move your mouse close to the guide path, so that the track&lt;br /&gt;
circle radius is equal to the desired spacing of your hatch&lt;br /&gt;
pattern, and start drawing along the guide path. At that moment,&lt;br /&gt;
the radius of the circle gets locked; now the circle slides&lt;br /&gt;
along the guide path - and the actual stroke is drawn by the&lt;br /&gt;
center of the tracking circle, ''not'' by your mouse point. As&lt;br /&gt;
a result, you are getting a smooth stroke going parallel to the&lt;br /&gt;
guide path and always at the same distance from it.&lt;br /&gt;
&lt;br /&gt;
When the stroke is ready, release your mouse button (or lift&lt;br /&gt;
your tablet pen) but '''do not let go of the Ctrl key''' because&lt;br /&gt;
as long as you have it pressed, the tool remembers the hatch&lt;br /&gt;
spacing you set when you started drawing. Now, you have just&lt;br /&gt;
created a new stroke and, as usual with Inkscape tools, it gets&lt;br /&gt;
selected instead of what was selected before. In our case, this&lt;br /&gt;
means that the newly drawn stroke itself becomes the new guide&lt;br /&gt;
path. Next, you can draw a second stroke along the first one,&lt;br /&gt;
then a third one along the second, etc. Eventually you can fill&lt;br /&gt;
any desired space with uniform hatching.&lt;br /&gt;
&lt;br /&gt;
Alternatively, if you uncheck &amp;quot;Select new path&amp;quot; in the Calligraphy tool preferences, newly created strokes will not be selected, so your original guide path will be kept selected. In this mode, Inkscape will increase the tracking distance after each created stroke so that you can create uniformly spaced hatching by tracking a single guide path. &lt;br /&gt;
&lt;br /&gt;
The attachment to the guide path is not absolute. If you stray&lt;br /&gt;
your mouse pointer far enough from the guide path, you will be&lt;br /&gt;
able to tear it off (the track circle turns from green to red)&lt;br /&gt;
and move freely. This is intentional; this feature allows you,&lt;br /&gt;
for example, to continue drawing a stroke past the end of a&lt;br /&gt;
guide stroke, thus making your hatching cover a wider area than&lt;br /&gt;
the initial guide path. Special care is taken to make such&lt;br /&gt;
tearing off as smooth as possible and to suppress violent jerks,&lt;br /&gt;
but this is not always possible; the general advice is to not&lt;br /&gt;
try to hatch too fast. If jerking and unintended tearoffs still&lt;br /&gt;
bother you, try increasing the Mass parameter.&lt;br /&gt;
&lt;br /&gt;
Also, special code is in place to prevent flipovers - accidental&lt;br /&gt;
jumps to the other side of the guide path. Brief flipovers are&lt;br /&gt;
suppressed, but if you intentionally go over to the other side&lt;br /&gt;
and stay there, eventually Inkscape will obey and your tracking&lt;br /&gt;
stroke will also flip over to follow you.&lt;br /&gt;
&lt;br /&gt;
Tracking a guide also allows some slight feedback by gradually&lt;br /&gt;
changing the tracking distance in response to your drawing&lt;br /&gt;
behavior. Thus, if you're consistently trying to draw closer or&lt;br /&gt;
farther from the guide than the current tracking distance, the&lt;br /&gt;
distance will correspondingly decrease or increase, so you will&lt;br /&gt;
get a hatching that is slightly spacing in or out. (The effect&lt;br /&gt;
is very slight, however, so as not to become a nuisance.)  Also,&lt;br /&gt;
note that since tracking follows the edge of the stroke, strokes&lt;br /&gt;
of varying width (such as those tracing background, see below)&lt;br /&gt;
will result in gradual bending of the hatching pattern as you&lt;br /&gt;
proceed.&lt;br /&gt;
&lt;br /&gt;
===Tracing background by stroke width===&lt;br /&gt;
&lt;br /&gt;
There is a new toggle button on the Calligraphy tool's controls&lt;br /&gt;
bar, '''Trace background'''. When on, the width of your pen&lt;br /&gt;
depends on the lightness of the background under the stroke in&lt;br /&gt;
each point, so that white translates into the minimum stoke&lt;br /&gt;
width (1) and black translates to the maximum (which is set by the&lt;br /&gt;
Width parameter). This can work alone or in combination with&lt;br /&gt;
pressure sensitivity, depending on whether the &amp;quot;Use pressure&amp;quot; button&lt;br /&gt;
is also toggled.&lt;br /&gt;
&lt;br /&gt;
This feature allows you to not only hatch over an imported&lt;br /&gt;
bitmap image or any drawing, but to do so automatically&lt;br /&gt;
reproducing the highlights and shades of the background with&lt;br /&gt;
your strokes becoming lighter and heavier as needed.&lt;br /&gt;
&lt;br /&gt;
===Misc features===&lt;br /&gt;
&lt;br /&gt;
* For consistency with other drawing tools, drawing with '''Shift''' in Calligraphy tool automatically '''unions''' the newly created stroke with whatever paths were selected (and selects the result).  Thus, you can do a series of overlapping Shift+strokes to create one unioned path object instead of separate objects as before. &lt;br /&gt;
&lt;br /&gt;
* To facilitate changing the Width parameter, the Home/End keys in Calligraphy tool switch you to the minimum (1) and maximum (100) width, correspondingly. (This is in addition to the Left/Right arrow keys that change Width by 1; remember also that you can press Alt+X, type any width, and press Enter.)&lt;br /&gt;
&lt;br /&gt;
==Selector==&lt;br /&gt;
&lt;br /&gt;
* A new selection mode is available: '''selecting by touch'''. In this mode, you draw a freehand path across the objects; when you release mouse button, all objects that are touched by this path get selected. This mode is very convenient  in situations where you need to select objects so intermingled that selecting them by the rectangular rubberband is too difficult and so numerous that click-selecting them one by one is too tedious. &lt;br /&gt;
&lt;br /&gt;
:To activate selecting by touch, whenever you are drawing a rubberband rectangle, just press '''Alt''' to switch it to the touch mode. The rectangle will disappear and a red ''touch path'' will be shown instead. When dragging from an empty space, you can press '''Alt''' first and then start to drag to get the touch mode (note that your selection must be empty, otherwise Alt+dragging will move the selected objects instead). To start a touch selection from a point over an object, or to add to existing selection by touching, press '''Shift+Alt''' and then start to drag.&lt;br /&gt;
&lt;br /&gt;
* Previously, the only way to switch selection from scale mode to rotate mode or back was to click on it, which was rather inconvenient when the selected object is in a group or under other objects. Now you can switch modes with keyboard as well by pressing '''Shift+S''' in Selector tool.&lt;br /&gt;
&lt;br /&gt;
* Draging the '''scale handles with Alt''' now scales selection by an integer factor, i.e. up to '''2''', '''3''', '''4''', etc. times the original size or down to '''1/2'''. '''1/3''', '''1/4''', etc. of the original size (in any of the two dimensions independently). This way you can, for example, mirror any object around one of the edges of its box. (This replaces the old and rarely used &amp;quot;slow&amp;quot; scaling mode with Alt.)&lt;br /&gt;
&lt;br /&gt;
* '''Horizontal/vertical flipping''': So far, flipping a selection made it flip within its bounding box, so that the latter remained fixed. In the move/scale mode of the selector tool, this behaviour remains unchanged. However, in rotate/shear mode flipping now happens about an (imaginary) vertical/horizontal axis through the rotation center. This is very handy, since the latter can be freely dragged around and snaps to all kinds of objects if desired.&lt;br /&gt;
&lt;br /&gt;
* '''Objects to Marker''' was added to the objects menu, which converts the current selection to a marker, with the center point of the selection being set to the center of the marker.&lt;br /&gt;
&lt;br /&gt;
==Node tool==&lt;br /&gt;
&lt;br /&gt;
* If any of the nodes in the currently selected path is mouseovered, then horizontal/vertical flipping ('H' and 'V' keys), stepwise rotation ('[' and ']' keys) and scaling ('&amp;lt;' and '&amp;gt;' keys) now all use this specific node as center/axis. If there is no mouseovered node, the center of the bounding box is used instead (as is currently the case unconditionally). Nodes that are covered by one of their handles are also detected as mouseovered.&lt;br /&gt;
&lt;br /&gt;
* [helper path display - johan]&lt;br /&gt;
** this is deactivated for normal paths now. only paths with LPE applied will show it. should there be a button to turn it on for normal paths aswell?&lt;br /&gt;
&lt;br /&gt;
* As a long-requested feature, two entry fields are added to the toolbar which allow precise editing of the coordinates of selected nodes.&lt;br /&gt;
&lt;br /&gt;
==Rectangle Tool==&lt;br /&gt;
&lt;br /&gt;
* Ctrl+dragging now also allows the creation of rectangles with sides constrained to the golden ratio (approx. 1 : 1.618034), not only integer ratios.&lt;br /&gt;
&lt;br /&gt;
==Text tool==&lt;br /&gt;
* [text toolbar - deadchip?]&lt;br /&gt;
* If text contains a tref element, the text tool's behavior may not be as expected.  Please see [[#The tref Element]]&lt;br /&gt;
&lt;br /&gt;
==Dropper Tool==&lt;br /&gt;
&lt;br /&gt;
The shortcut 'D' is now used to &amp;lt;i&amp;gt;toggle&amp;lt;/i&amp;gt; (not just switch to) the dropper tool - much like space is used to toggle the selector tool. That is, pressing 'D' a second time switches back to the tool used before.&lt;br /&gt;
&lt;br /&gt;
=SVG features=&lt;br /&gt;
&lt;br /&gt;
==The tref element==&lt;br /&gt;
&lt;br /&gt;
Inkscape can now correctly open files with '''tref''' elements, and new tref elements can be created manually in the XML editor.&lt;br /&gt;
&lt;br /&gt;
The actual character data contained in a text element can either be embedded directly, or it can be the character content of an element referenced by a '''tref'''.&lt;br /&gt;
&lt;br /&gt;
While the textual content from the referenced element will be stripped of any markup before being used by the '''tref''', the '''tref''' element can itself have the same attributes as a '''tspan'''.  In fact, when rendered, it is as though the '''tref''' element is replaced by a '''tspan''' with the same attributes, and the referenced character data is embedded in that '''tspan'''.&lt;br /&gt;
&lt;br /&gt;
The property '''xlink:href''' is used to refer to another element whose character data will be used.  Any element can be referred to except an ancestor of the '''tref'''.  When any of the text contained in the referred element changes, the '''tref''' will immediately be updated to display the new data.&lt;br /&gt;
&lt;br /&gt;
Existing tref elements can be converted into tspan elements with '''Edit &amp;gt; Clone &amp;gt; Unlink Clone'''.  If more than one '''tref''' is contained within a selection, all '''trefs''' will be converted into '''tspans'''.  All attributes applied to the '''tref''' will be retained in the new '''tspan'''.&lt;br /&gt;
&lt;br /&gt;
A '''tref''' element can be mixed with any other elements allowed to be contained by a text element.&lt;br /&gt;
&lt;br /&gt;
The cloned character data rendered by the '''tref''' may not be edited, but any characters surrounding it can be changed.  Styles cannot be applied to a subset of the cloned characters, but if all are selected, a style can be applied to the '''tref'''.&lt;br /&gt;
&lt;br /&gt;
==SVG filters==&lt;br /&gt;
&lt;br /&gt;
===New filters supported===&lt;br /&gt;
&lt;br /&gt;
* The '''feBlend''' filter primitive gives us image blending modes, like in many image manipulation programs. These modes are screen, multiply, darken and lighten. There's a caveat, though: when blending an object against an semi-transparent background, the background will be accumulated twice, resulting in thicker objects under the bounding box of blended object. This is a limitation of current version of SVG format, not a bug in Inkscape.&lt;br /&gt;
&lt;br /&gt;
* The '''feColorMatrix''' filter primitive applies a matrix transformation to colour of each rendered pixel. This allows for effects like turning object to grayscale, modifying colour saturation and changing colour hue.&lt;br /&gt;
&lt;br /&gt;
* The '''feComposite''' filter primitive composites two images using one of the [http://en.wikipedia.org/wiki/Porter-Duff Porter-Duff blending modes] (described in paper Compositing Digital Images by T. Porter and T. Duff, published in SIGGRAPH '84 Conference Proceedings, Association for Computing Machinery, Volume 18, Number 3, July 1984) or the aritmetic mode described in SVG standard. Porter-Duff blending modes are essentially logical operations between the images. For example, xor mode shows the areas, where either one of the objects is, but not the areas where both of the objects are. Arithmetic mode lets you specify coefficients k1-k4 for blending equation (result colour) = k1 * (first input colour) * (second input colour) + k2 * (first input colour) + k3 * (second input colour) + k4.&lt;br /&gt;
&lt;br /&gt;
* The '''feConvolveMatrix''' lets you specify a [http://en.wikipedia.org/wiki/Convolution Convolution] to be applied on the image. Common effects created using convolution matrices are blur, sharpening, embossing and edge detection. There's a fairly good explanation and some example matrices at [http://www.gamedev.net/reference/programming/features/imageproc/page2.asp www.gamedev.net/reference/programming/features/imageproc/page2.asp]. Note that while gaussian blur can be created using this filter primitive, the special gaussian blur primitive is faster and resolution-independent.&lt;br /&gt;
&lt;br /&gt;
* Filter primitives '''feDiffuseLighting''' and '''feSpecularLighting''' create lighting maps for the object in input image. SVG doesn't have concept of third dimension, so these filters use alpha channel of input image as a height map: the more opaque given point in input image is, the nearer spectator it is considered to be. There exists an example for using these in Inkscape distribution, in share/examples/lighting_effects.svg or [http://inkscape.svn.sourceforge.net/viewvc/*checkout*/inkscape/inkscape/trunk/share/examples/lighting_effects.svg?revision=15523 in SVN]&lt;br /&gt;
&lt;br /&gt;
* The '''feDisplacementMap''' filter primitive displaces the pixels in the first input using the second input as a displacement map, that shows from how far the pixel should come from. Classical examples are whirl and pinch effects, that can be found in most image manipulation programs and even in some screensavers, where this kind off effect is moving around screen, twisting desktop beneath it.&lt;br /&gt;
&lt;br /&gt;
* The '''feImage''' filter primitive allows using external images as part of filtering chain. For example, one could use external image as a displacement map for feDisplacementMap or as a height map for lighting effects. Note that while SVG standard allows using other parts of the SVG file in this filter primitive, the current Inkscape implementation only allows external images.&lt;br /&gt;
&lt;br /&gt;
* The '''feMerge''' filter primitive composites several temporary images inside the filter primitive to a single image. It uses normal alpha compositing for this. This is equivalent to using several feBlend primitives in 'normal' mode or several feComposite primitives in 'over' -mode.&lt;br /&gt;
&lt;br /&gt;
* The '''feMorphology''' filter primitive provides erode and dilate effects, that are common in image manipulation programs. With erode, darker and more transparent areas spread to lighter and more opaque areas, whereas with dilate lighter and more opaque areas spread to darker and more transparent areas. For single-colour objects, this basically means, erode makes the object thinner and dilate makes it thicker.&lt;br /&gt;
&lt;br /&gt;
* The '''feOffset''' filter primitive offsets the image by an user-defined amount. For example, this is useful for drop shadows, where the shadow is in a slightly different position than the actual object.&lt;br /&gt;
&lt;br /&gt;
* The '''feTurbulence''' filter primitive renders [http://en.wikipedia.org/wiki/Perlin_noise Perlin noise]. This kind of noise is useful in simulating several nature phenomena like clouds, fire and smoke and in generating complex textures like marble or granite.&lt;br /&gt;
&lt;br /&gt;
See also wiki page [[Filter Effects]] for more info on filters in Inkscape in general.&lt;br /&gt;
&lt;br /&gt;
===Filters UI===&lt;br /&gt;
&lt;br /&gt;
* New dialog for creating and modifying filter effects ('''Object&amp;gt;Filter Effects...''')&lt;br /&gt;
* The list at the left of the dialog displays all filters currently in the document.&lt;br /&gt;
** New filters can be added with the '''Add''' button beneath the list&lt;br /&gt;
** Right-clicking a filter for the pop-up menu allows duplicating or removing a filter.&lt;br /&gt;
** Double-clicking a filter will apply it to all selected objects&lt;br /&gt;
** A black dot is placed next to whatever filter is applied to the selected objects. If more than one filter is in use by selected objects, an unfilled dot is used instead.&lt;br /&gt;
* The second list, at the left of the dialog, displays the '''filter primitives''' that are contained within the currently-selected filter.&lt;br /&gt;
** New primitives can be added by selecting the primitive type from the combo box beneath the list, and then pressing the '''Add''' button.&lt;br /&gt;
** Right-clicking a primitive for the pop-up menu allows duplicating or removing a primitive.&lt;br /&gt;
** Primitives can be rearranged by clicking and dragging any filter in the list.&lt;br /&gt;
** When a filter is selected, the '''Settings''' group at the bottom of the dialog will change to display the attributes available for that primitive. Changing a setting results in an immediate update to the document.&lt;br /&gt;
** The &amp;quot;in&amp;quot; and &amp;quot;in2&amp;quot; attributes for filters that support them are not shown in the '''Settings''' group. These input connections are displayed graphically in the list, under the '''Connections''' column.&lt;br /&gt;
*** Inputs for a particular filter are displayed as triangles. Depending on the primitive type, there may be one or two inputs (or more for Merge primitives.) Connections can be created by clicking on a triangle and dragging.&lt;br /&gt;
*** There are six standard input types that can be used for any primitive input; Source Graphic, Source Alpha, Background Image, Background Alpha, Fill Paint, and Stroke Paint. These are displayed vertically on the far right of the list. Click and drag from an input triangle to one of the standard inputs to connect them.&lt;br /&gt;
*** Primitives can also be connected to other primitives by clicking an input triangle and dragging upwards to another primitive. A primitive can only be connected to one higher up the list.&lt;br /&gt;
*** Single-clicking on an input triangle will unset it, returning it to the default. If it is on a Merge primitive, the input will be deleted.&lt;br /&gt;
*** Merge inputs have an empty input at the end. Dragging a connection from this input will add a new input to the primitive.&lt;br /&gt;
&lt;br /&gt;
=Live Path Effects (LPE)=&lt;br /&gt;
&lt;br /&gt;
'''Live path effects''' (not to be confused with extension effects or SVG filters) are a new way to &amp;lt;b&amp;gt;non-destructively modify path and shape objects&amp;lt;/b&amp;gt;. Path effects affect the path data of an object but not its style. The original path is preserved and can be edited directly on-canvas, and the path effect applied to it will be updated live. &lt;br /&gt;
&lt;br /&gt;
In this version, we include several path effects that are analogous to the corresponding extension effects (such as Path along Path effect and Pattern along Path that replaces the extension of the same name). The most important advantage of path effects is that they are, indeed, live - you can still edit the original path and the effect will update in real time (unlike the extension effects which were one-time one-way transformations). In the future, we plan to reimplement most if not all of path-changing extensions as live path effects.&lt;br /&gt;
&lt;br /&gt;
Live path effects were developed by Johan Engelen as part of the GSoC 2007.&lt;br /&gt;
&lt;br /&gt;
==Details about operation==&lt;br /&gt;
The following schematic tries to explain how LPE work.&lt;br /&gt;
&lt;br /&gt;
    original style  ------------&amp;gt;  output style&lt;br /&gt;
    original path   --&amp;gt;  LPE  --&amp;gt;  output path&lt;br /&gt;
                          ^&lt;br /&gt;
                          |&lt;br /&gt;
                      parameters&lt;br /&gt;
&lt;br /&gt;
The original style and path are from the path that the effect is applied on. The output is what is visible on screen. What is very important to notice is that &amp;lt;b&amp;gt;output style equals original style&amp;lt;/b&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The parameters can be paths, numbers, points, text, in principle anything.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Applying effects==&lt;br /&gt;
Path effects are applied through the Path Effects dialog (opened from the Path menu, or by pressing Ctrl+Shift+7. This dialog is also used for controlling the effect's parameters and for removing effects.&lt;br /&gt;
&lt;br /&gt;
When a path with a path effect applied is selected, the statusbar description mentions that, for example &amp;quot;'''Path''' (4 nodes, path effect)&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
There is a special Paste Path Effect command (Ctrl+7) that can be used to copy effects from one path to another.&lt;br /&gt;
&lt;br /&gt;
==Editing effect parameters==&lt;br /&gt;
When switching to the node edit tool (&amp;lt;b&amp;gt;F2&amp;lt;/b&amp;gt;), the &amp;lt;b&amp;gt;original path&amp;lt;/b&amp;gt; can be edited. The original path is shown as a red helper path. Normal path operations, like simplify, still work.&lt;br /&gt;
&lt;br /&gt;
Some parameters of effects can be edited on-canvas. For example, path parameters can be node-edited, by pressing the &amp;quot;edit on-canvas&amp;quot; button in the Path Effects dialog. &amp;lt;b&amp;gt;Press &amp;quot;7&amp;quot; to cycle through the different on-canvas editable parameters.&amp;lt;/b&amp;gt; This way, one can edit the parameters without opening the Path Effects dialog. The statusbar tells the name of the parameters that is currently being shown.&lt;br /&gt;
&lt;br /&gt;
==Available effects==&lt;br /&gt;
&lt;br /&gt;
===Path along path===&lt;br /&gt;
The &amp;lt;b&amp;gt;Path along Path&amp;lt;/b&amp;gt; effect can curve a path along another path. When this effect is applied to a path, it can be bend along another path (called ''bend path''). With the node edit tool, both the original path and the bend path can be changed &amp;lt;b&amp;gt;on-canvas&amp;lt;/b&amp;gt; and the result is &amp;lt;b&amp;gt;updated live&amp;lt;/b&amp;gt;. This provides a direct equivalent of &amp;quot;vector brushes&amp;quot; or &amp;quot;skeletal strokes&amp;quot; features in other vector editors. &lt;br /&gt;
&lt;br /&gt;
In the effect's control panel in the Path Effects dialog, you can select how many copies of the original path are put along the bend path (either '''single''' or '''repeated''') and whether it is '''stretched''' to fill the bend path. In this dialog you'll also find a button to edit the bend path on-canvas and a button to '''paste''' a new bend path from clipboard. A possible workflow is this: you select and copy the new bend path to the clipboard, then select the path you want to bend, apply the Path along path effect, and paste the bend path with the paste button next to 'bend path'.&lt;br /&gt;
&lt;br /&gt;
Example file: live-path-effects-pathalongpath.svg&lt;br /&gt;
&lt;br /&gt;
===Pattern along path===&lt;br /&gt;
The &amp;lt;b&amp;gt;Pattern along Path&amp;lt;/b&amp;gt; effect can curve a path along another path. When this effect is applied to path A (called ''skeleton''), another path B (called ''pattern'') can then be passed as a parameter. The result is that path B is bent along path A. With the node edit tool, path A can be changed &amp;lt;b&amp;gt;on-canvas&amp;lt;/b&amp;gt; and the result is &amp;lt;b&amp;gt;updated live&amp;lt;/b&amp;gt;. This provides a direct equivalent of &amp;quot;vector brushes&amp;quot; or &amp;quot;skeletal strokes&amp;quot; features in other vector editors. &lt;br /&gt;
&lt;br /&gt;
In the effect's control panel in the Path Effects dialog, you can select how many copies of the pattern are attached (either '''single''' or '''repeated''') and whether the pattern is '''stretched''' to fill the skeleton path. You can also choose the pattern for the selected skeleton [either directly or] by '''pasting''' it from clipboard (that is, you select and copy to the clipboard the pattern, then select the skeleton, apply the Path along path effect, and paste the pattern). The '''Scale width''' parameter allows you to change the width of the pattern applied to the path.&lt;br /&gt;
&lt;br /&gt;
Example file: live-path-effects-pathalongpath.svg&lt;br /&gt;
&lt;br /&gt;
===Stitch Subcurves===&lt;br /&gt;
The &amp;lt;b&amp;gt;Stitch Subcurves&amp;lt;/b&amp;gt; effect connects points from two subpaths of the path with straight line or curved segments, i.e. the &amp;lt;i&amp;gt;stitches&amp;lt;/i&amp;gt;. It looks a lot like the Effect Lines from Expression 3. The result is also referred to as &amp;quot;String Art&amp;quot;. For some examples of string art, see http://members.shaw.ca/jillbritton/string_art/jbstringart.htm. &lt;br /&gt;
&lt;br /&gt;
The &amp;lt;b&amp;gt;shape&amp;lt;/b&amp;gt; of the &amp;lt;b&amp;gt;connecting paths&amp;lt;/b&amp;gt; can controlled by the &amp;lt;b&amp;gt;stroke path&amp;lt;/b&amp;gt; parameter. This could be used to draw 'hair-shaped' connecting paths with sharp end-tips. Other controls include the &amp;lt;b&amp;gt;number of paths&amp;lt;/b&amp;gt;, the variation in spacing between the connecting paths (&amp;lt;b&amp;gt;clustering&amp;lt;/b&amp;gt;) and also whether the start and end points of the stitches should like exactly on the original subcurves or can &amp;lt;b&amp;gt;stray randomly&amp;lt;/b&amp;gt; around them. Finally the width of the stroke path can be varied.&lt;br /&gt;
&lt;br /&gt;
Note that this effect can only be applied to a path with two subpaths in it, hence '&amp;lt;b&amp;gt;sub&amp;lt;/b&amp;gt;curve' in the name. Use Path &amp;gt; Combine to create such a path from two separate paths.&lt;br /&gt;
&lt;br /&gt;
Example file: live-path-effects-curvestitch.svg&lt;br /&gt;
&lt;br /&gt;
Example file showing cooperation between Stitch Subcurves and Path along Path:  live-path-effects-curvestitch-hair.svg&lt;br /&gt;
&lt;br /&gt;
===Gears===&lt;br /&gt;
The &amp;lt;b&amp;gt;Gears&amp;lt;/b&amp;gt; effect is a toy effect. It generates a chain of interconnected gears from the path that has the effect applied to it. The nodes of the path define the centers of the gears. The first 3 nodes are special; the first defines the start angle of the chain, the second defines the center of the first gear and the third knot specifies the radius of the first gear. That is, to create a chain of 2 gears, you will need a path with 4 nodes; for 3 gears, 5 nodes, and so on. &lt;br /&gt;
&lt;br /&gt;
Example file: live-path-effects-gears.svg&lt;br /&gt;
&lt;br /&gt;
==Development of new effects==&lt;br /&gt;
One of the goals of the Summer of Code project was to make it easy to create new effects. There is a framework that greatly simplifies effect implementation; very little code is needed to get the effect hooked into Inkscape. This leaves valuable time for the actual effect to be implemented. See the http://wiki.inkscape.org/wiki/index.php/MakingLivePathEffects wiki page for an explanation of how to get started with your own effect!&lt;br /&gt;
&lt;br /&gt;
[johan]&lt;br /&gt;
&lt;br /&gt;
=Extension effects=&lt;br /&gt;
&lt;br /&gt;
== Live preview ==&lt;br /&gt;
&lt;br /&gt;
* '''Live preview of effects''': Using the async behavior (see below), as soon as the parameters dialog for an effect is shown, the script is executed in the background and the screen updates as soon as it's finished.  This can result is seemingly faster execution if no parameters are changed.  If some parameters are adjusted, the script is restarted. This allows you to see immediately the effects of any  parameter change without pressing the OK button on the effect's dialog.&lt;br /&gt;
&lt;br /&gt;
* '''Spawn Glib API''': Scripting extension have been moved to the Glib spawn API to ensure that parameters and variables aren't interpreted by a shell.  This also means that scripting extensions are executed in a separate process asynchronously allowing the GTK main loop to continue to execute.&lt;br /&gt;
&lt;br /&gt;
* '''Progress dialog''': While an extension is working on a document, a small dialog is shown allowing the user to cancel the execution.&lt;br /&gt;
&lt;br /&gt;
== New and improved effects ==&lt;br /&gt;
&lt;br /&gt;
* The new '''Modify Path &amp;gt; Edge 3D''' extension creates black, grey and white paths around a shape, then blurs and clips them for a 3D effect.&lt;br /&gt;
&lt;br /&gt;
* The new '''Render &amp;gt; Barcode''' extension creates a [http://en.wikipedia.org/wiki/Barcode barcode]. Supported types include EAN13, EAN8, UPC-A, UPC-E, UPC-5, Code39, Code39Ext, Code93, Code128, and RM4SCC. &lt;br /&gt;
&lt;br /&gt;
* The new '''Render &amp;gt; Gear''' extension creates a [http://en.wikipedia.org/wiki/Gear mechanical gear] given the number of teeth, the circular pitch (in px units), and the pressure angle.&lt;br /&gt;
&lt;br /&gt;
* The new '''Render &amp;gt; [[Spirograph]]''' extension creates intricate mathematical curves akin to the classic [http://en.wikipedia.org/wiki/Spirograph mechanical Spirograph toy] (see [http://wiki.inkscape.org/wiki/images/Spirograph_Samples.svg samples]).&lt;br /&gt;
&lt;br /&gt;
* A group of new effects in the '''Text''' submenu performs various case conversions on selected text objects: converting to UPPERCASE, lowercase, Sentence case, Title Case, as well as flipping case (switching uppercase to lowercase and vice versa) and rANdoMiZInG cAse. If no texts are selected, the effect works on all texts in the document.&lt;br /&gt;
&lt;br /&gt;
* Another effect in the Text submenu, '''Replace text''', performs search-and-replace on the selected text objects or (if nothing is selected) on all texts in the document. Searching is case sensitive. You can use this effect to globally delete all occurrences of some text fragment by replacing it with empty string. Conversely, if you search for an empty string and replace it with some string, this string will be inserted after every character of your text; for example, you can space out a text by replacing in it an empty string with a single space. &lt;br /&gt;
&lt;br /&gt;
* A new effect, '''Replace color''' in the Color submenu, simply replaces one RRGGBB-specified color to another within selection or, if there's no selection, in the entire document. As with other effects in that submenu, the replacement affects fill, stroke, and gradient colors, but not colors of bitmaps.&lt;br /&gt;
&lt;br /&gt;
*The new '''Color &amp;gt; Randomize''' extension allows you to change the color via hue, saturation and lightness check boxes. This is useful if you want to colorize lots of shapes at the same time.&lt;br /&gt;
&lt;br /&gt;
*The '''Whirl''' extension uses the center of view as the center of whirl, so you don't have to enter the center coordinates numerically.&lt;br /&gt;
&lt;br /&gt;
*The '''Render &amp;gt; Grid''' extension has got an extended range of grid spacings, from 0.1 to 1000 px.&lt;br /&gt;
&lt;br /&gt;
*The '''Render &amp;gt; Function Plotter''' extension can now plot using polar coordinates.&lt;br /&gt;
&lt;br /&gt;
*The '''Generate Template &amp;gt; Perfect-Bound Cover''' extension creates templates for wraparound covers for perfect-bound books using US size and paper weight measurements.   This extension will resize the document to include the width, height, spine width, and bleed measurements that are provided to the extensions, so it should be the first operation done before designing.&lt;br /&gt;
&lt;br /&gt;
== XSLT effects ==&lt;br /&gt;
&lt;br /&gt;
* '''XSLT''' is now supported for input, output and effect extensions.  This is used to support the XAML file format (both import and export) and the Adobe Illustrator SVG import which removes Adobe's stuff from SVG.&lt;br /&gt;
&lt;br /&gt;
== ImageMagick effects ==&lt;br /&gt;
&lt;br /&gt;
New raster operations available through the effects drop-down menu, powered by the ImageMagick library. For any of these effects to work, you need to have an '''image object selected''' in the drawing. &lt;br /&gt;
&lt;br /&gt;
* '''Adaptive Threshold''' applies adaptive thresholding to the bitmap. Average color of rectangle provided by '''width''' and '''height''' used as threshold value. Use '''offset''' to apply a different threshold than the average.&lt;br /&gt;
&lt;br /&gt;
* '''Add Noise''' adds random noise of certain types to the bitmap.&lt;br /&gt;
&lt;br /&gt;
* '''Blur''' blurs the bitmap, using '''radius''' as the amount of blur. Higher radius means more blur. (Note that unlike the vector Gaussian blur of objects, this bitmap blur will not extend the edges of the image, so it may appear truncated at the edges.)&lt;br /&gt;
&lt;br /&gt;
* '''Channel''' extracts the specified channel from the bitmap.&lt;br /&gt;
&lt;br /&gt;
* '''Charcoal''' applies a charcoal drawing style to a bitmap. Radius controls the width (or detail) of charcoal strokes. Higher '''radius''' means lower detail. '''Sigma''': the higher it is, the less defined the charcoal is.&lt;br /&gt;
&lt;br /&gt;
* '''Colorize''' overlays the bitmap with a given color at a given intensity.&lt;br /&gt;
&lt;br /&gt;
* '''Contrast''' lightly enhances the contrast (difference between lights and darks) of a bitmap.&lt;br /&gt;
&lt;br /&gt;
* '''Cycle Colormap''' cycles the colormap of a bitmap.&lt;br /&gt;
&lt;br /&gt;
* '''Despeckle''' reduce the speckle noise in a bitmap.&lt;br /&gt;
&lt;br /&gt;
* '''Edge''' hilights edges in a bitmap.&lt;br /&gt;
&lt;br /&gt;
* '''Emboss''' embosses a bitmap, hilighting edges with 3D effect.&lt;br /&gt;
&lt;br /&gt;
* '''Enhance''' enhance a bitmap, minimizing noise.&lt;br /&gt;
&lt;br /&gt;
* '''Equalize''' equalizes a bitmap. Histogram equalization.&lt;br /&gt;
&lt;br /&gt;
* '''Flop''' mirrors a bitmap, reflecting each scanline in the horizontal direction.&lt;br /&gt;
&lt;br /&gt;
* '''Gaussian Blur''' blurs a bitmap, more strongly than regular blur.&lt;br /&gt;
&lt;br /&gt;
* '''Implode''' sucks everything towards the center of the bitmap.&lt;br /&gt;
&lt;br /&gt;
* '''Level''' scales values falling between the given '''Black Point''' to '''White Point''' range to the full color range.&lt;br /&gt;
&lt;br /&gt;
* '''Level Channel''' acts the same way as level but for only one channel.&lt;br /&gt;
&lt;br /&gt;
* '''Median Filter''' filters a a bitmap by replacing each pixel component with the median color in a circular neighborhood&lt;br /&gt;
&lt;br /&gt;
* '''Modulate''' adjusts the percent hue, saturation, and brightness of a bitmap.&lt;br /&gt;
&lt;br /&gt;
* '''Negate''' takes the inverse of a bitmap.&lt;br /&gt;
&lt;br /&gt;
* '''Normalize''' normalizes a bitmap, expanding color range to the full possible range of color.&lt;br /&gt;
&lt;br /&gt;
* '''Oil Paint''' stylizes a bitmap so that it appears to be painted with oils.&lt;br /&gt;
&lt;br /&gt;
* '''Opacity''' modifies the opacity channel of a bitmap.&lt;br /&gt;
&lt;br /&gt;
* '''Raise''' alters the lightness of the edges of a bitmap to create a raised appearance, much like a frame.&lt;br /&gt;
&lt;br /&gt;
* '''Reduce Noise''' reduces noise in a bitmap by using a noise peak elimination filter.&lt;br /&gt;
&lt;br /&gt;
* '''Shade''' shades a bitmap by simulating a distant light source&lt;br /&gt;
&lt;br /&gt;
* '''Sharpen''' sharpens a bitmap.&lt;br /&gt;
&lt;br /&gt;
* '''Solarize''' solarizes a bitmap, like overexposing photographic film.&lt;br /&gt;
&lt;br /&gt;
* '''Spread''' randomly spread pixels in a bitmap within the radius of '''amount'''.&lt;br /&gt;
&lt;br /&gt;
* '''Swirl''' swirls the bitmap around the center point.&lt;br /&gt;
&lt;br /&gt;
* '''Threshold''' thresholds a bitmap.&lt;br /&gt;
&lt;br /&gt;
* '''Unsharpmask''' sharpens a bitmap using an unsharp mask algorithm.&lt;br /&gt;
&lt;br /&gt;
* '''Wave''' alters a bitmap along the sine wave.&lt;br /&gt;
&lt;br /&gt;
These effects are part of the Google Summer of Code 2007, coded by Christopher Brown.&lt;br /&gt;
&lt;br /&gt;
== Misc ==&lt;br /&gt;
&lt;br /&gt;
* All Python effects are switched from the old and unmaintained PyXML library to the new powerful [http://codespeak.net/lxml/ lxml] library.&lt;br /&gt;
&lt;br /&gt;
* A new parameter, '''precision''' is added to the parameter definitions in the [[MakingAnINX|inx file format]], allowing you to set the number of digits in that parameter's spinbutton in the effect UI.&lt;br /&gt;
&lt;br /&gt;
= Stock patterns =&lt;br /&gt;
&lt;br /&gt;
Since a few versions ago, Inkscape supports patterns in fill and stroke. However, up to now the only way to apply a pattern was by creating it in the document using the Object(s) to Pattern command, which wasn't very convenient. Now, if you switch an object's fill or stroke to pattern using the Fill&amp;amp;Stroke dialog, you will get a drop-down list with a number of predefined '''stock patterns''' that you can apply simply by selecting them from the list:&lt;br /&gt;
&lt;br /&gt;
*A selection of plain '''stripes''' differing by the ratio of the stripe width to gap width (for example, the &amp;quot;Stripes 1:2&amp;quot; pattern has gaps twice as wide as stripes), in the range from 4:1 to 1:64. All stripes patterns are in two versions: with black stripes and with white stripes (gaps are always transparent).&lt;br /&gt;
&lt;br /&gt;
*Two '''checkerboard''' patterns with black and white odd squares (even squares are transparent)&lt;br /&gt;
&lt;br /&gt;
*'''Packed circles''': a hexagonal pattern of black circles with transparent gaps.&lt;br /&gt;
&lt;br /&gt;
*'''Polka dots''': a scattering of dots designed to look randomly but evenly distributed so as to mask the regularity of the repeating pattern. There are three size variants of this pattern (small, medium, and large dots) and two color variants (black and white dots).&lt;br /&gt;
&lt;br /&gt;
*'''Wavy''' is a pattern of wavy lines.&lt;br /&gt;
&lt;br /&gt;
*'''Camouflage''' is a green-toned protective pattern such as that used by the military.&lt;br /&gt;
&lt;br /&gt;
*'''Ermine''' is the traditional heraldic pattern representing stylized stoat furs with black tails.&lt;br /&gt;
&lt;br /&gt;
*Three bitmap patterns: '''sand''', '''cloth''', and '''old paint''' are based on seamless photographic tiles and allow you to add some natural texture to your drawing. All of them are grayscale, so you can make objects with these textures semitransparent and overlay them over other colored objects to &amp;quot;texturize&amp;quot; them. &lt;br /&gt;
&lt;br /&gt;
After applying a stock pattern, switch to Node tool to edit the location, scale, and rotation of the pattern via on-canvas handles.&lt;br /&gt;
&lt;br /&gt;
All stock patterns are stored in the file &amp;lt;code&amp;gt;patterns/patterns.svg&amp;lt;/code&amp;gt; in Inkscape's &amp;lt;code&amp;gt;share&amp;lt;/code&amp;gt; directory (typically &amp;lt;code&amp;gt;/usr/share/inkscape&amp;lt;/code&amp;gt; on Linux, &amp;lt;code&amp;gt;&amp;lt;i&amp;gt;inkscape-dir&amp;lt;/i&amp;gt;/share&amp;lt;/code&amp;gt; on Windows). You can add your own patterns to this file or replace it with any other SVG file containing the patterns you need.&lt;br /&gt;
&lt;br /&gt;
=Color management=&lt;br /&gt;
&lt;br /&gt;
== Calibrated SVG color including CMYK ==&lt;br /&gt;
&lt;br /&gt;
Inkscape now supports color-managed color definitions that use a colorspace other than sRGB (for example Adobe RGB, or calibrated CMYK colors). In the SVG file, this is done using the&lt;br /&gt;
optional &amp;quot;icc-color(...)&amp;quot; paint components as described in section 11.2 &amp;quot;Specifying paint&amp;quot; of the SVG 1.1 specification&lt;br /&gt;
[http://www.w3.org/TR/SVG11/painting.html#SpecifyingPaint]. A fallback sRGB value will be used, for non color-managed workflows. This allows for the use of calibrated color spaces, including using CMYK values that are preserved across applications.&lt;br /&gt;
&lt;br /&gt;
The new CMS color selector tab allows these colors to be edited.&lt;br /&gt;
&lt;br /&gt;
== Display adjustment ==&lt;br /&gt;
&lt;br /&gt;
In Inkscape Preferences, Color Management tab, there's are new options for enabling display adjustment; you can select any calibration profile (an ICC file) suitable for your display. Options for rendering intent can also be chosen.&lt;br /&gt;
&lt;br /&gt;
=== Per-window adjustment ===&lt;br /&gt;
Display adjustment is enabled and disabled per each editing window. This allows for simultaneous viewing of adjusted and unadjusted views of a single document by using multiple windows. There is a toggle at the bottom-right corner of the scrollbars that allows for turning on and off display adjustment. It also will be disabled to provide visible feedback when no profile is set to be available for adjustment.&lt;br /&gt;
&lt;br /&gt;
=== XICC Support ===&lt;br /&gt;
On X11-based systems (i.e. Unix and Mac OSX), use of [[http://www.burtonini.com/computing/x-icc-profiles-spec-latest.html ICC Profiles In X Specification]] (or XICC) can be enabled. Support for version 0.2 of this specification has been implemented. Enabling this option by choosing to retrieve profiles from the display will switch Inkscape to using profiles attached to screens at runtime. These allow display adjustment to be changed on the fly, and to be set and cleared per-monitor. This is especially helpful with more than a single monitor.&lt;br /&gt;
&lt;br /&gt;
Other Open Source software such as [http://www.gimp.org/ GIMP] support XICC. This allows all aware applications to be adjusted by setting a profile only once.&lt;br /&gt;
&lt;br /&gt;
=== Multi-monitor aware ===&lt;br /&gt;
When XICC support is enabled, windows will adjust to the proper profile as they are moved across monitors. Also, as the windows are moved onto monitors with no profile attached, the adjustment toggle will become disabled. When the windows are moved onto screens that do have profiles, the toggle will become enabled.&lt;br /&gt;
&lt;br /&gt;
== Soft Proofing ==&lt;br /&gt;
&lt;br /&gt;
In Inkscape Preferences, Color Management tab, there's a new option for enabling output device preview; you can select any calibration profile (an ICC file) suitable for your output device. Options for rendering intent can also be chosen, along with out of gamut warnings.&lt;br /&gt;
&lt;br /&gt;
=Snapping=&lt;br /&gt;
&lt;br /&gt;
* Snapping has been implemented or improved for:&lt;br /&gt;
&lt;br /&gt;
:* '''Newly created shapes'''&lt;br /&gt;
&lt;br /&gt;
:* '''Skewing''' of objects&lt;br /&gt;
&lt;br /&gt;
:* '''Handles''' of objects, incl. '''gradients'''&lt;br /&gt;
&lt;br /&gt;
:* '''Images''' and '''clones'''&lt;br /&gt;
&lt;br /&gt;
:* Text boxes, which snap to '''text baselines''' again&lt;br /&gt;
&lt;br /&gt;
:* Objects, for which snapping now optionally considers the '''rotation center'''&lt;br /&gt;
&lt;br /&gt;
:* Objects, which now allow for '''constrained snapping'''&lt;br /&gt;
&lt;br /&gt;
:* '''Guides''', which now snap while dragging them&lt;br /&gt;
&lt;br /&gt;
:* '''Axonometric grids'''&lt;br /&gt;
&lt;br /&gt;
:* '''Angled guide lines'''&lt;br /&gt;
&lt;br /&gt;
:* '''Bounding boxes''', of which now all four corners snap&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Other snapping fixes and improvements include:&lt;br /&gt;
&lt;br /&gt;
:* It is now possible to snap to '''intersections''' of e.g. gridlines with guidelines, and of line segments. &lt;br /&gt;
&lt;br /&gt;
:* The '''snapping preferences dialog''' has been restyled to make it more intuitive. &lt;br /&gt;
&lt;br /&gt;
:* Inkscape now has a global snapping toggle, which has been added to the view-menu and is accessible through a shortcut&lt;br /&gt;
&lt;br /&gt;
:* Inkscape now allows for controlling the snapping per grid when multiple grids are being used&lt;br /&gt;
&lt;br /&gt;
:* Snapping distance is now set in screen pixels and is therefore '''independent of zoom'''. &lt;br /&gt;
&lt;br /&gt;
:* Snapping of objects has been made more clean, by only snapping '''bounding box corners to bounding boxes''', and '''nodes to other nodes and paths'''.&lt;br /&gt;
&lt;br /&gt;
:* The time it takes to snap to objects using the selector tool has been reduced significantly.&lt;br /&gt;
&lt;br /&gt;
:* The bug where &amp;quot;node-to-node&amp;quot; snapping caused jerky movement of nodes is fixed.&lt;br /&gt;
&lt;br /&gt;
:* The '''aspect ratio''' is correctly preserved while scaling objects with snapping turned on.&lt;br /&gt;
&lt;br /&gt;
:* Only nodes at '''non-smooth parts''' of a path now snap.&lt;br /&gt;
&lt;br /&gt;
:* The confusing &amp;quot;Default transformations origin&amp;quot; option has been removed. Now Inkscape always uses the opposite edge of the object's bounding box as the '''transformation origin''' (though the bounding box itself can now be different, see next item).&lt;br /&gt;
&lt;br /&gt;
:* A new preference option has been added to specify the kind of bounding box to be used for transforming objects (see Inkscape Preferences, Tools, Selector). You can choose between the '''visual bounding box''' (which takes into account the stroke width, markers, and blur margins; this is the default behavior) or '''geometric bounding box''' (which encloses only the path itself, disregarding stroke width).&lt;br /&gt;
&lt;br /&gt;
=Grids=&lt;br /&gt;
Grids have undergone some big changes under-the-hood. These are the visible changes:&lt;br /&gt;
* There is a &amp;lt;b&amp;gt;new 3D/axonometric grid&amp;lt;/b&amp;gt;!&lt;br /&gt;
* A new tab in the document properties dialog, solely meant for grids; the former grid/guide tab is now solely for guides. I envision a list of guides there in the future, for easier deletion of guides etc.&lt;br /&gt;
* More than one grid can be active at the same time&lt;br /&gt;
** Each grid can be enabled/disabled separately from the document properties dialog.&lt;br /&gt;
* One can make grids invisible by unchecking the &amp;quot;Visible&amp;quot; checkbox in the grid's tab in the document properties dialog. Snapping is still enabled even for invisible grids!&lt;br /&gt;
* Multiple views on the same document share the same grids, but the grid can be turned off for each view separately. For example: one could have an overview view without grids showing. Duplicate that window and zoom in on some detail; then grids can be shown only for that view, and snapping will only happen in those views for which grids are enabled. (sorry i am not able to explain more clearly, perhaps someone else can?)&lt;br /&gt;
* Grid information is now stored in SVG as a child of sodipodi:namedview. Old files will be converted to this new format automatically&lt;br /&gt;
* The rectangular grid now has an option to show dots on gridline intersections instead of solid lines&lt;br /&gt;
&lt;br /&gt;
From developer perspective:&lt;br /&gt;
&lt;br /&gt;
* Implementation of new grids is much easier now; subclassing CanvasGrid and adding an entry in the is enough. Have a peek at how the rectangular grid is implemented (CanvasXYGrid).&lt;br /&gt;
* Note that there is no longer &amp;quot;the grid&amp;quot;, there might be several grids active now!&lt;br /&gt;
&lt;br /&gt;
A side effect of removal of old gridcode: apparantly the origin of the desktop rules used to be set to the origin of the grid. I find this strange: specifying a grid origin of (2,2) would have me think the origin would be at ruler location (2,2) instead of (0,0) as it is in 0.45.1.&lt;br /&gt;
I have commented the grid-origin correction to the ruler range, because now there is not a single grid anymore to correct it for. Isn't there a control somewhere to define the documents origin? Now the ruler origin is set to (0,0)&lt;br /&gt;
&lt;br /&gt;
--johan&lt;br /&gt;
&lt;br /&gt;
=Angled guidelines=&lt;br /&gt;
&lt;br /&gt;
Now, Inkscape also provides angled guidelines! Double click on a guide to set its angle.&lt;br /&gt;
&lt;br /&gt;
*  When dragging a guideline off the rulers close to the edge, the guideline will automatically be angled. The angle is set depending on the grid.&lt;br /&gt;
** For the rectangular grid, the angle is 45 degrees.&lt;br /&gt;
** For the axonometric grid, the angle is matched to the grid. When the Ctrl-key is pressed, the angle is perpendicular to the grid lines (useful for aligning gradients).&lt;br /&gt;
&lt;br /&gt;
=Import/Export=&lt;br /&gt;
&lt;br /&gt;
==PDF and AI import==&lt;br /&gt;
&lt;br /&gt;
In this version, Inkscape can natively (i.e. without any additional software) import PDF files and the newer PDF-based Adobe Illustrator files (starting from AI version 9.0). &lt;br /&gt;
&lt;br /&gt;
'''Implemented features''': The new import extension can import '''paths''', '''text''', '''clippaths''', '''masked or non-masked images''', and '''softmasks'''. It supports '''pattern fills''' (XStep and YStep attributes are ignored) as well as '''linear and radial gradients''' (only those using sampled or exponential functions). '''Gradient meshes''' are imported, but they get converted to groups of small tiles (flat-colored paths) that approximate the mesh; the user can adjust the precision of this approximation. &lt;br /&gt;
&lt;br /&gt;
'''PDF import settings''': After opening a PDF or AI document, the PDF Import Settings dialog shows up. Here you can select:&lt;br /&gt;
&lt;br /&gt;
* the '''page''' to be imported from a multipage PDF;&lt;br /&gt;
&lt;br /&gt;
* the overall '''clip region''' (which can be none or set to any of the PDF boxes, e.g. the crop box, the media box, the trim box, etc.);&lt;br /&gt;
&lt;br /&gt;
* the '''precision''' for the approximation of '''gradient meshes'''; note that setting this too high may result in a huge SVG file and slow performance when importing files with gradient meshes;&lt;br /&gt;
&lt;br /&gt;
* a checkbox controlling whether the '''images''' should be '''embedded''' into the resulting SVG document or saved on the current path;&lt;br /&gt;
&lt;br /&gt;
* a '''preview''' of the selected page (shown if poppler-cairo is present on the system or if the selected page has a thumbnail embedded into the PDF document).&lt;br /&gt;
&lt;br /&gt;
'''Text editing tips''': Any text imported from PDF or AI has each letter's precise place on the page ''fixed''. While this preserves the exact appearance (e.g. justification of text blocks) of the imported document, it makes editing such text difficult: deleting text fails to contract the text line and inserting text fails to expand it, i.e. typed letters overlay the existing letters. (However, you still can replace a letter with another letter of about the same width, although you may need to kern it into place with Alt+arrows.)&lt;br /&gt;
&lt;br /&gt;
To work around this, select the text object you want to edit and use '''Text &amp;gt; Remove manual kerns''' command. This will remove the exact positioning information, so if the text block was justified it will lose justification, but instead you will be able to edit it as usual. &lt;br /&gt;
&lt;br /&gt;
Note that there is a way to select even a single line in a text block. For this, open the XML editor, expand the &amp;lt;svg:text&amp;gt; tree branch corresponding to your text, and select any of the &amp;lt;svg:tspan&amp;gt; objects under it. Now you can remove manual kerns from this line only. After you finish editing the line, you can manually justify it back, for example by adding spaces, manual kerns (Alt+arrows), or by adjusting letterspacing (select the whole line and use Alt+&amp;gt; or Alt+&amp;lt;).&lt;br /&gt;
&lt;br /&gt;
The native PDF/AI importer is based on the poppler library and was implemented by Miklós Erdélyi as part of the Google Summer of Code 2007.&lt;br /&gt;
&lt;br /&gt;
==PDF export==&lt;br /&gt;
&lt;br /&gt;
* A new cairo-based PDF exporter has been added to Inkscape (marked as &amp;quot;Cairo PDF&amp;quot; in the export format list). Inkscape 0.46 can export shapes, strokes, transparency, gradients, patterns, text, and images correctly to cairo. While clipping paths and masks are known to be faulty or missing. Also, unlike the old PDF exporter, the cairo-based PDF export produces compressed PDF files that are reasonably compact. cairo will write a PDF with vector graphics when possible and fall back to raster graphics when needed. What can be exported as vectors and how much of the image will be rasterized when the fallback kicks in depends on your version of cairo. cairo version 1.2 with the pdf backend compiled in is the minimum requirement for any cairo-based PDF exports, but it is highly recommended to use at least '''cairo 1.5.2''' for quality PDF export.&lt;br /&gt;
&lt;br /&gt;
* A new cairo-based PostScript exporter has been added (marked as &amp;quot;Cairo PS&amp;quot; in the export format list). The cairo PS backend is not as mature as the PDF backend. It rasterizes a lot of its content. Text output does not work where it works with the PDF backend.&lt;br /&gt;
&lt;br /&gt;
==CDR (CorelDraw) import==&lt;br /&gt;
&lt;br /&gt;
Inkscape can use [http://www.sk1project.org/modules.php?name=Products&amp;amp;product=uniconvertor UniConvertor] if it's installed on your system to import documents in CDR format (CorelDraw). This feature is Unix-only at this time (since UniConvertor is Unix-only) and requires that you have Python and UniConvertor installed. As of UniConvertor 1.0rc2, only versions from 7 to X3 of the CDR format are supported, and text objects are not converted. &lt;br /&gt;
&lt;br /&gt;
==XAML import/export==&lt;br /&gt;
&lt;br /&gt;
* Inkscape can import vector graphics portions of XAML documents, as well as export its documents to XAML.&lt;br /&gt;
&lt;br /&gt;
==Adobe Illustrator SVG clean import==&lt;br /&gt;
&lt;br /&gt;
* Using this new import filter, Inkscape can open an SVG document removing any elements and attributes in the namespaces that Adobe Illustrator uses for its stuff.  This will clean out everything except the actual SVG content.&lt;br /&gt;
&lt;br /&gt;
==Bitmap export==&lt;br /&gt;
&lt;br /&gt;
* '''Batch export''': The Bitmap Export dialog (Ctrl+Shift+E) got a new checkbox, ''Batch export all selected objects''. This checkbox is available when two or more objects are selected. If it is checked, instead of exporting selection as a whole, Inkscape exports each selected object separately into its own PNG file. This uses each object's export hints (i.e. export filename and DPI) if they are remembered from a previous export; otherwise, the filename is created from the object ID and the DPI is 90 pixels per inch. '''Caution:''' Unlike regular export, batch export overwrites all existing PNG files without warning.&lt;br /&gt;
&lt;br /&gt;
:This makes it possible to implement all kinds of '''image slicing''' and automated export scenarios. For example, if you are working on a web site design, you can create a separate &amp;quot;export&amp;quot; layer. In that layer, &amp;quot;slice&amp;quot; your web page image into separate areas by creating invisible rectangles with no fill and no stroke. Select each rectangle (by Tab/Shift+Tab, or by switching to Outline mode where even an invisible rectangle can be selected by clicking on its outline) and export it into the corresponding filename (which gets saved as that object's export hint). After that, if you do any changes to your graphics, it's very easy to reexport all the slices: just switch to the &amp;quot;export&amp;quot; layer, select all in that layer (Ctrl+A), and export with the ''Batch export selected objects'' checkbox on.&lt;br /&gt;
&lt;br /&gt;
* '''Hide all except selected''': A new checkbox allows you to hide in the exported image everything except selected object(s).&lt;br /&gt;
&lt;br /&gt;
* The Export dialog automatically appends the '''.png''' extension to the export filename you specify.&lt;br /&gt;
&lt;br /&gt;
== Open Clip Art Library import and export ==&lt;br /&gt;
&lt;br /&gt;
{rejon}&lt;br /&gt;
&lt;br /&gt;
=Command line=&lt;br /&gt;
&lt;br /&gt;
Several new command line options are added that make Inkscape even more scriptable and automatable than before.&lt;br /&gt;
&lt;br /&gt;
* --verb-list will list all the Verb IDs and their names in Inkscape. This makes writing your own menus and hotkeys much easier as you can easily find out what the choices are.&lt;br /&gt;
&lt;br /&gt;
* --verb followed by a verb ID allows you to specify a verb to be called on every document opened by Inkscape initially from the command line.&lt;br /&gt;
&lt;br /&gt;
* --select followed by a node ID will allow you to add a node to the list of selected objects.&lt;br /&gt;
&lt;br /&gt;
* --query-all produces a comma delimited listing of all objects in the document, with their x, y, height, and width values.&lt;br /&gt;
&lt;br /&gt;
These options can be used, for example, for performance testing.  You could do something like this:&lt;br /&gt;
&lt;br /&gt;
 $ time inkscape --verb=FileClose my_complex_file.svg&lt;br /&gt;
&lt;br /&gt;
to measure the time it takes to load and display the file.&lt;br /&gt;
&lt;br /&gt;
Of course, with the ability to select objects, it can be much more useful than&lt;br /&gt;
that.  You can call extension effects, or any other verb, then FileSave and&lt;br /&gt;
FileClose to automate all kinds of operations on your drawings.&lt;br /&gt;
&lt;br /&gt;
=User interface=&lt;br /&gt;
&lt;br /&gt;
== [dockable dialogs - gustav] ==&lt;br /&gt;
&lt;br /&gt;
Inkscape's dialog handling has been reworked in this release to allow dialogs to behave like '''dockable panels'''. The dock area that holds the user's dialogs is located right of the canvas.&lt;br /&gt;
&lt;br /&gt;
Dialogs placed in the dock can easily be rearranged, resized, stacked in groups or iconified. Furthermore, a dialog can be dragged of the dock to become a floating dock in itself&amp;amp;mdash;this allows other dialogs to be dragged and dropped on it to form a floating group of dialogs.&lt;br /&gt;
&lt;br /&gt;
The old dialog behavior (used in releases before 0.46) has been preserved as an option, and if it is preferred, one can select it under ''Windows'' &amp;gt; ''Dialog behavior'' in the Inkscape preferences dialog.&lt;br /&gt;
&lt;br /&gt;
Known issues:&lt;br /&gt;
&lt;br /&gt;
* Some of Inkscape's dialogs are yet to be adapted to allow docking, these include the &amp;quot;Text and Font&amp;quot; dialog, the &amp;quot;Tiled clones&amp;quot; dialog, the &amp;quot;XML editor&amp;quot; and the &amp;quot;Object properties&amp;quot; dialog.&lt;br /&gt;
&lt;br /&gt;
* [Remembered positions of dockable floating dialogs is inexact.] &lt;br /&gt;
&lt;br /&gt;
[options]&lt;br /&gt;
&lt;br /&gt;
== [toolbars - [[JonCruz]]] ==&lt;br /&gt;
&lt;br /&gt;
'''Main toolbar''' on the left can now optionally use '''smaller buttons'''. With the several new tools added in this version, this may help users with small screens where the toolbar otherwise may not fit vertically. The toggle is on the Misc tab of the Inkscape Preferences dialog.&lt;br /&gt;
&lt;br /&gt;
[calligraphy: menus, tooltips; star; ...]&lt;br /&gt;
&lt;br /&gt;
Switched to stock GTK+ toolbars.&lt;br /&gt;
&lt;br /&gt;
Extra magic secret sauce added.&lt;br /&gt;
&lt;br /&gt;
== [filedialogs - [[JonCruz]]] ==&lt;br /&gt;
&lt;br /&gt;
== Swatches panel, color drag-and-drop ==&lt;br /&gt;
&lt;br /&gt;
* Right-clicking a color swatch now opens a context menu which allows you to apply the color to the fill or stroke of selection.&lt;br /&gt;
&lt;br /&gt;
* Dragging colors from the color palette has been fixed and improved:&lt;br /&gt;
&lt;br /&gt;
:* Now the dropped color is applied to '''the object on which you drop it''', regardless of whether that object is selected or not. This means you can change the color of only one object from selection without having to select it separately. (If you want to assign color to the entire selection, just click on the color swatch on the palette, not drag it.)&lt;br /&gt;
&lt;br /&gt;
:* If an object has stroke and you '''drop the color over stroke''', the color is applied to stroke and not fill. (Another way to always apply color to stroke is to '''Shift+drag''' it.)&lt;br /&gt;
&lt;br /&gt;
:* When gradient handles are active (e.g. in Gradient or Node tools), you can '''drop a color onto the gradient line''' to create a new gradient mid stop with this color, or '''drop a color onto an existing stop''' to recolor that stop.&lt;br /&gt;
&lt;br /&gt;
==Color gestures==&lt;br /&gt;
&lt;br /&gt;
A new method for quick and precise adjustment of colors is added in this version: color gestures. It works on the selected objects by grabbing the '''fill or stroke color swatch''' in the '''selected style indicator''' (on the left of the statusbar) and dragging it in various directions as described below. Note that this only works when the swatch displays a '''flat color'''; it does not work for a swatch showing &amp;quot;None&amp;quot;, &amp;quot;N/A&amp;quot;, or displaying a gradient (although you can select one or more gradient stops in Gradient tool and color-adjust them by color gestures just as you would do for objects). Color gestures can work on '''fill''' or '''stroke''', depending on which swatch in the selected color indicator you drag.&lt;br /&gt;
&lt;br /&gt;
Color gestures work in '''HSL''' color space. Dragging without any keyboard modifiers adjusts the '''hue''' channel, dragging with '''Shift''' adjusts '''saturation''', and dragging with '''Ctrl''' adjusts '''lightness'''.&lt;br /&gt;
&lt;br /&gt;
The adjustment is done by '''&amp;quot;rotating&amp;quot;''' the color swatch away from the original direction which is assumed to be '''NE at 45 degrees''' (i.e. from&lt;br /&gt;
the swatch diagonally into the document window). Once you click and drag the color swatch, imagine a diagonal line going from the point where you clicked in the NE direction, across the entire Inkscape window. By dragging '''below or to the right''' of that line, you decrease the corresponding color channel, to the minimum at the lower edge of the window; by dragging it above or to the left, you increase it, to the maximum at the left edge of the window. If you hover your mouse exactly over the 45 degrees line, the change will be zero.&lt;br /&gt;
&lt;br /&gt;
Note that you can easily vary the '''precision''' of your adjustment. If you drag close enough to the swatch, each small movement results in a big change of the color. If you need a finer adjustment, just drag farther away from the swatch, towards the center of the Inkscape window or even to its upper right corner, where minute movements will produce very small changes in the color. In fact, this method gives you more color precision than even the color wheel in the Fill and Stroke dialog, unless you expand that dialog to fill the entire screen which is rarely practical.&lt;br /&gt;
&lt;br /&gt;
The mouse '''cursor''' changes when you're doing color gestures, reflecting the channel currently adjusted and indicating the directions for increasing and decreasing the value. Also, watch the '''statusbar''' which will indicate, as you drag, the channel you are adjusting, the original value of that channel, the new value, and the difference. &lt;br /&gt;
&lt;br /&gt;
You can '''switch channels while you drag'''. That is, you don't need to &lt;br /&gt;
drag it again and again from the swatch if you want to adjust all three channels - you can do it all in one drag, by pressing and releasing Ctrl and Shift as necessary. Note that when you change the keyboard modifiers during drag, the position of the zero-change line is temporarily changed to go through the current mouse position; this is done so that there are no sudden changes in color if you are switching modifiers away from the original 45-degree line.&lt;br /&gt;
&lt;br /&gt;
The '''Alt''' modifier is special. Pressing Alt means &amp;quot;do nothing&amp;quot;; this allows you to move the mouse, without releasing, to a more convenient place from where to continue tweaking the color after letting go of Alt. As with the other modifiers, releasing Alt temporarily redefines the zero-change axis to go through the point where Alt was released. For example, imagine  you made your color darker by Ctrl+dragging towards the bottom edge of the window and you now need to make it less saturated. You cannot however Shift+drag it any lower because there's just not enough room for that. In that situation, without releasing the mouse, Alt+drag it upwards to a convenient spot and then Shift+drag downwards as needed. Also, you can start dragging from the swatch with Alt pressed to avoid changing the color while you take a more convenient position for adjustments.&lt;br /&gt;
&lt;br /&gt;
For example, you can select a green rectangle and first turn it into greenish-blue by dragging away from the Fill swatch and slightly above the 45 degrees line; then, without releasing the mouse, press Ctrl and drag a bit to the right to darken the color; then press Shift, release Ctrl, and adjust saturation. You can press or release Ctrl and Shift as many times as necessary during a single drag; when you are finally satisfied with your color, release the mouse to commit the change.&lt;br /&gt;
&lt;br /&gt;
Apart from precise adjustments, you can use color gestures to very quickly perform some common color transformations:&lt;br /&gt;
&lt;br /&gt;
* Ctrl+drag the swatch to the right and down to paint all selected objects black.&lt;br /&gt;
&lt;br /&gt;
* Ctrl+drag the swatch upwards and to the left to paint all selected objects white.&lt;br /&gt;
&lt;br /&gt;
* Shift+drag the swatch to the right and down to desaturate the color of selected objects.&lt;br /&gt;
&lt;br /&gt;
* Shift+drag the swatch upwards and to the left to maximize saturation of the color of selected objects. &lt;br /&gt;
&lt;br /&gt;
Note that when several objects or gradient stops with different colors are selected, the selected style indicator shows their '''averaged''' color. If you adjust that color by gesturing, the changed color will be assigned back to all selected objects/stops, in effect eliminating any difference between them. If you want to adjust many different-colored objects preserving their relative differences, use the color modes of the Tweak tool or color adjustment extension effects.&lt;br /&gt;
&lt;br /&gt;
This new technique requires some getting used to, but once you get the idea it is quite convenient, fast, and precise.&lt;br /&gt;
&lt;br /&gt;
== Print dialog integration == &lt;br /&gt;
&lt;br /&gt;
* '''Print Dialog''': The GTK Unix Print Dialog has been hooked up!  From the dialog, you can select any of the Postscript-capable printers known to your system and configure them as with any other GTK application.&lt;br /&gt;
&lt;br /&gt;
== Saving window geometry globally ==&lt;br /&gt;
&lt;br /&gt;
Previously, window geometry (size and position of document windows) could only be saved into the document (so that each document stored its own window geometry). Now, a new option is added to save the geometry of the last used window to the preferences and apply this geometry to all new windows.  Thus, with the &amp;quot;Save geometry to preferences&amp;quot; option enabled, new windows will open with the shape of the most recent previous window.  This mode also remembers and restores the maximized/fullscreen state (unlike geometry saved to documents).&lt;br /&gt;
&lt;br /&gt;
== Preserving zoom/view of reverted documents ==&lt;br /&gt;
&lt;br /&gt;
When reverting files to their previously saved state, the current zoom factor/panning is now retained (as opposed to reverted to the saved state, too, as it was the case before). This less interrupts the workflow when one is working on some detail in the drawing.&lt;br /&gt;
&lt;br /&gt;
== New ways to scroll and zoom ==&lt;br /&gt;
&lt;br /&gt;
* You can now enable Space+mouse drag to pan canvas, as it does in Adobe Illustrator. This mode is enabled by the '''Left mouse button pans when Space is pressed''' checkbox in the Scrolling tab of the Inksape Preferences dialog. By default it is off and pressing the spacebar key switches you to Selector and back, as it always did in Inkscape.&lt;br /&gt;
&lt;br /&gt;
* By default, rotating the mouse wheel scrolls the canvas vertically and Ctrl+wheel zooms in and out. Now, if you turn on the '''Mouse wheel zooms by default''' checkbox in the Scrolling tab of the Inksape Preferences dialog, this behavior is reversed: mouse wheel zooms without Ctrl and scrolls with Ctrl. This new mode should be familiar for users of AutoCAD and CorelDraw.&lt;br /&gt;
&lt;br /&gt;
* In the Zoom tool, right mouse button always zooms out instead of calling the context menu (which is rather useless in this tool anyway).&lt;br /&gt;
&lt;br /&gt;
== Using other keys in place of Alt ==&lt;br /&gt;
&lt;br /&gt;
* Many Linux users have found the use of '''Alt-drag''' and '''Alt+click''' in Inkscape problematical because this shortcut is often captured by window managers. In 0.46, instead of disabling of the window manager shortcut as suggested in [http://wiki.inkscape.org/wiki/index.php/FAQ#How_to_make_Alt.2Bclick_and_Alt.2Bdrag_work_on_Linux.3F the FAQ], you can change a setting in your preferences.xml file called &amp;lt;code&amp;gt;mapalt&amp;lt;/code&amp;gt; in the &amp;lt;code&amp;gt;options&amp;lt;/code&amp;gt; group. This numerical value ranges from 1 to 5; 1 indicates no change, any other value refers to some special key on a keyboard, such as '''Alt Gr''', the '''Windows''' key, etc. The specific mapping of these values to the keys on your keyboard can be viewed and/or editied by '''xkeycaps''', available from [http://www.jwz.org/xkeycaps www.jwz.org]. The value associated with a particular key is shown in that program at the top of the screen beside the word &amp;quot;Modifiers&amp;quot; when the mouse is held over a key on the main display.&lt;br /&gt;
&lt;br /&gt;
== GTK theme on OS X ==&lt;br /&gt;
&lt;br /&gt;
A GTK theme is now included in Inkscape.app bundle on OS X. If the user does not have any personal customization (e.g. in a .gtkrc-2.0 file) this theme is used. It reflects the OS X settings for &amp;quot;Appearance&amp;quot; and &amp;quot;Highlight Color&amp;quot; set in System Preferences &amp;gt; Appearance.&lt;br /&gt;
&lt;br /&gt;
=Other changes and improvements=&lt;br /&gt;
&lt;br /&gt;
* '''Gnome VFS Improvements''': Gnome VFS Non-Local files are now usable through all of our file choosers in Open, Save and Export. This compile-time option allowed people to open any Gnome-VFS-based URI from the command-line in the past, but not non-local resources (WebDAV, SFTP, etc) and this now allows for all the lovely possibilities Gnome-VFS provides.&lt;br /&gt;
&lt;br /&gt;
* In previous versions, Inkscape didn't allow you to '''group a single object.''' Yet in some cases, this operation is useful (for example, to blur the clipped edged of an object, or apply more than one clippath/mask to an object). Now this limitation is removed; just select any single object and group it to get a single-object group. &lt;br /&gt;
&lt;br /&gt;
* The somewhat cryptic &amp;quot;F:&amp;quot; and &amp;quot;S:&amp;quot; labels in the selected style indicator (at the left end of the statusbar) and in tool's style swatches are now spelled out as '''Fill:''' and '''Stroke:'''. We believe this makes the interface, even if less space-efficient, a bit more friendly for newbies.&lt;br /&gt;
&lt;br /&gt;
* The '''style swatches''' at the right end of object-creating tools' control bars now open the Preferences page of the corresponding tool when clicked. Also, now these swatches display a tooltip explaining its purpose (e.g. &amp;quot;Style of new rectangles&amp;quot;, &amp;quot;Style of new calligraphic strokes&amp;quot;, etc.)&lt;br /&gt;
&lt;br /&gt;
* On the '''Scale''' tab of the '''Transform dialog''', the numbers now show the current size of selection, not size increment as before. Correspondingly, with the % unit chosen, you see 100% displayed, and to scale it up twice, you enter 200%, not 100% as before. This is a more intuitive behavior and it's more consistent with how the W/H controls work in the Selector tool. &lt;br /&gt;
&lt;br /&gt;
* After dragging a curve segment in Node tool, Inkscape no longer selects the two adjacent nodes if they were not selected before. &lt;br /&gt;
&lt;br /&gt;
* The '''Tile Clones''' dialog now uses the object's defined '''rotation axis''' (which can be freely moved by Selector tool and which is saved separately for each object) for all rotations (including both symmetry rotations and the Rotation tab rotations), scales, and flips. This renders unnecessary the previous workarounds where you had to group an object with another transparent object to affect how it's rotated by the clone tiler. &lt;br /&gt;
&lt;br /&gt;
* The '''Shift''' tab of the '''Tile Clones''' dialog has two new options: '''Cumulate''': when checked, each tile is shifted by the normal amount plus the cumulative shifts of all previous tiles. This is useful when placing tiles that are being scaled by a uniform amount. '''Exlude tile''': when checked, the tile width or height is not automatically included in calculating the tile's shift. This is useful when using the dialog to place clones on a circle or spiral (rather than using a shift of -100%). It is also useful when positioning tiles using the '''Exponent''' parameter.&lt;br /&gt;
&lt;br /&gt;
* The '''Scale''' tab of the '''Tile Clones''' dialog has a new parameter: '''Base''' that allows placing tiles along a logarithmic spiral (as often found in nature). If the value is '''0''', the parameter is not used. Use a value less than one for a converging spiral and a value of greater than one for a diverging spiral. The actual scale is calculated as '''base''' raised to the nominal '''scale''' power.&lt;br /&gt;
&lt;br /&gt;
* In '''Pencil''' and '''Calligraphic''' tools, pressing '''Esc''' or '''Ctrl+Z''' while drawing cancels the currently drawn path or stroke. When not drawing, these keys work as before (Esc deselects, Ctrl+Z undoes last action). (This is the same behavior as in the Pen tool where it was introduced in a previous version.)&lt;br /&gt;
&lt;br /&gt;
* A set of new verbs has been added to allow the user to easily '''unlock all locked objects''' or '''unhide all hidden objects'''. There are two variants one that operates on the current layer and its children and one that operates globally. While searching for hidden or locked object descendants of locked layers are ignored.&lt;br /&gt;
&lt;br /&gt;
* Several more '''rotation snapping increments''' are available in the Steps tab of the Inkscape Preferences dialog: 36, 22.5, 18, 12, and 0.5 degrees. &lt;br /&gt;
&lt;br /&gt;
* The list of folder shortcuts in the '''Open''' dialog includes the folder with Inkscape's SVG '''examples''' for easy access. Similarly, the '''Save''' dialog has a shortcut for the user's own '''templates''' dialog making it easy to save the current document as a template (if saved as &amp;lt;code&amp;gt;default.svg&amp;lt;/code&amp;gt;, it will be loaded every time you run Inkscape or create new document with Ctrl+N; with any other name, it will be added to the File &amp;gt; New submenu).&lt;br /&gt;
&lt;br /&gt;
* For time-intensive operations such as Paint Bucket and Simplify, the system's busy wait cursor is displayed to indicate to the user that Inkscape is actively working, and not frozen.&lt;br /&gt;
&lt;br /&gt;
* Several improvements in '''inkview''': busy cursor is shown while loading file, the button window stays on top and responds to keyboard shortcuts; several memleaks stopped and bugs fixed. The &amp;quot;slideshow mode&amp;quot; of the main inkscape application (-s or --slideshow command line option) is removed; use inkview instead.&lt;br /&gt;
&lt;br /&gt;
* In Document Metadata dialog, updated '''Creative Commons Licenses''' to version '''3.0'''.&lt;br /&gt;
&lt;br /&gt;
* Preferences have been added for setting the default metadata and licenses, so this information can be automatically filled in with new documents.&lt;br /&gt;
&lt;br /&gt;
* The built-in '''Potrace''' tracing engine is upgraded to version '''1.8''' with some minor bugs fixed.&lt;br /&gt;
&lt;br /&gt;
* File dialog windows (open/save) now have an '''Enable preview''' checkbox which allows you to disable the preview pane.&lt;br /&gt;
&lt;br /&gt;
* In the Calligraphic pen controls, the toggle button to enable tablet pressure sensitivity is moved to the Width control, and the button for tilt sensitivity is moved to Angle, to better reflect what parameters these toggles affect.&lt;br /&gt;
&lt;br /&gt;
* In Node and Gradient tools, using '''Tab/Shift+Tab''' to select next/previous node or gradient handle scrolls the canvas if necessary to show the selection. &lt;br /&gt;
&lt;br /&gt;
* The option '''Import bitmap as &amp;lt;image&amp;gt;''' is removed; it was added several versions ago to allow optionally importing images as rectangles with image pattern, to make clipping the images easier. Now that you can easily use clipping paths, as well as convert any image to rectangle with pattern with Alt+I, this option is not really necessary and removed to reduce confusion. Bitmaps are always imported into SVG as an &amp;lt;image&amp;gt; element.&lt;br /&gt;
&lt;br /&gt;
* Support has been added for stock patterns, in the same way that stock markers were already supported. Adding patterns to share/patterns/patterns.svg, and giving them a inkscape-stockid attribute as found on the examples already there will make them available in all Inkscape sessions from the patterns tab of the fill &amp;amp; stroke dialog.&lt;br /&gt;
&lt;br /&gt;
* New '''fontforge_glyph.svg''' template is added for font designers who draw glyphs in Inkscape and import them into FontFoge. It is 1000x1000px large and has a horizontal guide at 200px to mark border for descenders.&lt;br /&gt;
&lt;br /&gt;
* Save dialogs have been modified to clarify that they '''Save as SVG''', so people using Inkscape to edit PDF, EPS, and other file formats will be less confused at the default behavior when saving files.&lt;br /&gt;
&lt;br /&gt;
* Add some new '''UML markers''', including filled and hollow diamonds and triangles.&lt;br /&gt;
&lt;br /&gt;
* Inkscape application bundle on OS X now has the possibility to contain pre-compiled python modules (e.g. lxml, numpy, etc.) and to use them without requiring any work from the user. Since Python itself is shipped with Mac OS X, the user only has to drag and drop Inkscape on its hard-drive and all the extensions will be functional immediately.&lt;br /&gt;
&lt;br /&gt;
=Notable bugfixes=&lt;br /&gt;
&lt;br /&gt;
These are bugfixes compared to 0.45.1; for a list of fixes in 0.45.1 compared to 0.45, see [[ReleaseNotes045|0.45.1 release notes]].&lt;br /&gt;
&lt;br /&gt;
* The '''sodipodi:docbase''' attribute is no longer added to the root &amp;lt;svg&amp;gt; element. This attribute used to keep the latest directory that the document was saved to, and thus represented a mild privacy violation (i.e., by sharing your Inkscape SVG files you allowed others to have a peek into your directory structure). Note, however, that Inkscape does not remove this attribute from old documents it opens; if you want you can remove it yourself. Inkscape just no longer creates this attribute in new documents.&lt;br /&gt;
&lt;br /&gt;
* A fix in the blur rendering code made '''exporting blurred objects to bitmap''' much faster and fixed the disappearing of blurred objects in exported bitmaps which happened for large objects in 0.45.  The same fix got rid of the rendering artefacts that sometimes appeared on blurred objects during scrolling. &lt;br /&gt;
&lt;br /&gt;
* Inkscape now properly quotes &amp;lt;code&amp;gt;font-family&amp;lt;/code&amp;gt; values and therefore can use '''fonts''' with various '''nonalphanumeric characters''' in their names, which previously failed. &lt;br /&gt;
&lt;br /&gt;
* If you have saved documents with a previous version of Inkscape which used '''right-to-left text''' (e.g. Arabic, Hebrew) then the paragraph alignment of non-flowed text has been reversed in this release. This is due to a bug in previous versions - the new behaviour is compliant with the SVG specification and compatible with other editors and viewers. To correct your images, simply reverse the paragraph alignment by selecting the text and clicking the appropriate button on the toolbar.&lt;br /&gt;
&lt;br /&gt;
* A large family of bugs was exterminated where an object's style could only refer other objects (such as gradients, patterns, and filters) that come after it in the document. Now any objects can be referenced from a style regardless of their place in the document. This fixed the '''disappearance of gradients/patterns/filters''' after you undo an effect, as well as lots of assorted crashes and misrenderings (mostly on non-Inkscape SVG files).&lt;br /&gt;
&lt;br /&gt;
* On Windows, '''file opening/saving dialogs''' can no longer sink under the main editor window (they now have the inkscape window set correctly as their parent window).&lt;br /&gt;
&lt;br /&gt;
* '''Stock markers''' now appear in the &amp;quot;recently used markers&amp;quot; section of the marker selector dropdowns in the Fill &amp;amp; Stroke dialog.  Before, any markers with stock id's (including markers modified by the user) were hidden, making it difficult to work with modified stock markers.&lt;br /&gt;
&lt;br /&gt;
* A regression in 0.45 caused crashes when '''undo or redo''' was attempted before the previous action could complete (e.g. pressing ctrl+z while you are still drawing a rectangle). This is now fixed.&lt;br /&gt;
&lt;br /&gt;
* Previously, if there was a single '''invalid property''' in a &amp;lt;code&amp;gt;style&amp;lt;/code&amp;gt; attribute, the entire attribute was discarded, i.e. the object lost all styling. Now Inkscape's behavior is more compliant to the CSS specification: it ignores only the invalid property but reads in all the rest.&lt;br /&gt;
&lt;br /&gt;
* Several bugs are fixed in '''searching for linked images'''. Now moving SVG documents with their associated images to a different place or a different machine should work more reliably. &lt;br /&gt;
&lt;br /&gt;
* Master opacity did not apply to stroke '''markers''' as it should; fixed.&lt;br /&gt;
&lt;br /&gt;
* '''Creative Commons Public Domain Declaration URI''' points to the right location now.&lt;br /&gt;
&lt;br /&gt;
* Text objects didn't display the '''pattern editing handles'''; fixed.&lt;br /&gt;
&lt;br /&gt;
* On Windows, the Inkscape uninstaller deleted all files under the install directory. This could lead to removing user-created files, or even other program files not related to inkscape if the install directory was C:\Program Files. The new uninstaller '''tracks all installed files and asks for confirmation before deleting any other files'''. However, installation and uninstallation process is now slower.&lt;br /&gt;
&lt;br /&gt;
* Clones were wrongly unlinked when their original was moved to another layer; fixed.&lt;br /&gt;
&lt;br /&gt;
* Previous versions had a problem on '''Windows Vista''' where selected menu item was invisible. Now our Windows builds use a newer version of GTK library which fixes this problem.&lt;br /&gt;
&lt;br /&gt;
* Duplicating empty text objects that have just been created no longer crashes. Also, the XML editor crash related to empty text objects is fixed. A downside is that the SVG will become cluttered with empty text objects as they are no longer automatically removed. A better fix for the problem is planned.&lt;br /&gt;
&lt;br /&gt;
* In Tile Clones dialog, the PMG symmetry group was created incorrectly, which is now fixed.&lt;br /&gt;
&lt;br /&gt;
= Previous releases =&lt;br /&gt;
&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>Jiho</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=CompilingMacOsX&amp;diff=17599</id>
		<title>CompilingMacOsX</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=CompilingMacOsX&amp;diff=17599"/>
		<updated>2007-12-21T10:04:12Z</updated>

		<summary type="html">&lt;p&gt;Jiho: /* For the impatient */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= For the impatient =&lt;br /&gt;
&lt;br /&gt;
1. Install [http://developer.apple.com/tools/xcode/ XCode tools] from your OS X installation DVD&lt;br /&gt;
&lt;br /&gt;
2. Download and install [http://www.macports.org/ MacPorts]&lt;br /&gt;
&lt;br /&gt;
3. In Terminal (Applications&amp;gt;Utilities&amp;gt;Terminal) type&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port sync&lt;br /&gt;
sudo port selfupdate&lt;br /&gt;
sudo port install cairo +pdf boehmgc gtkmm intltool libxslt lcms popt poppler boost gnome-vfs \&lt;br /&gt;
 libgnomeprintui automake autoconf subversion&amp;lt;/pre&amp;gt;&lt;br /&gt;
Grab a cup of cofee&lt;br /&gt;
&lt;br /&gt;
4. In Terminal, get and build Inkscape&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
svn co https://inkscape.svn.sourceforge.net/svnroot/inkscape/inkscape/trunk inkscape&lt;br /&gt;
cd inkscape/packaging/macosx/&lt;br /&gt;
./osx-build.sh a c b i -s p&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''Et voilà''. If you want to understand what you just did, read on.&lt;br /&gt;
&lt;br /&gt;
= Requirements =&lt;br /&gt;
To compile Inkscape from source you need:&lt;br /&gt;
*Mac OS X &amp;gt; 10.3&lt;br /&gt;
*XCode Tools. They are on your installation DVD, in the optional installs, or can be download from [http://developer.apple.com/tools/xcode/ Apple Developer Connection]. You can customize the install to make it smaller (avoir documentation and example software for example). You need at least: gcc, XCode, X11SDK.&lt;br /&gt;
*Inkscape's source code. You can download an [http://www.inkscape.org/download.php official release source code], a [http://inkscape.modevia.com/svn-snap/?M=D development snapshot] or checkout a copy of the current state of the [http://www.inkscape.org/svn.php?lang=en SVN repository] using [http://subversion.tigris.org/ subversion]. Subversion comes pre-installed on Leopard. On previous system, subversion can be installed by package management systems (see point below) or with an OS X installer [http://homepage.mac.com/martinott/ package]&lt;br /&gt;
*A means of getting Inkscape's numerous dependencies: glibmm, gtkmm, lmcs, boehmgc... We recommend the use of [http://www.macports.org/ MacPorts] right now. [http://www.finkproject.org/ Fink] was used in the past but there is no information about wether it meets Inkscape needs currently. Alternatively you could use Inkscape all-in-one universal build script to install them (see below).&lt;br /&gt;
&lt;br /&gt;
= Compiling Inkscape with X11, using MacPorts [Recommended method]=&lt;br /&gt;
&lt;br /&gt;
== Installing dependencies ==&lt;br /&gt;
You can use MacPorts to list Inkscape dependencies:&lt;br /&gt;
&amp;lt;pre&amp;gt;port deps inkscape&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some are mandatory and you can install them with the command:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port install boehmgc gtkmm intltool libxslt lcms popt boost&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Others provide additional functionality to Inkscape:&lt;br /&gt;
* &amp;lt;code&amp;gt;gnome-vfs&amp;lt;/code&amp;gt; : access to remote servers, in particular import from Open Clipart Library&lt;br /&gt;
* &amp;lt;code&amp;gt;aspell&amp;lt;/code&amp;gt; : check spelling of text elements [Note: I have never seen it working on OS X]&lt;br /&gt;
* &amp;lt;code&amp;gt;libgnomeprintui&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;loudmouth&amp;lt;/code&amp;gt; : jabber library used by InkBoard&lt;br /&gt;
* &amp;lt;code&amp;gt;cairo +pdf&amp;lt;/code&amp;gt; (cairo with the pdf variant) : better pdf export&lt;br /&gt;
* &amp;lt;code&amp;gt;poppler&amp;lt;/code&amp;gt; : better pdf import&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port install gnome-vfs aspell libgnomeprintui loudmouth cairo +pdf poppler&amp;lt;/pre&amp;gt;&lt;br /&gt;
NB: Cairo was already installed at previous step as a GTK dependency. You need to either deactivate the old version and install this one, or directly write it on the command line above.&lt;br /&gt;
&lt;br /&gt;
In addition, Inkscape requires versions of the autotools more recent thant those that ship with OS X. Install them:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port install autoconf automake&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Setting the build environment ==&lt;br /&gt;
MacPorts's hierarchy (/opt/local/) is not searched for libraries by default. Therefore, before the configuration starts, some environment variables need to be set. The environment variables are presented in bash syntax here. &lt;br /&gt;
&amp;lt;pre&amp;gt;export LIBPREFIX=&amp;quot;/opt/local&amp;quot;&lt;br /&gt;
#  automake seach path&lt;br /&gt;
export CPATH=&amp;quot;$LIBPREFIX/include&amp;quot;&lt;br /&gt;
#  configure search path&lt;br /&gt;
export CPPFLAGS=&amp;quot;-I$LIBPREFIX/include&amp;quot;&lt;br /&gt;
export LDFLAGS=&amp;quot;-L$LIBPREFIX/lib&amp;quot;&lt;br /&gt;
#  compiler arguments&lt;br /&gt;
export CFLAGS=&amp;quot;-O3 -Wall&amp;quot;&lt;br /&gt;
export CXXFLAGS=&amp;quot;$CFLAGS&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also use &amp;lt;code&amp;gt;[http://en.wikipedia.org/wiki/Ccache ccache]&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;sudo port install ccache&amp;lt;/code&amp;gt;) to speed up the compilation a bit. To do so, add compiler variables:&lt;br /&gt;
&amp;lt;pre&amp;gt;export CC=&amp;quot;ccache gcc&amp;quot;&lt;br /&gt;
export CXX=&amp;quot;ccache g++&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Configuring ==&lt;br /&gt;
If you compile Inkscape for the first time from an svn checkout you need to generate the configure script. Navigate to Inkscape's source directory and run:&lt;br /&gt;
&amp;lt;pre&amp;gt;./autogen.sh&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then run configure with the options &amp;lt;code&amp;gt;--disable-static --enable-shared&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;--prefix&amp;lt;/code&amp;gt; which sets the directory where the build products are placed. It must be somewhere you have write access to.&lt;br /&gt;
&amp;lt;pre&amp;gt;./configure --disable-static --enable-shared --prefix=/path/to/build/products/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I you want to package Inkscape into a double-clickable &amp;lt;code&amp;gt;.app&amp;lt;/code&amp;gt; bundle in order to access it like a regular OS X application (you probably want to), you need to add the option &amp;lt;code&amp;gt;--enable-osxapp&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;./configure {...} --enable-osxapp&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you have loudmouth installed and you want to enable whiteboard functionality in Inkscape, add &amp;lt;code&amp;gt;--enable-inkboard&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Other configuration options can be set, check the list of options by issuing:&lt;br /&gt;
&amp;lt;pre&amp;gt;./configure --help&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Building and Installing ==&lt;br /&gt;
Just run:&lt;br /&gt;
&amp;lt;pre&amp;gt;make&lt;br /&gt;
make install&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Creating an .app bundle ==&lt;br /&gt;
Assuming that you have used the &amp;lt;code&amp;gt;--enable-osxapp&amp;lt;/code&amp;gt; option during &amp;lt;code&amp;gt;configure&amp;lt;/code&amp;gt;, navigate to Mac OS X packaging directory in Inkscape source code and use the automated script:&lt;br /&gt;
&amp;lt;pre&amp;gt;cd packaging/macosx&lt;br /&gt;
./osx-app.sh -s -b /path/to/install/prefix/bin/inkscape -p ../Info.plist macosx&amp;lt;/pre&amp;gt;&lt;br /&gt;
The script copies Inkscape binary and all its dependencies into the app bundle. The &amp;lt;code&amp;gt;-s&amp;lt;/code&amp;gt; options strips libraries from debugging information (the bundle is therefore smaller). Omit this option if you want to keep debugging info. &lt;br /&gt;
&lt;br /&gt;
== Creating a disk image to distribute Inkscape ==&lt;br /&gt;
Inkscape.app created at the previous step is completely independent from the original location of MacPorts libraries and can therefore be distributed. It will only work on your platform though (PPC or Intel) and incompatibilities are known between X11 versions on different major versions of OS X (Panther, Tiger and Leopard). The general rule is that versions are not backward compatible.&lt;br /&gt;
&lt;br /&gt;
The most widespread way of distributing applications on Mac OS X is via .dmg images. You can created a dmg image of Inkscape, with a nice background and all, using the script:&lt;br /&gt;
&amp;lt;pre&amp;gt;./osx-dmg.sh -p Inkscape.app&amp;lt;/pre&amp;gt;&lt;br /&gt;
in the packaging directory for Mac OS X (where your app bundle should be, otherwise modify the path to Inkscape.app).&lt;br /&gt;
&lt;br /&gt;
== Automated build script ==&lt;br /&gt;
All these steps are automated by a build script: &amp;lt;code&amp;gt;osx-build.sh&amp;lt;/code&amp;gt;. It has built-in help so to known how to use it just type:&lt;br /&gt;
&amp;lt;pre&amp;gt;./osx-build.sh help&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Compiling a Universal Binary of Inkscape with X11, using the all-in-one build script [untested]=&lt;br /&gt;
&lt;br /&gt;
To build a Universal Binary of Inkscape you also need to build Universal versions of all its dependencies (i.e., gtk+, cairo, pango, etc).  You can do this using the build-gtk.sh script from the Inkscape repository (it's in packaging/macosx/native-gtk/).&lt;br /&gt;
&lt;br /&gt;
This process is relatively untested, as it is only being used by Michael Wybrow  for official Inkscape release builds.  If you have any troubles using this process then please report them to Michael (mjwybrow on sourceforge).&lt;br /&gt;
&lt;br /&gt;
The process is:&lt;br /&gt;
&amp;lt;pre&amp;gt;export PREFIX=/your/install/prefix&lt;br /&gt;
export UNIVERSAL_BUILD=Yes&lt;br /&gt;
./build-gtk bootstrap&lt;br /&gt;
./build-gtk build inkscape&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Compiling Inkscape with native GTK using MacPorts [experimental] =&lt;br /&gt;
This process is very similar to compiling an X11 version of Inkscape except for the building of dependencies: need to build native versions of Inkscape dependencies. At the moment (2007-12-17) this process does not produce a usable version of Inkscape but the more people try to use it, the quicker the bugs will be ironed out!&lt;br /&gt;
&lt;br /&gt;
== Native version of Inkscape dependencies ==&lt;br /&gt;
Thanks to the power of port &amp;quot;variants&amp;quot; and port &amp;quot;deactivation&amp;quot; you can install native versions of gtk, cairo, pango and such, alongside the regular X11 ones. To know which ports have a &amp;lt;code&amp;gt;quartz&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;no_x11&amp;lt;/code&amp;gt; variant, use the command:&lt;br /&gt;
&amp;lt;pre&amp;gt;port list variant:quartz variant:no_x11&amp;lt;/pre&amp;gt;&lt;br /&gt;
This will give you an idea of what need to be replaced.&lt;br /&gt;
&lt;br /&gt;
Assuming your MacPorts tree has been already used to build regular versions of Inkscape, you first need to deactivate (suppress from the tree without really uninstalling) the X11 versions of gtk, cairo, cairomm and pango:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port deactivate gtk2 cairo cairomm pango&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then install native variants:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port install cairo +quartz+pdf+no_x11 cairomm +quartz pango +no_x11 poppler +quartz gtk2 +quartz&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Install the rest ==&lt;br /&gt;
Eventually, follow the regular install procedure for the rest:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port install libxslt boost boehmgc gtkmm lcms intltool popt&amp;lt;/pre&amp;gt;&lt;br /&gt;
If your MacPorts tree was already ready to compile Inkscape, you should not need to reinstall anything, with the possible exception of gtkmm, which may need to be rebuilt against the native version of gtk rather than against the X11 one (please someone confirm this).&lt;br /&gt;
&lt;br /&gt;
Get inkscape source code and go in the mac OS X specific packaging directory&lt;br /&gt;
&amp;lt;pre&amp;gt;cd packaging/macosx&amp;lt;/pre&amp;gt;&lt;br /&gt;
There edit &amp;lt;code&amp;gt;osx-build.sh&amp;lt;/code&amp;gt; to remove the configure option &amp;lt;code&amp;gt;--enable-osxapp&amp;lt;/code&amp;gt; because it puts inkscape in a .app bundle where it is started together with X11, which would defeat the purpose of this native compilation. You can also specify an alternative install prefix if you want. Then&lt;br /&gt;
&amp;lt;pre&amp;gt;./osx-build.sh u a c b i&amp;lt;/pre&amp;gt;&lt;br /&gt;
and a native version of Inkscape is installed in the prefix you specified or in the &amp;lt;code&amp;gt;Build/bin&amp;lt;/code&amp;gt; directory of Inkscape's source code. You can test it by&lt;br /&gt;
&amp;lt;pre&amp;gt; cd ../../Build/bin/&lt;br /&gt;
./inkscape&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NB: if you compiled a GTK theme engine against your old GTK install (i.e. the one with X11) and try to use it with the new install, it will complain, so edit &amp;lt;code&amp;gt;~/.gtkrc-2.0&amp;lt;/code&amp;gt; to remove the offending theme or recompile it with the new native GTK.&lt;br /&gt;
&lt;br /&gt;
= Compiling Inkscape with native GTK using the all in one build script [experimental] =&lt;br /&gt;
&lt;br /&gt;
To build a native-GTK build of Inkscape, GTK and some of its dependencies must be built with special options. You can do this using the build-gtk.sh script from the Inkscape repository (it's in packaging/macosx/native-gtk/).  This is a modified version of the Imendio native build script, found with instructions on this page:&lt;br /&gt;
http://developer.imendio.com/projects/gtk-macosx/build-instructions&lt;br /&gt;
&lt;br /&gt;
This process is relatively untested. If you have any troubles using this process then please report them to Michael Wybrow (mjwybrow on sourceforge).&lt;br /&gt;
&lt;br /&gt;
The process is:&lt;br /&gt;
&amp;lt;pre&amp;gt;export PREFIX=/your/install/prefix&lt;br /&gt;
./build-gtk bootstrap&lt;br /&gt;
./build-gtk build inkscape&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Enabling python effects =&lt;br /&gt;
moved to [[GettingEffectsWorking]]. They should work out of the box in the new versions anyway.&lt;br /&gt;
&lt;br /&gt;
= Links =&lt;br /&gt;
&lt;br /&gt;
== Apple Documentation ==&lt;br /&gt;
* [http://developer.apple.com/documentation/MacOSX/Conceptual/BPRuntimeConfig/BPRuntimeConfig.html Introduction to Runtime Configuration] Covers the Info.plist files, Preferences, Environment variables and has a list of the most important Properties that the Property List should contain.&lt;br /&gt;
&lt;br /&gt;
== Packaging ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.sveinbjorn.org/platypus Sveinbjorn Thordarson's Website] The author of Platypus, the Script Exec wrapper that launches the Inkscape binary.&lt;br /&gt;
* [http://freespace.ausgamers.com/2005/02/creating-os-x-application-bundles-step.html  Creating OS X application bundles step by step] Covers the bundle concepts, copying libraries into the bundle, editing libraries with the install_name_tool, the Info.plist file and adding an icon.&lt;br /&gt;
* [http://java.sun.com/developer/technicalArticles/JavaLP/JavaToMac3/ Bringing your Java Application to Mac OS X] I would regard this a little dated, and the detail is (unsurprisingly) Java-related, but it is a gentle introduction to the role of the .app bundle and give a most clear account of how to create one.&lt;br /&gt;
* The [http://gimp-app.sourceforge.net/gimp.app.howto.txt Gimp .app Howto] This is a very bare document, and would be of little help to you if you were new to making packages. Note that it seems to refer to a more mature Clipboard technique and Online help than we currently have; and we ought to move to parity in these areas.&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer Documentation]]&lt;/div&gt;</summary>
		<author><name>Jiho</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Extension_requirements&amp;diff=17514</id>
		<title>Extension requirements</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Extension_requirements&amp;diff=17514"/>
		<updated>2007-12-18T08:17:36Z</updated>

		<summary type="html">&lt;p&gt;Jiho: /* on Mac OS X */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Setting Up Effects in Inkscape ==&lt;br /&gt;
&amp;lt;i&amp;gt;For effects to work you need to be using inkscape .42 or later.&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;i&amp;gt;For info about what effects can do, screenshots, and how to make your own go to [http://www.ekips.org/comp/inkscape/ Aarons Site]&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;i&amp;gt;See also [[GettingExtensionsWorking]].&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Unhide the Effects menu ===&lt;br /&gt;
(Only necessary in some versions of Inkscape. Between .41 and .45)&lt;br /&gt;
&lt;br /&gt;
On the &amp;quot;Misc&amp;quot; tab of the &amp;quot;Inkscape Preferences&amp;quot; dialog check the box labeled &amp;quot;Enable script effects&amp;quot; (0.41+CVS onwards only)&lt;br /&gt;
&lt;br /&gt;
Close and reopen Inkscape&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Python Effects ==&lt;br /&gt;
=== on Debian GNU / Linux ===&lt;br /&gt;
    apt-get install python python-xml&lt;br /&gt;
&lt;br /&gt;
=== on Microsoft Windows ===&lt;br /&gt;
[[GettingEffectsWorking/Windows]] Tutorial on Getting Effects to work on Windows&lt;br /&gt;
&lt;br /&gt;
=== on Mac OS X ===&lt;br /&gt;
&lt;br /&gt;
Mac OS X ships with python but without some packages that Inkscape uses: [http://pyxml.sourceforge.net/ pyXML] (which will be suppressed in version 0.46), [http://numpy.scipy.org/ numpy] and [http://codespeak.net/lxml/ lxml]. In version 0.46, Inkscape will ship with everything that's needed right into the app bundle.&lt;br /&gt;
&lt;br /&gt;
==== Binary packages ====&lt;br /&gt;
On OS X Panther or Tiger, you can install a binary version compiled by us with Python 2.3, downloadable with the development builds of Inkscape:&lt;br /&gt;
:http://inkscape.modevia.com/macosx-snap/?M=D&lt;br /&gt;
You need to copy the folders for numpy (numpy) and lxml (*lxml*.egg or lxml) to System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/site-packages (there is a link in the dmg on which the folders can be dropped).&lt;br /&gt;
&lt;br /&gt;
==== Compiling from source ====&lt;br /&gt;
If you prefer, you can install them from source, it is really easy.&lt;br /&gt;
&lt;br /&gt;
# download the source code from [http://sourceforge.net/project/showfiles.php?group_id=1369&amp;amp;package_id=175103 sourceforge numpy repository] or [http://codespeak.net/lxml/index.html#download lxml download section]&lt;br /&gt;
# unpack the &amp;lt;code&amp;gt;.tar.gz&amp;lt;/code&amp;gt; file &amp;lt;pre&amp;gt;tar -xzf numpy***.tar.gz lxml***.tar.gz&amp;lt;/pre&amp;gt;&lt;br /&gt;
# for each one &amp;lt;code&amp;gt;cd&amp;lt;code&amp;gt; into the newly created directory&lt;br /&gt;
# build C extensions and install (the install is system wide so you need administrator priviledges)&amp;lt;pre&amp;gt;sudo python setup.py install&amp;lt;/pre&amp;gt;and type your password.&lt;br /&gt;
&lt;br /&gt;
The packages are installed in the &amp;lt;code&amp;gt;site-packages&amp;lt;/code&amp;gt; directory of your Python install. This is &amp;lt;code&amp;gt;/Library/Python/2.*/site-packages/&amp;lt;code&amp;gt; for the stock install of Python on Mac OS X.&lt;br /&gt;
&lt;br /&gt;
== Perl Effects ==&lt;br /&gt;
=== on Debian GNU / Linux ===&lt;br /&gt;
    apt-get install perl libxml-xql-perl&lt;br /&gt;
&lt;br /&gt;
=== on Gentoo GNU / Linux ===&lt;br /&gt;
    emerge -a XML-XQL&lt;br /&gt;
&lt;br /&gt;
=== on Microsoft Windows ===&lt;br /&gt;
    install [http://www.activestate.com/Products/Download/Download.plex?id=ActivePerl [[ActivePerl]]]&lt;br /&gt;
    install XML::XQL::DOM (perhaps like this?)&lt;br /&gt;
        1: install prereqs with ppm:&lt;br /&gt;
 	    install xml-dom&lt;br /&gt;
 	    install parse-yapp&lt;br /&gt;
 	    install datemanip&lt;br /&gt;
        2: download xml-xql from:&lt;br /&gt;
 	    http://www.cpan.org/authors/id/T/TJ/TJMATHER/XML-XQL-0.68.tar.gz&lt;br /&gt;
        3: open command prompt and locate perl&amp;quot;s lib directory with:&lt;br /&gt;
 	    perl -e &amp;quot;print qq(@INC)&amp;quot;    (mine was C:[[/Perl/site/lib]])&lt;br /&gt;
        4: unpack xml-xql archive&lt;br /&gt;
        5: copy contents of XML-XQL-*\lib\XML into C:\Perl\site\lib\XML&lt;br /&gt;
        6: copy XML-XQL-*\XQLParser\Parser.pm to C:\Perl\site\lib\XML\XQL&lt;br /&gt;
&lt;br /&gt;
== Plugin Effects ==&lt;br /&gt;
I have absolutely no idea. Please record your success here. :)&lt;br /&gt;
&lt;br /&gt;
== What if it doesn't work? ==&lt;br /&gt;
Run Inkscape from the console&lt;br /&gt;
&lt;br /&gt;
Use the error messges printed to the console to diagnose the problem (very often missing dependencies)&lt;br /&gt;
&lt;br /&gt;
On Windows you will have to redirect output to a text file like this: &amp;quot;inkscape &amp;gt; output.txt&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Extensions]]&lt;/div&gt;</summary>
		<author><name>Jiho</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Extension_requirements&amp;diff=17509</id>
		<title>Extension requirements</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Extension_requirements&amp;diff=17509"/>
		<updated>2007-12-18T08:16:33Z</updated>

		<summary type="html">&lt;p&gt;Jiho: /* Binary packages */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Setting Up Effects in Inkscape ==&lt;br /&gt;
&amp;lt;i&amp;gt;For effects to work you need to be using inkscape .42 or later.&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;i&amp;gt;For info about what effects can do, screenshots, and how to make your own go to [http://www.ekips.org/comp/inkscape/ Aarons Site]&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;i&amp;gt;See also [[GettingExtensionsWorking]].&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Unhide the Effects menu ===&lt;br /&gt;
(Only necessary in some versions of Inkscape. Between .41 and .45)&lt;br /&gt;
&lt;br /&gt;
On the &amp;quot;Misc&amp;quot; tab of the &amp;quot;Inkscape Preferences&amp;quot; dialog check the box labeled &amp;quot;Enable script effects&amp;quot; (0.41+CVS onwards only)&lt;br /&gt;
&lt;br /&gt;
Close and reopen Inkscape&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Python Effects ==&lt;br /&gt;
=== on Debian GNU / Linux ===&lt;br /&gt;
    apt-get install python python-xml&lt;br /&gt;
&lt;br /&gt;
=== on Microsoft Windows ===&lt;br /&gt;
[[GettingEffectsWorking/Windows]] Tutorial on Getting Effects to work on Windows&lt;br /&gt;
&lt;br /&gt;
=== on Mac OS X ===&lt;br /&gt;
&lt;br /&gt;
Mac OS X ships with python but without some packages that Inkscape uses: [http://pyxml.sourceforge.net/ pyXML] (which will be suppressed in version 0.46), [http://numpy.scipy.org/ numpy] and [http://codespeak.net/lxml/ lxml]&lt;br /&gt;
&lt;br /&gt;
==== Binary packages ====&lt;br /&gt;
On OS X Panther or Tiger, you can install a binary version compiled by us with Python 2.3, downloadable with the development builds of Inkscape:&lt;br /&gt;
:http://inkscape.modevia.com/macosx-snap/?M=D&lt;br /&gt;
You need to copy the folders for numpy (numpy) and lxml (*lxml*.egg or lxml) to System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/site-packages (there is a link in the dmg on which the folders can be dropped).&lt;br /&gt;
&lt;br /&gt;
==== Compiling from source ====&lt;br /&gt;
If you prefer, you can install them from source, it is really easy.&lt;br /&gt;
&lt;br /&gt;
# download the source code from [http://sourceforge.net/project/showfiles.php?group_id=1369&amp;amp;package_id=175103 sourceforge numpy repository] or [http://codespeak.net/lxml/index.html#download lxml download section]&lt;br /&gt;
# unpack the &amp;lt;code&amp;gt;.tar.gz&amp;lt;/code&amp;gt; file &amp;lt;pre&amp;gt;tar -xzf numpy***.tar.gz lxml***.tar.gz&amp;lt;/pre&amp;gt;&lt;br /&gt;
# for each one &amp;lt;code&amp;gt;cd&amp;lt;code&amp;gt; into the newly created directory&lt;br /&gt;
# build C extensions and install (the install is system wide so you need administrator priviledges)&amp;lt;pre&amp;gt;sudo python setup.py install&amp;lt;/pre&amp;gt;and type your password.&lt;br /&gt;
&lt;br /&gt;
The packages are installed in the &amp;lt;code&amp;gt;site-packages&amp;lt;/code&amp;gt; directory of your Python install. This is &amp;lt;code&amp;gt;/Library/Python/2.*/site-packages/&amp;lt;code&amp;gt; for the stock install of Python on Mac OS X.&lt;br /&gt;
&lt;br /&gt;
== Perl Effects ==&lt;br /&gt;
=== on Debian GNU / Linux ===&lt;br /&gt;
    apt-get install perl libxml-xql-perl&lt;br /&gt;
&lt;br /&gt;
=== on Gentoo GNU / Linux ===&lt;br /&gt;
    emerge -a XML-XQL&lt;br /&gt;
&lt;br /&gt;
=== on Microsoft Windows ===&lt;br /&gt;
    install [http://www.activestate.com/Products/Download/Download.plex?id=ActivePerl [[ActivePerl]]]&lt;br /&gt;
    install XML::XQL::DOM (perhaps like this?)&lt;br /&gt;
        1: install prereqs with ppm:&lt;br /&gt;
 	    install xml-dom&lt;br /&gt;
 	    install parse-yapp&lt;br /&gt;
 	    install datemanip&lt;br /&gt;
        2: download xml-xql from:&lt;br /&gt;
 	    http://www.cpan.org/authors/id/T/TJ/TJMATHER/XML-XQL-0.68.tar.gz&lt;br /&gt;
        3: open command prompt and locate perl&amp;quot;s lib directory with:&lt;br /&gt;
 	    perl -e &amp;quot;print qq(@INC)&amp;quot;    (mine was C:[[/Perl/site/lib]])&lt;br /&gt;
        4: unpack xml-xql archive&lt;br /&gt;
        5: copy contents of XML-XQL-*\lib\XML into C:\Perl\site\lib\XML&lt;br /&gt;
        6: copy XML-XQL-*\XQLParser\Parser.pm to C:\Perl\site\lib\XML\XQL&lt;br /&gt;
&lt;br /&gt;
== Plugin Effects ==&lt;br /&gt;
I have absolutely no idea. Please record your success here. :)&lt;br /&gt;
&lt;br /&gt;
== What if it doesn't work? ==&lt;br /&gt;
Run Inkscape from the console&lt;br /&gt;
&lt;br /&gt;
Use the error messges printed to the console to diagnose the problem (very often missing dependencies)&lt;br /&gt;
&lt;br /&gt;
On Windows you will have to redirect output to a text file like this: &amp;quot;inkscape &amp;gt; output.txt&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Extensions]]&lt;/div&gt;</summary>
		<author><name>Jiho</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Extension_requirements&amp;diff=17504</id>
		<title>Extension requirements</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Extension_requirements&amp;diff=17504"/>
		<updated>2007-12-18T08:14:31Z</updated>

		<summary type="html">&lt;p&gt;Jiho: /* Compiling from source */ suppresses pyXML&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Setting Up Effects in Inkscape ==&lt;br /&gt;
&amp;lt;i&amp;gt;For effects to work you need to be using inkscape .42 or later.&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;i&amp;gt;For info about what effects can do, screenshots, and how to make your own go to [http://www.ekips.org/comp/inkscape/ Aarons Site]&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;i&amp;gt;See also [[GettingExtensionsWorking]].&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Unhide the Effects menu ===&lt;br /&gt;
(Only necessary in some versions of Inkscape. Between .41 and .45)&lt;br /&gt;
&lt;br /&gt;
On the &amp;quot;Misc&amp;quot; tab of the &amp;quot;Inkscape Preferences&amp;quot; dialog check the box labeled &amp;quot;Enable script effects&amp;quot; (0.41+CVS onwards only)&lt;br /&gt;
&lt;br /&gt;
Close and reopen Inkscape&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Python Effects ==&lt;br /&gt;
=== on Debian GNU / Linux ===&lt;br /&gt;
    apt-get install python python-xml&lt;br /&gt;
&lt;br /&gt;
=== on Microsoft Windows ===&lt;br /&gt;
[[GettingEffectsWorking/Windows]] Tutorial on Getting Effects to work on Windows&lt;br /&gt;
&lt;br /&gt;
=== on Mac OS X ===&lt;br /&gt;
&lt;br /&gt;
Mac OS X ships with python but without some packages that Inkscape uses: [http://pyxml.sourceforge.net/ pyXML] (which will be suppressed in version 0.46), [http://numpy.scipy.org/ numpy] and [http://codespeak.net/lxml/ lxml]&lt;br /&gt;
&lt;br /&gt;
==== Binary packages ====&lt;br /&gt;
You can install a binary version compiled by us, downloadable with the development builds of Inkscape:&lt;br /&gt;
:http://inkscape.modevia.com/macosx-snap/?M=D&lt;br /&gt;
You need to copy the folders for pyXML (_xmlplus), numpy (numpy) and lxml (*lxml*.egg or lxml) to /System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/site-packages (there is a link in the dmg on which the folders can be dropped).&lt;br /&gt;
&lt;br /&gt;
==== Compiling from source ====&lt;br /&gt;
If you prefer, you can install them from source, it is really easy.&lt;br /&gt;
&lt;br /&gt;
# download the source code from [http://sourceforge.net/project/showfiles.php?group_id=1369&amp;amp;package_id=175103 sourceforge numpy repository] or [http://codespeak.net/lxml/index.html#download lxml download section]&lt;br /&gt;
# unpack the &amp;lt;code&amp;gt;.tar.gz&amp;lt;/code&amp;gt; file &amp;lt;pre&amp;gt;tar -xzf numpy***.tar.gz lxml***.tar.gz&amp;lt;/pre&amp;gt;&lt;br /&gt;
# for each one &amp;lt;code&amp;gt;cd&amp;lt;code&amp;gt; into the newly created directory&lt;br /&gt;
# build C extensions and install (the install is system wide so you need administrator priviledges)&amp;lt;pre&amp;gt;sudo python setup.py install&amp;lt;/pre&amp;gt;and type your password.&lt;br /&gt;
&lt;br /&gt;
The packages are installed in the &amp;lt;code&amp;gt;site-packages&amp;lt;/code&amp;gt; directory of your Python install. This is &amp;lt;code&amp;gt;/Library/Python/2.*/site-packages/&amp;lt;code&amp;gt; for the stock install of Python on Mac OS X.&lt;br /&gt;
&lt;br /&gt;
== Perl Effects ==&lt;br /&gt;
=== on Debian GNU / Linux ===&lt;br /&gt;
    apt-get install perl libxml-xql-perl&lt;br /&gt;
&lt;br /&gt;
=== on Gentoo GNU / Linux ===&lt;br /&gt;
    emerge -a XML-XQL&lt;br /&gt;
&lt;br /&gt;
=== on Microsoft Windows ===&lt;br /&gt;
    install [http://www.activestate.com/Products/Download/Download.plex?id=ActivePerl [[ActivePerl]]]&lt;br /&gt;
    install XML::XQL::DOM (perhaps like this?)&lt;br /&gt;
        1: install prereqs with ppm:&lt;br /&gt;
 	    install xml-dom&lt;br /&gt;
 	    install parse-yapp&lt;br /&gt;
 	    install datemanip&lt;br /&gt;
        2: download xml-xql from:&lt;br /&gt;
 	    http://www.cpan.org/authors/id/T/TJ/TJMATHER/XML-XQL-0.68.tar.gz&lt;br /&gt;
        3: open command prompt and locate perl&amp;quot;s lib directory with:&lt;br /&gt;
 	    perl -e &amp;quot;print qq(@INC)&amp;quot;    (mine was C:[[/Perl/site/lib]])&lt;br /&gt;
        4: unpack xml-xql archive&lt;br /&gt;
        5: copy contents of XML-XQL-*\lib\XML into C:\Perl\site\lib\XML&lt;br /&gt;
        6: copy XML-XQL-*\XQLParser\Parser.pm to C:\Perl\site\lib\XML\XQL&lt;br /&gt;
&lt;br /&gt;
== Plugin Effects ==&lt;br /&gt;
I have absolutely no idea. Please record your success here. :)&lt;br /&gt;
&lt;br /&gt;
== What if it doesn't work? ==&lt;br /&gt;
Run Inkscape from the console&lt;br /&gt;
&lt;br /&gt;
Use the error messges printed to the console to diagnose the problem (very often missing dependencies)&lt;br /&gt;
&lt;br /&gt;
On Windows you will have to redirect output to a text file like this: &amp;quot;inkscape &amp;gt; output.txt&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Extensions]]&lt;/div&gt;</summary>
		<author><name>Jiho</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=CompilingMacOsX&amp;diff=17439</id>
		<title>CompilingMacOsX</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=CompilingMacOsX&amp;diff=17439"/>
		<updated>2007-12-16T23:29:13Z</updated>

		<summary type="html">&lt;p&gt;Jiho: Overall review, updated according to progress on MacPorts side&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= For the impatient =&lt;br /&gt;
&lt;br /&gt;
1. Install [http://developer.apple.com/tools/xcode/ XCode tools] from your OS X installation DVD&lt;br /&gt;
&lt;br /&gt;
2. Download and install [http://www.macports.org/ MacPorts]&lt;br /&gt;
&lt;br /&gt;
3. In Terminal (Applications&amp;gt;Utilities&amp;gt;Terminal) type&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port sync&lt;br /&gt;
sudo port selfupdate&lt;br /&gt;
sudo port install cairo +pdf boehmgc gtkmm intltool libxslt lcms popt poppler boost gnome-vfs \&lt;br /&gt;
 libgnomeprintui automake autoconf subversion&amp;lt;/pre&amp;gt;&lt;br /&gt;
Grab a cup of cofee&lt;br /&gt;
&lt;br /&gt;
4. In Terminal, get and build Inkscape&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
svn co https://inkscape.svn.sourceforge.net/svnroot/inkscape/inkscape/trunk inkscape&lt;br /&gt;
cd inkscape/packaging/macosx/&lt;br /&gt;
./osx-build.sh a c b i -s p&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''Et voilà''. If you want to understand what you've just did, read on.&lt;br /&gt;
&lt;br /&gt;
= Requirements =&lt;br /&gt;
To compile Inkscape from source you need:&lt;br /&gt;
*Mac OS X &amp;gt; 10.3&lt;br /&gt;
*XCode Tools. They are on your installation DVD, in the optional installs, or can be download from [http://developer.apple.com/tools/xcode/ Apple Developer Connection]. You can customize the install to make it smaller (avoir documentation and example software for example). You need at least: gcc, XCode, X11SDK.&lt;br /&gt;
*Inkscape's source code. You can download an [http://www.inkscape.org/download.php official release source code], a [http://inkscape.modevia.com/svn-snap/?M=D development snapshot] or checkout a copy of the current state of the [http://www.inkscape.org/svn.php?lang=en SVN repository] using [http://subversion.tigris.org/ subversion]. Subversion comes pre-installed on Leopard. On previous system, subversion can be installed by package management systems (see point below) or with an OS X installer [http://homepage.mac.com/martinott/ package]&lt;br /&gt;
*A means of getting Inkscape's numerous dependencies: glibmm, gtkmm, lmcs, boehmgc... We recommend the use of [http://www.macports.org/ MacPorts] right now. [http://www.finkproject.org/ Fink] was used in the past but there is no information about wether it meets Inkscape needs currently. Alternatively you could use Inkscape all-in-one universal build script to install them (see below).&lt;br /&gt;
&lt;br /&gt;
= Compiling Inkscape with X11, using MacPorts [Recommended method]=&lt;br /&gt;
&lt;br /&gt;
== Installing dependencies ==&lt;br /&gt;
You can use MacPorts to list Inkscape dependencies:&lt;br /&gt;
&amp;lt;pre&amp;gt;port deps inkscape&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some are mandatory and you can install them with the command:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port install boehmgc gtkmm intltool libxslt lcms popt boost&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Others provide additional functionality to Inkscape:&lt;br /&gt;
* &amp;lt;code&amp;gt;gnome-vfs&amp;lt;/code&amp;gt; : access to remote servers, in particular import from Open Clipart Library&lt;br /&gt;
* &amp;lt;code&amp;gt;aspell&amp;lt;/code&amp;gt; : check spelling of text elements [Note: I have never seen it working on OS X]&lt;br /&gt;
* &amp;lt;code&amp;gt;libgnomeprintui&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;loudmouth&amp;lt;/code&amp;gt; : jabber library used by InkBoard&lt;br /&gt;
* &amp;lt;code&amp;gt;cairo +pdf&amp;lt;/code&amp;gt; (cairo with the pdf variant) : better pdf export&lt;br /&gt;
* &amp;lt;code&amp;gt;poppler&amp;lt;/code&amp;gt; : better pdf import&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port install gnome-vfs aspell libgnomeprintui loudmouth cairo +pdf poppler&amp;lt;/pre&amp;gt;&lt;br /&gt;
NB: Cairo was already installed at previous step as a GTK dependency. You need to either deactivate the old version and install this one, or directly write it on the command line above.&lt;br /&gt;
&lt;br /&gt;
In addition, Inkscape requires versions of the autotools more recent thant those that ship with OS X. Install them:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port install autoconf automake&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Setting the build environment ==&lt;br /&gt;
MacPorts's hierarchy (/opt/local/) is not searched for libraries by default. Therefore, before the configuration starts, some environment variables need to be set. The environment variables are presented in bash syntax here. &lt;br /&gt;
&amp;lt;pre&amp;gt;export LIBPREFIX=&amp;quot;/opt/local&amp;quot;&lt;br /&gt;
#  automake seach path&lt;br /&gt;
export CPATH=&amp;quot;$LIBPREFIX/include&amp;quot;&lt;br /&gt;
#  configure search path&lt;br /&gt;
export CPPFLAGS=&amp;quot;-I$LIBPREFIX/include&amp;quot;&lt;br /&gt;
export LDFLAGS=&amp;quot;-L$LIBPREFIX/lib&amp;quot;&lt;br /&gt;
#  compiler arguments&lt;br /&gt;
export CFLAGS=&amp;quot;-O3 -Wall&amp;quot;&lt;br /&gt;
export CXXFLAGS=&amp;quot;$CFLAGS&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also use &amp;lt;code&amp;gt;[http://en.wikipedia.org/wiki/Ccache ccache]&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;sudo port install ccache&amp;lt;/code&amp;gt;) to speed up the compilation a bit. To do so, add compiler variables:&lt;br /&gt;
&amp;lt;pre&amp;gt;export CC=&amp;quot;ccache gcc&amp;quot;&lt;br /&gt;
export CXX=&amp;quot;ccache g++&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Configuring ==&lt;br /&gt;
If you compile Inkscape for the first time from an svn checkout you need to generate the configure script. Navigate to Inkscape's source directory and run:&lt;br /&gt;
&amp;lt;pre&amp;gt;./autogen.sh&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then run configure with the options &amp;lt;code&amp;gt;--disable-static --enable-shared&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;--prefix&amp;lt;/code&amp;gt; which sets the directory where the build products are placed. It must be somewhere you have write access to.&lt;br /&gt;
&amp;lt;pre&amp;gt;./configure --disable-static --enable-shared --prefix=/path/to/build/products/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I you want to package Inkscape into a double-clickable &amp;lt;code&amp;gt;.app&amp;lt;/code&amp;gt; bundle in order to access it like a regular OS X application (you probably want to), you need to add the option &amp;lt;code&amp;gt;--enable-osxapp&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;./configure {...} --enable-osxapp&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you have loudmouth installed and you want to enable whiteboard functionality in Inkscape, add &amp;lt;code&amp;gt;--enable-inkboard&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Other configuration options can be set, check the list of options by issuing:&lt;br /&gt;
&amp;lt;pre&amp;gt;./configure --help&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Building and Installing ==&lt;br /&gt;
Just run:&lt;br /&gt;
&amp;lt;pre&amp;gt;make&lt;br /&gt;
make install&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Creating an .app bundle ==&lt;br /&gt;
Assuming that you have used the &amp;lt;code&amp;gt;--enable-osxapp&amp;lt;/code&amp;gt; option during &amp;lt;code&amp;gt;configure&amp;lt;/code&amp;gt;, navigate to Mac OS X packaging directory in Inkscape source code and use the automated script:&lt;br /&gt;
&amp;lt;pre&amp;gt;cd packaging/macosx&lt;br /&gt;
./osx-app.sh -s -b /path/to/install/prefix/bin/inkscape -p ../Info.plist macosx&amp;lt;/pre&amp;gt;&lt;br /&gt;
The script copies Inkscape binary and all its dependencies into the app bundle. The &amp;lt;code&amp;gt;-s&amp;lt;/code&amp;gt; options strips libraries from debugging information (the bundle is therefore smaller). Omit this option if you want to keep debugging info. &lt;br /&gt;
&lt;br /&gt;
== Creating a disk image to distribute Inkscape ==&lt;br /&gt;
Inkscape.app created at the previous step is completely independent from the original location of MacPorts libraries and can therefore be distributed. It will only work on your platform though (PPC or Intel) and incompatibilities are known between X11 versions on different major versions of OS X (Panther, Tiger and Leopard). The general rule is that versions are not backward compatible.&lt;br /&gt;
&lt;br /&gt;
The most widespread way of distributing applications on Mac OS X is via .dmg images. You can created a dmg image of Inkscape, with a nice background and all, using the script:&lt;br /&gt;
&amp;lt;pre&amp;gt;./osx-dmg.sh -p Inkscape.app&amp;lt;/pre&amp;gt;&lt;br /&gt;
in the packaging directory for Mac OS X (where your app bundle should be, otherwise modify the path to Inkscape.app).&lt;br /&gt;
&lt;br /&gt;
== Automated build script ==&lt;br /&gt;
All these steps are automated by a build script: &amp;lt;code&amp;gt;osx-build.sh&amp;lt;/code&amp;gt;. It has built-in help so to known how to use it just type:&lt;br /&gt;
&amp;lt;pre&amp;gt;./osx-build.sh help&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Compiling a Universal Binary of Inkscape with X11, using the all-in-one build script [untested]=&lt;br /&gt;
&lt;br /&gt;
To build a Universal Binary of Inkscape you also need to build Universal versions of all its dependencies (i.e., gtk+, cairo, pango, etc).  You can do this using the build-gtk.sh script from the Inkscape repository (it's in packaging/macosx/native-gtk/).&lt;br /&gt;
&lt;br /&gt;
This process is relatively untested, as it is only being used by Michael Wybrow  for official Inkscape release builds.  If you have any troubles using this process then please report them to Michael (mjwybrow on sourceforge).&lt;br /&gt;
&lt;br /&gt;
The process is:&lt;br /&gt;
&amp;lt;pre&amp;gt;export PREFIX=/your/install/prefix&lt;br /&gt;
export UNIVERSAL_BUILD=Yes&lt;br /&gt;
./build-gtk bootstrap&lt;br /&gt;
./build-gtk build inkscape&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Compiling Inkscape with native GTK using MacPorts [experimental] =&lt;br /&gt;
This process is very similar to compiling an X11 version of Inkscape except for the building of dependencies: need to build native versions of Inkscape dependencies. At the moment (2007-12-17) this process does not produce a usable version of Inkscape but the more people try to use it, the quicker the bugs will be ironed out!&lt;br /&gt;
&lt;br /&gt;
== Native version of Inkscape dependencies ==&lt;br /&gt;
Thanks to the power of port &amp;quot;variants&amp;quot; and port &amp;quot;deactivation&amp;quot; you can install native versions of gtk, cairo, pango and such, alongside the regular X11 ones. To know which ports have a &amp;lt;code&amp;gt;quartz&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;no_x11&amp;lt;/code&amp;gt; variant, use the command:&lt;br /&gt;
&amp;lt;pre&amp;gt;port list variant:quartz variant:no_x11&amp;lt;/pre&amp;gt;&lt;br /&gt;
This will give you an idea of what need to be replaced.&lt;br /&gt;
&lt;br /&gt;
Assuming your MacPorts tree has been already used to build regular versions of Inkscape, you first need to deactivate (suppress from the tree without really uninstalling) the X11 versions of gtk, cairo, cairomm and pango:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port deactivate gtk2 cairo cairomm pango&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then install native variants:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port install cairo +quartz+pdf+no_x11 cairomm +quartz pango +no_x11 poppler +quartz gtk2 +quartz&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Install the rest ==&lt;br /&gt;
Eventually, follow the regular install procedure for the rest:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port install libxslt boost boehmgc gtkmm lcms intltool popt&amp;lt;/pre&amp;gt;&lt;br /&gt;
If your MacPorts tree was already ready to compile Inkscape, you should not need to reinstall anything, with the possible exception of gtkmm, which may need to be rebuilt against the native version of gtk rather than against the X11 one (please someone confirm this).&lt;br /&gt;
&lt;br /&gt;
Get inkscape source code and go in the mac OS X specific packaging directory&lt;br /&gt;
&amp;lt;pre&amp;gt;cd packaging/macosx&amp;lt;/pre&amp;gt;&lt;br /&gt;
There edit &amp;lt;code&amp;gt;osx-build.sh&amp;lt;/code&amp;gt; to remove the configure option &amp;lt;code&amp;gt;--enable-osxapp&amp;lt;/code&amp;gt; because it puts inkscape in a .app bundle where it is started together with X11, which would defeat the purpose of this native compilation. You can also specify an alternative install prefix if you want. Then&lt;br /&gt;
&amp;lt;pre&amp;gt;./osx-build.sh u a c b i&amp;lt;/pre&amp;gt;&lt;br /&gt;
and a native version of Inkscape is installed in the prefix you specified or in the &amp;lt;code&amp;gt;Build/bin&amp;lt;/code&amp;gt; directory of Inkscape's source code. You can test it by&lt;br /&gt;
&amp;lt;pre&amp;gt; cd ../../Build/bin/&lt;br /&gt;
./inkscape&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NB: if you compiled a GTK theme engine against your old GTK install (i.e. the one with X11) and try to use it with the new install, it will complain, so edit &amp;lt;code&amp;gt;~/.gtkrc-2.0&amp;lt;/code&amp;gt; to remove the offending theme or recompile it with the new native GTK.&lt;br /&gt;
&lt;br /&gt;
= Compiling Inkscape with native GTK using the all in one build script [experimental] =&lt;br /&gt;
&lt;br /&gt;
To build a native-GTK build of Inkscape, GTK and some of its dependencies must be built with special options. You can do this using the build-gtk.sh script from the Inkscape repository (it's in packaging/macosx/native-gtk/).  This is a modified version of the Imendio native build script, found with instructions on this page:&lt;br /&gt;
http://developer.imendio.com/projects/gtk-macosx/build-instructions&lt;br /&gt;
&lt;br /&gt;
This process is relatively untested. If you have any troubles using this process then please report them to Michael Wybrow (mjwybrow on sourceforge).&lt;br /&gt;
&lt;br /&gt;
The process is:&lt;br /&gt;
&amp;lt;pre&amp;gt;export PREFIX=/your/install/prefix&lt;br /&gt;
./build-gtk bootstrap&lt;br /&gt;
./build-gtk build inkscape&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Enabling python effects =&lt;br /&gt;
moved to [[GettingEffectsWorking]]. They should work out of the box in the new versions anyway.&lt;br /&gt;
&lt;br /&gt;
= Links =&lt;br /&gt;
&lt;br /&gt;
== Apple Documentation ==&lt;br /&gt;
* [http://developer.apple.com/documentation/MacOSX/Conceptual/BPRuntimeConfig/BPRuntimeConfig.html Introduction to Runtime Configuration] Covers the Info.plist files, Preferences, Environment variables and has a list of the most important Properties that the Property List should contain.&lt;br /&gt;
&lt;br /&gt;
== Packaging ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.sveinbjorn.org/platypus Sveinbjorn Thordarson's Website] The author of Platypus, the Script Exec wrapper that launches the Inkscape binary.&lt;br /&gt;
* [http://freespace.ausgamers.com/2005/02/creating-os-x-application-bundles-step.html  Creating OS X application bundles step by step] Covers the bundle concepts, copying libraries into the bundle, editing libraries with the install_name_tool, the Info.plist file and adding an icon.&lt;br /&gt;
* [http://java.sun.com/developer/technicalArticles/JavaLP/JavaToMac3/ Bringing your Java Application to Mac OS X] I would regard this a little dated, and the detail is (unsurprisingly) Java-related, but it is a gentle introduction to the role of the .app bundle and give a most clear account of how to create one.&lt;br /&gt;
* The [http://gimp-app.sourceforge.net/gimp.app.howto.txt Gimp .app Howto] This is a very bare document, and would be of little help to you if you were new to making packages. Note that it seems to refer to a more mature Clipboard technique and Online help than we currently have; and we ought to move to parity in these areas.&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer Documentation]]&lt;/div&gt;</summary>
		<author><name>Jiho</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=CompilingMacOsX&amp;diff=17409</id>
		<title>CompilingMacOsX</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=CompilingMacOsX&amp;diff=17409"/>
		<updated>2007-12-15T15:37:12Z</updated>

		<summary type="html">&lt;p&gt;Jiho: /* Requirements */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Requirements ==&lt;br /&gt;
To compile Inkscape from source you will need:&lt;br /&gt;
*Mac OS X &amp;gt; 10.3&lt;br /&gt;
*XCode Tools. They are on your installation DVD in the optional installs or can be download from [http://developer.apple.com/tools/xcode/ Apple Developer Connection]. You can customize the install to make it smaller (avoir documentation and example software for example). You need at least: gcc, XCode, X11SDK.&lt;br /&gt;
*Inkscape's source code. You can download the [http://www.inkscape.org/download.php official release source code], a [http://inkscape.modevia.com/svn-snap/?M=D development snapshot] or checkout a copy of the current state of the [http://www.inkscape.org/svn.php?lang=en SVN repository] using [http://subversion.tigris.org/ subversion].&lt;br /&gt;
*A means of getting Inkscape's numerous dependencies: glibmm, gtkmm, lmcs, boehm gc... We recommend the use of [http://www.macports.org/ MacPorts] right now. [http://www.finkproject.org/ Fink] was used in the past but there is no information about wether it meets Inkscape needs currently. Alternatively you could use Inkscape all-in-one universal build script to install them.&lt;br /&gt;
&lt;br /&gt;
== Compiling Inkscape with X11, using MacPorts ==&lt;br /&gt;
&lt;br /&gt;
=== Installing dependencies ===&lt;br /&gt;
You can use MacPorts to list Inkscape dependencies:&lt;br /&gt;
&amp;lt;pre&amp;gt;port deps inkscape&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some are mandatory and you can install them with the command:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port install boehmgc gtkmm intltool libxslt lcms popt boost&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Others provide additional functionality to Inkscape:&lt;br /&gt;
* &amp;lt;code&amp;gt;gnome-vfs&amp;lt;/code&amp;gt; : access to remote servers, in particular import from Open Clipart Library&lt;br /&gt;
* &amp;lt;code&amp;gt;aspell&amp;lt;/code&amp;gt; : check spelling of text elements [Note: I have never seen it working on OS X]&lt;br /&gt;
* &amp;lt;code&amp;gt;libgnomeprintui&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;loudmouth&amp;lt;/code&amp;gt; : jabber library used by InkBoard&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port install gnome-vfs aspell libgnomeprintui loudmouth&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== For the impatient ===&lt;br /&gt;
There is an automated build script for Mac OS X included with Inkscape source code, in the directory packaging/macosx. It has built-in help:&lt;br /&gt;
&amp;lt;pre&amp;gt; cd packaging/macosx/&lt;br /&gt;
./osx-build.sh help&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Basically to update from svn, generate the configure script, configure, build, install and package Inkscape into a double clickable app bundle you just need to issue the command&lt;br /&gt;
&amp;lt;pre&amp;gt;./osx-build.sh update autogen configure build install -s package&amp;lt;/pre&amp;gt;&lt;br /&gt;
or more simply&lt;br /&gt;
&amp;lt;pre&amp;gt;./osx-build.sh u a c b i -s p&amp;lt;/pre&amp;gt;&lt;br /&gt;
or even more simply&lt;br /&gt;
&amp;lt;pre&amp;gt;./osx-build.sh all -s&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Step by step instructions ===&lt;br /&gt;
If you want to know what you are doing or to understand how the build script works, please read the following paragraphs.&lt;br /&gt;
&lt;br /&gt;
==== Setting the build environment ====&lt;br /&gt;
MacPorts's hierarchy (/opt/local/) is not searched for libraries by default. Therefore, before the configuration starts, some environment variables need to be set. The environment variables are presented in bash syntax here. &lt;br /&gt;
&amp;lt;pre&amp;gt;export LIBPREFIX=&amp;quot;/opt/local&amp;quot;&lt;br /&gt;
#  automake seach path&lt;br /&gt;
export CPATH=&amp;quot;$LIBPREFIX/include&amp;quot;&lt;br /&gt;
#  configure search path&lt;br /&gt;
export CPPFLAGS=&amp;quot;-I$LIBPREFIX/include&amp;quot;&lt;br /&gt;
export LDFLAGS=&amp;quot;-L$LIBPREFIX/lib&amp;quot;&lt;br /&gt;
#  compiler arguments&lt;br /&gt;
export CFLAGS=&amp;quot;-O3 -Wall&amp;quot;&lt;br /&gt;
export CXXFLAGS=&amp;quot;$CFLAGS&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also use &amp;lt;code&amp;gt;[http://en.wikipedia.org/wiki/Ccache ccache]&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;sudo port install ccache&amp;lt;/code&amp;gt;) to speed up the compilation a bit. To do so, add compiler variables:&lt;br /&gt;
&amp;lt;pre&amp;gt;export CC=&amp;quot;ccache gcc&amp;quot;&lt;br /&gt;
export CXX=&amp;quot;ccache g++&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Configuring ====&lt;br /&gt;
If you compile Inkscape for the first time from an svn checkout you probably need to build the configure script. Navigate to Inkscape's source directory and run:&lt;br /&gt;
&amp;lt;pre&amp;gt;./autogen.sh&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then run configure with the options &amp;lt;code&amp;gt;--disable-static --enable-shared&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;--prefix&amp;lt;/code&amp;gt; which sets the directory where the build products are placed. It must be somewhere you have write access to.&lt;br /&gt;
&amp;lt;pre&amp;gt;./configure --disable-static --enable-shared --prefix=/path/to/build/products/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I you want to package Inkscape into a double-clickable &amp;lt;code&amp;gt;.app&amp;lt;/code&amp;gt; bundle in order to access it like a regular OS X application (you probably want to do it), you need to add the option &amp;lt;code&amp;gt;--enable-osxapp&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;./configure {...} --enable-osxapp&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you have loudmouth installed and you want to enable whiteboard functionality in Inkscape, add &amp;lt;code&amp;gt;--enable-inkboard&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Other configuration options can be set, check the list of options by issuing:&lt;br /&gt;
&amp;lt;pre&amp;gt;./configure --help&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Building and Installing ====&lt;br /&gt;
Just run:&lt;br /&gt;
&amp;lt;pre&amp;gt;make&lt;br /&gt;
make install&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Creating an .app bundle ====&lt;br /&gt;
Assuming that you have used the &amp;lt;code&amp;gt;--enable-osxapp&amp;lt;/code&amp;gt; option during &amp;lt;code&amp;gt;configure&amp;lt;/code&amp;gt;, navigate to Mac OS X packaging directory in Inkscape source code and use the automated script:&lt;br /&gt;
&amp;lt;pre&amp;gt;cd packaging/macosx&lt;br /&gt;
./osx-app.sh -s -b /path/to/install/prefix/bin/inkscape -p ../Info.plist macosx&amp;lt;/pre&amp;gt;&lt;br /&gt;
The script copies Inkscape binary and all its dependencies into the app bundle. The &amp;lt;code&amp;gt;-s&amp;lt;/code&amp;gt; options strips libraries from debugging information (the bundle is therefore smaller). Omit this option if you want to keep debugging info. &lt;br /&gt;
&lt;br /&gt;
You can also add pre-compiled python modules to the app, which other users can take advantage of. See the built in help for the syntax:&lt;br /&gt;
&amp;lt;pre&amp;gt;./osx-app.sh -h&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Creating a disk image to distribute Inkscape ====&lt;br /&gt;
Inkscape.app created at the previous step is completely independent from the original location of the libraries and can therefore be distributed. It will only work on one platform though (PPC or Intel): the one you built it on.&lt;br /&gt;
The most widespread way of distributing applications on Mac OS X is via .dmg images. You can created a dmg image of Inkscape, with a nice background, with the script:&lt;br /&gt;
&amp;lt;pre&amp;gt;./osx-dmg.sh -p Inkscape.app&amp;lt;/pre&amp;gt;&lt;br /&gt;
in the packaging directory for Mac OS X (where your app bundle should be, otherwise modify the path to Inkscape.app).&lt;br /&gt;
&lt;br /&gt;
== Compiling a Universal Binary of Inkscape with X11, using the all-in-one build script ==&lt;br /&gt;
&lt;br /&gt;
To build a Universal Binary of Inkscape you also need to build Universal versions of all its dependencies (i.e., gtk+, cairo, pango, etc).  You can do this using the build-gtk.sh script from the Inkscape repository (it's in packaging/macosx/native-gtk/).&lt;br /&gt;
&lt;br /&gt;
This process is relatively untested, as it is only being used by Michael Wybrow  for official Inkscape release builds.  If you have any troubles using this process then please report them to Michael (mjwybrow on sourceforge).&lt;br /&gt;
&lt;br /&gt;
The process is:&lt;br /&gt;
        export PREFIX=/your/install/prefix&lt;br /&gt;
        export UNIVERSAL_BUILD=Yes&lt;br /&gt;
        ./build-gtk bootstrap&lt;br /&gt;
        ./build-gtk build inkscape&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Compiling Inkscape with native GTK using MacPorts [experimental] ==&lt;br /&gt;
This process will be very similar to compiling a X11 version of Inkscape except for the building of dependencies: you will need to build native versions of GTK and Cairo.&lt;br /&gt;
At the moment (2007-09-31) this process does not produce a usable version of Inkscape but the more people try to use it, the quicker the bugs will be ironed out!&lt;br /&gt;
&lt;br /&gt;
=== Native version of GTK and Cairo ===&lt;br /&gt;
In theory you should be able to install a second MacPorts tree independent from your usual one (in /opt/local-native/ for example) but I did not manage to have the two cohabit so I would advise doing everything in your regular MacPorts tree. However, this should not be too much of a problem thanks to the power of port &amp;quot;variants&amp;quot; and port &amp;quot;deactivation&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
You need to deactivate (suppress from the tree without really uninstalling) current version of gtk, cairo, cairomm and pango:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port deactivate gtk2 cairo cairomm&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then install native variants:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port install cairo +quartz cairomm +quartz gtk2 +quartz&amp;lt;/pre&amp;gt;&lt;br /&gt;
There is currently an incompatibility with gtk and cairo native ports. It is reported in this ticket at MacPorts [http://trac.macports.org/projects/macports/ticket/11745]&lt;br /&gt;
(Note 22/10/07 : with my freshly installed MacPorts I did not get any compile errors and skipped the patch, the ticket is still open though)&lt;br /&gt;
You need to edit the Portfile for gtk2 according to the Portfile patch:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port edit gtk2&amp;lt;/pre&amp;gt;&lt;br /&gt;
and add the patch to the &amp;lt;code&amp;gt;files&amp;lt;/code&amp;gt; directory next to the Portfile. If you edit your file in a Cocoa editor just Command+click on the filename in the window title bar and this will bring a menu with the file hierarchy down to the Portfile. Go one step up and you're there. Otherwise the path is &amp;lt;pre&amp;gt;/opt/localquartz/var/macports/sources/rsync.macports.org/release/ports/x11/gtk2&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Pango without X requirements ===&lt;br /&gt;
&lt;br /&gt;
(Note 22/10/07 : with my freshly installed MacPorts this variant was already there)&lt;br /&gt;
 &lt;br /&gt;
Then you need to prevent Pango to try using Xft or X to render fonts. To do this kind of cleanly we'll create a new variant for Pango, called &amp;lt;code&amp;gt;no_x&amp;lt;/code&amp;gt;. So:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port edit pango&amp;lt;/pre&amp;gt;&lt;br /&gt;
and, after configure.arg add:&lt;br /&gt;
&amp;lt;pre&amp;gt;variant no_x description {Remove X and Xft rendering} {&lt;br /&gt;
	configure.args-append --with-x=no&lt;br /&gt;
	depends_lib-delete lib:libX11.6:XFree86 \&lt;br /&gt;
		port:Xft2&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
The deactivate pango and install the new variant:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port deactivate pango&lt;br /&gt;
sudo port install pango +no_x&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Install the rest ===&lt;br /&gt;
Eventually, follow the regular install procedure:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port install libxslt boost boehmgc gtkmm lcms intltool popt&amp;lt;/pre&amp;gt;&lt;br /&gt;
Get inkscape source code and go in the mac OS X specific packaging directory&lt;br /&gt;
&amp;lt;pre&amp;gt;cd packaging/macosx&amp;lt;/pre&amp;gt;&lt;br /&gt;
There edit osx-build.sh to remove the configure option &amp;lt;code&amp;gt;--enable-osxapp&amp;lt;/code&amp;gt; because it puts inkscape in a .app bundle where it is started together with X11, which would defeat the purpose of this native compilation. You can also specify an alternative install prefix if you want. Then&lt;br /&gt;
&amp;lt;pre&amp;gt;./osx-build.sh u a c b i&amp;lt;/pre&amp;gt;&lt;br /&gt;
and a native version of Inkscape is installed in the prefix you specified or in the &amp;lt;code&amp;gt;Build/bin&amp;lt;/code&amp;gt; directory of Inkscape's source code. You can test it by&lt;br /&gt;
&amp;lt;pre&amp;gt; cd ../../Build/bin/&lt;br /&gt;
./inkscape&amp;lt;/pre&amp;gt;&lt;br /&gt;
NB: if you compiled a GTK theme engine against your old GTK install (i.e. the one with X11) and try to use it with the new install, it will complain, so edit &amp;lt;code&amp;gt;~/.gtkrc-2.0&amp;lt;/code&amp;gt; to remove the offending theme.&lt;br /&gt;
&lt;br /&gt;
== Compiling Inkscapewith native GTK using the all in one build script [experimental] ==&lt;br /&gt;
&lt;br /&gt;
To build a native-GTK build of Inkscape, GTK and some of its dependencies must be built with special options. You can do this using the build-gtk.sh script from the Inkscape repository (it's in packaging/macosx/native-gtk/).  This is a modified version of the Imendio native build script, found with instructions on this page:&lt;br /&gt;
http://developer.imendio.com/projects/gtk-macosx/build-instructions&lt;br /&gt;
&lt;br /&gt;
This process is relatively untested. If you have any troubles using this process then please report them to Michael Wybrow (mjwybrow on sourceforge).&lt;br /&gt;
&lt;br /&gt;
The process is:&lt;br /&gt;
       export PREFIX=/your/install/prefix&lt;br /&gt;
       ./build-gtk bootstrap&lt;br /&gt;
       ./build-gtk build inkscape&lt;br /&gt;
&lt;br /&gt;
== Enabling python effects ==&lt;br /&gt;
moved to [[GettingEffectsWorking]]&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
=== Apple Documentation ===&lt;br /&gt;
* [http://developer.apple.com/documentation/MacOSX/Conceptual/BPRuntimeConfig/BPRuntimeConfig.html Introduction to Runtime Configuration] Covers the Info.plist files, Preferences, Environment variables and has a list of the most important Properties that the Property List should contain.&lt;br /&gt;
&lt;br /&gt;
=== Packaging ===&lt;br /&gt;
&lt;br /&gt;
* [http://www.sveinbjorn.org/platypus Sveinbjorn Thordarson's Website] The author of Platypus, the Script Exec wrapper that launches the Inkscape binary.&lt;br /&gt;
* [http://freespace.ausgamers.com/2005/02/creating-os-x-application-bundles-step.html  Creating OS X application bundles step by step] Covers the bundle concepts, copying libraries into the bundle, editing libraries with the install_name_tool, the Info.plist file and adding an icon.&lt;br /&gt;
* [http://java.sun.com/developer/technicalArticles/JavaLP/JavaToMac3/ Bringing your Java Application to Mac OS X] I would regard this a little dated, and the detail is (unsurprisingly) Java-related, but it is a gentle introduction to the role of the .app bundle and give a most clear account of how to create one.&lt;br /&gt;
* The [http://gimp-app.sourceforge.net/gimp.app.howto.txt Gimp .app Howto] This is a very bare document, and would be of little help to you if you were new to making packages. Note that it seems to refer to a more mature Clipboard technique and Online help than we currently have; and we ought to move to parity in these areas.&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer Documentation]]&lt;/div&gt;</summary>
		<author><name>Jiho</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=CompilingMacOsX&amp;diff=16670</id>
		<title>CompilingMacOsX</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=CompilingMacOsX&amp;diff=16670"/>
		<updated>2007-11-03T23:27:55Z</updated>

		<summary type="html">&lt;p&gt;Jiho: /* Creating a disk image to distribute Inkscape */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Requirements ==&lt;br /&gt;
To compile Inkscape from source you will need:&lt;br /&gt;
*Mac OS X &amp;gt; 10.3&lt;br /&gt;
*XCode Tools (with gcc)&lt;br /&gt;
*Inkscape's source code. You can get the [http://www.inkscape.org/download.php official release source code], a [http://inkscape.modevia.com/svn-snap/?M=D SVN snapshot] or a copy of the [http://www.inkscape.org/svn.php?lang=en SVN repository].&lt;br /&gt;
*Inkscape's dependencies: glibmm, gtkmm, lmcs, boehm gc... You can use a package distribution system ([http://www.finkproject.org/ Fink] or [http://www.macports.org/ MacPorts], formerly known as [http://darwinports.opendarwin.org/ DarwinPorts]) or Inkscape all-in-one universal build script to install them. Inkscape requires a recent version of gtk, hence only MacPorts can be used at the moment. Once Fink updates gtk it should not be a problem to use it.&lt;br /&gt;
&lt;br /&gt;
== Compiling Inkscape with X11, using MacPorts ==&lt;br /&gt;
&lt;br /&gt;
=== Installing dependencies ===&lt;br /&gt;
You can use MacPorts to list Inkscape dependencies:&lt;br /&gt;
&amp;lt;pre&amp;gt;port deps inkscape&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some are mandatory and you can install them with the command:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port install boehmgc gtkmm intltool libxslt lcms popt boost&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Others provide additional functionality to Inkscape:&lt;br /&gt;
* &amp;lt;code&amp;gt;gnome-vfs&amp;lt;/code&amp;gt; : access to remote servers, in particular import from Open Clipart Library&lt;br /&gt;
* &amp;lt;code&amp;gt;aspell&amp;lt;/code&amp;gt; : check spelling of text elements [Note: I have never seen it working on OS X]&lt;br /&gt;
* &amp;lt;code&amp;gt;libgnomeprintui&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;loudmouth&amp;lt;/code&amp;gt; : jabber library used by InkBoard&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port install gnome-vfs aspell libgnomeprintui loudmouth&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== For the impatient ===&lt;br /&gt;
There is an automated build script for Mac OS X included with Inkscape source code, in the directory packaging/macosx. It has built-in help:&lt;br /&gt;
&amp;lt;pre&amp;gt; cd packaging/macosx/&lt;br /&gt;
./osx-build.sh help&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Basically to update from svn, generate the configure script, configure, build, install and package Inkscape into a double clickable app bundle you just need to issue the command&lt;br /&gt;
&amp;lt;pre&amp;gt;./osx-build.sh update autogen configure build install -s package&amp;lt;/pre&amp;gt;&lt;br /&gt;
or more simply&lt;br /&gt;
&amp;lt;pre&amp;gt;./osx-build.sh u a c b i -s p&amp;lt;/pre&amp;gt;&lt;br /&gt;
or even more simply&lt;br /&gt;
&amp;lt;pre&amp;gt;./osx-build.sh all -s&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Step by step instructions ===&lt;br /&gt;
If you want to know what you are doing or to understand how the build script works, please read the following paragraphs.&lt;br /&gt;
&lt;br /&gt;
==== Setting the build environment ====&lt;br /&gt;
MacPorts's hierarchy (/opt/local/) is not searched for libraries by default. Therefore, before the configuration starts, some environment variables need to be set. The environment variables are presented in bash syntax here. &lt;br /&gt;
&amp;lt;pre&amp;gt;export LIBPREFIX=&amp;quot;/opt/local&amp;quot;&lt;br /&gt;
#  automake seach path&lt;br /&gt;
export CPATH=&amp;quot;$LIBPREFIX/include&amp;quot;&lt;br /&gt;
#  configure search path&lt;br /&gt;
export CPPFLAGS=&amp;quot;-I$LIBPREFIX/include&amp;quot;&lt;br /&gt;
export LDFLAGS=&amp;quot;-L$LIBPREFIX/lib&amp;quot;&lt;br /&gt;
#  compiler arguments&lt;br /&gt;
export CFLAGS=&amp;quot;-O3 -Wall&amp;quot;&lt;br /&gt;
export CXXFLAGS=&amp;quot;$CFLAGS&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also use &amp;lt;code&amp;gt;[http://en.wikipedia.org/wiki/Ccache ccache]&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;sudo port install ccache&amp;lt;/code&amp;gt;) to speed up the compilation a bit. To do so, add compiler variables:&lt;br /&gt;
&amp;lt;pre&amp;gt;export CC=&amp;quot;ccache gcc&amp;quot;&lt;br /&gt;
export CXX=&amp;quot;ccache g++&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Configuring ====&lt;br /&gt;
If you compile Inkscape for the first time from an svn checkout you probably need to build the configure script. Navigate to Inkscape's source directory and run:&lt;br /&gt;
&amp;lt;pre&amp;gt;./autogen.sh&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then run configure with the options &amp;lt;code&amp;gt;--disable-static --enable-shared&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;--prefix&amp;lt;/code&amp;gt; which sets the directory where the build products are placed. It must be somewhere you have write access to.&lt;br /&gt;
&amp;lt;pre&amp;gt;./configure --disable-static --enable-shared --prefix=/path/to/build/products/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I you want to package Inkscape into a double-clickable &amp;lt;code&amp;gt;.app&amp;lt;/code&amp;gt; bundle in order to access it like a regular OS X application (you probably want to do it), you need to add the option &amp;lt;code&amp;gt;--enable-osxapp&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;./configure {...} --enable-osxapp&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you have loudmouth installed and you want to enable whiteboard functionality in Inkscape, add &amp;lt;code&amp;gt;--enable-inkboard&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Other configuration options can be set, check the list of options by issuing:&lt;br /&gt;
&amp;lt;pre&amp;gt;./configure --help&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Building and Installing ====&lt;br /&gt;
Just run:&lt;br /&gt;
&amp;lt;pre&amp;gt;make&lt;br /&gt;
make install&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Creating an .app bundle ====&lt;br /&gt;
Assuming that you have used the &amp;lt;code&amp;gt;--enable-osxapp&amp;lt;/code&amp;gt; option during &amp;lt;code&amp;gt;configure&amp;lt;/code&amp;gt;, navigate to Mac OS X packaging directory in Inkscape source code and use the automated script:&lt;br /&gt;
&amp;lt;pre&amp;gt;cd packaging/macosx&lt;br /&gt;
./osx-app.sh -s -b /path/to/install/prefix/bin/inkscape -p ../Info.plist macosx&amp;lt;/pre&amp;gt;&lt;br /&gt;
The script copies Inkscape binary and all its dependencies into the app bundle. The &amp;lt;code&amp;gt;-s&amp;lt;/code&amp;gt; options strips libraries from debugging information (the bundle is therefore smaller). Omit this option if you want to keep debugging info. &lt;br /&gt;
&lt;br /&gt;
You can also add pre-compiled python modules to the app, which other users can take advantage of. See the built in help for the syntax:&lt;br /&gt;
&amp;lt;pre&amp;gt;./osx-app.sh -h&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Creating a disk image to distribute Inkscape ====&lt;br /&gt;
Inkscape.app created at the previous step is completely independent from the original location of the libraries and can therefore be distributed. It will only work on one platform though (PPC or Intel): the one you built it on.&lt;br /&gt;
The most widespread way of distributing applications on Mac OS X is via .dmg images. You can created a dmg image of Inkscape, with a nice background, with the script:&lt;br /&gt;
&amp;lt;pre&amp;gt;./osx-dmg.sh -p Inkscape.app&amp;lt;/pre&amp;gt;&lt;br /&gt;
in the packaging directory for Mac OS X (where your app bundle should be, otherwise modify the path to Inkscape.app).&lt;br /&gt;
&lt;br /&gt;
== Compiling a Universal Binary of Inkscape with X11, using the all-in-one build script ==&lt;br /&gt;
&lt;br /&gt;
To build a Universal Binary of Inkscape you also need to build Universal versions of all its dependencies (i.e., gtk+, cairo, pango, etc).  You can do this using the build-gtk.sh script from the Inkscape repository (it's in packaging/macosx/native-gtk/).&lt;br /&gt;
&lt;br /&gt;
This process is relatively untested, as it is only being used by Michael Wybrow  for official Inkscape release builds.  If you have any troubles using this process then please report them to Michael (mjwybrow on sourceforge).&lt;br /&gt;
&lt;br /&gt;
The process is:&lt;br /&gt;
        export PREFIX=/your/install/prefix&lt;br /&gt;
        export UNIVERSAL_BUILD=Yes&lt;br /&gt;
        ./build-gtk bootstrap&lt;br /&gt;
        ./build-gtk build inkscape&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Compiling Inkscape with native GTK using MacPorts [experimental] ==&lt;br /&gt;
This process will be very similar to compiling a X11 version of Inkscape except for the building of dependencies: you will need to build native versions of GTK and Cairo.&lt;br /&gt;
At the moment (2007-09-31) this process does not produce a usable version of Inkscape but the more people try to use it, the quicker the bugs will be ironed out!&lt;br /&gt;
&lt;br /&gt;
=== Native version of GTK and Cairo ===&lt;br /&gt;
In theory you should be able to install a second MacPorts tree independent from your usual one (in /opt/local-native/ for example) but I did not manage to have the two cohabit so I would advise doing everything in your regular MacPorts tree. However, this should not be too much of a problem thanks to the power of port &amp;quot;variants&amp;quot; and port &amp;quot;deactivation&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
You need to deactivate (suppress from the tree without really uninstalling) current version of gtk, cairo, cairomm and pango:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port deactivate gtk2 cairo cairomm&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then install native variants:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port install cairo +quartz cairomm +quartz gtk2 +quartz&amp;lt;/pre&amp;gt;&lt;br /&gt;
There is currently an incompatibility with gtk and cairo native ports. It is reported in this ticket at MacPorts [http://trac.macports.org/projects/macports/ticket/11745]&lt;br /&gt;
(Note 22/10/07 : with my freshly installed MacPorts I did not get any compile errors and skipped the patch, the ticket is still open though)&lt;br /&gt;
You need to edit the Portfile for gtk2 according to the Portfile patch:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port edit gtk2&amp;lt;/pre&amp;gt;&lt;br /&gt;
and add the patch to the &amp;lt;code&amp;gt;files&amp;lt;/code&amp;gt; directory next to the Portfile. If you edit your file in a Cocoa editor just Command+click on the filename in the window title bar and this will bring a menu with the file hierarchy down to the Portfile. Go one step up and you're there. Otherwise the path is &amp;lt;pre&amp;gt;/opt/localquartz/var/macports/sources/rsync.macports.org/release/ports/x11/gtk2&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Pango without X requirements ===&lt;br /&gt;
&lt;br /&gt;
(Note 22/10/07 : with my freshly installed MacPorts this variant was already there)&lt;br /&gt;
 &lt;br /&gt;
Then you need to prevent Pango to try using Xft or X to render fonts. To do this kind of cleanly we'll create a new variant for Pango, called &amp;lt;code&amp;gt;no_x&amp;lt;/code&amp;gt;. So:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port edit pango&amp;lt;/pre&amp;gt;&lt;br /&gt;
and, after configure.arg add:&lt;br /&gt;
&amp;lt;pre&amp;gt;variant no_x description {Remove X and Xft rendering} {&lt;br /&gt;
	configure.args-append --with-x=no&lt;br /&gt;
	depends_lib-delete lib:libX11.6:XFree86 \&lt;br /&gt;
		port:Xft2&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
The deactivate pango and install the new variant:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port deactivate pango&lt;br /&gt;
sudo port install pango +no_x&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Install the rest ===&lt;br /&gt;
Eventually, follow the regular install procedure:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port install libxslt boost boehmgc gtkmm lcms intltool popt&amp;lt;/pre&amp;gt;&lt;br /&gt;
Get inkscape source code and go in the mac OS X specific packaging directory&lt;br /&gt;
&amp;lt;pre&amp;gt;cd packaging/macosx&amp;lt;/pre&amp;gt;&lt;br /&gt;
There edit osx-build.sh to remove the configure option &amp;lt;code&amp;gt;--enable-osxapp&amp;lt;/code&amp;gt; because it puts inkscape in a .app bundle where it is started together with X11, which would defeat the purpose of this native compilation. You can also specify an alternative install prefix if you want. Then&lt;br /&gt;
&amp;lt;pre&amp;gt;./osx-build.sh u a c b i&amp;lt;/pre&amp;gt;&lt;br /&gt;
and a native version of Inkscape is installed in the prefix you specified or in the &amp;lt;code&amp;gt;Build/bin&amp;lt;/code&amp;gt; directory of Inkscape's source code. You can test it by&lt;br /&gt;
&amp;lt;pre&amp;gt; cd ../../Build/bin/&lt;br /&gt;
./inkscape&amp;lt;/pre&amp;gt;&lt;br /&gt;
NB: if you compiled a GTK theme engine against your old GTK install (i.e. the one with X11) and try to use it with the new install, it will complain, so edit &amp;lt;code&amp;gt;~/.gtkrc-2.0&amp;lt;/code&amp;gt; to remove the offending theme.&lt;br /&gt;
&lt;br /&gt;
== Compiling Inkscapewith native GTK using the all in one build script [experimental] ==&lt;br /&gt;
&lt;br /&gt;
To build a native-GTK build of Inkscape, GTK and some of its dependencies must be built with special options. You can do this using the build-gtk.sh script from the Inkscape repository (it's in packaging/macosx/native-gtk/).  This is a modified version of the Imendio native build script, found with instructions on this page:&lt;br /&gt;
http://developer.imendio.com/projects/gtk-macosx/build-instructions&lt;br /&gt;
&lt;br /&gt;
This process is relatively untested. If you have any troubles using this process then please report them to Michael Wybrow (mjwybrow on sourceforge).&lt;br /&gt;
&lt;br /&gt;
The process is:&lt;br /&gt;
       export PREFIX=/your/install/prefix&lt;br /&gt;
       ./build-gtk bootstrap&lt;br /&gt;
       ./build-gtk build inkscape&lt;br /&gt;
&lt;br /&gt;
== Enabling python effects ==&lt;br /&gt;
moved to [[GettingEffectsWorking]]&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
=== Apple Documentation ===&lt;br /&gt;
* [http://developer.apple.com/documentation/MacOSX/Conceptual/BPRuntimeConfig/BPRuntimeConfig.html Introduction to Runtime Configuration] Covers the Info.plist files, Preferences, Environment variables and has a list of the most important Properties that the Property List should contain.&lt;br /&gt;
&lt;br /&gt;
=== Packaging ===&lt;br /&gt;
&lt;br /&gt;
* [http://www.sveinbjorn.org/platypus Sveinbjorn Thordarson's Website] The author of Platypus, the Script Exec wrapper that launches the Inkscape binary.&lt;br /&gt;
* [http://freespace.ausgamers.com/2005/02/creating-os-x-application-bundles-step.html  Creating OS X application bundles step by step] Covers the bundle concepts, copying libraries into the bundle, editing libraries with the install_name_tool, the Info.plist file and adding an icon.&lt;br /&gt;
* [http://java.sun.com/developer/technicalArticles/JavaLP/JavaToMac3/ Bringing your Java Application to Mac OS X] I would regard this a little dated, and the detail is (unsurprisingly) Java-related, but it is a gentle introduction to the role of the .app bundle and give a most clear account of how to create one.&lt;br /&gt;
* The [http://gimp-app.sourceforge.net/gimp.app.howto.txt Gimp .app Howto] This is a very bare document, and would be of little help to you if you were new to making packages. Note that it seems to refer to a more mature Clipboard technique and Online help than we currently have; and we ought to move to parity in these areas.&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer Documentation]]&lt;/div&gt;</summary>
		<author><name>Jiho</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=CompilingMacOsX&amp;diff=16669</id>
		<title>CompilingMacOsX</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=CompilingMacOsX&amp;diff=16669"/>
		<updated>2007-11-03T23:26:15Z</updated>

		<summary type="html">&lt;p&gt;Jiho: /* Creating an .app bundle */ add a note about python packages&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Requirements ==&lt;br /&gt;
To compile Inkscape from source you will need:&lt;br /&gt;
*Mac OS X &amp;gt; 10.3&lt;br /&gt;
*XCode Tools (with gcc)&lt;br /&gt;
*Inkscape's source code. You can get the [http://www.inkscape.org/download.php official release source code], a [http://inkscape.modevia.com/svn-snap/?M=D SVN snapshot] or a copy of the [http://www.inkscape.org/svn.php?lang=en SVN repository].&lt;br /&gt;
*Inkscape's dependencies: glibmm, gtkmm, lmcs, boehm gc... You can use a package distribution system ([http://www.finkproject.org/ Fink] or [http://www.macports.org/ MacPorts], formerly known as [http://darwinports.opendarwin.org/ DarwinPorts]) or Inkscape all-in-one universal build script to install them. Inkscape requires a recent version of gtk, hence only MacPorts can be used at the moment. Once Fink updates gtk it should not be a problem to use it.&lt;br /&gt;
&lt;br /&gt;
== Compiling Inkscape with X11, using MacPorts ==&lt;br /&gt;
&lt;br /&gt;
=== Installing dependencies ===&lt;br /&gt;
You can use MacPorts to list Inkscape dependencies:&lt;br /&gt;
&amp;lt;pre&amp;gt;port deps inkscape&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some are mandatory and you can install them with the command:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port install boehmgc gtkmm intltool libxslt lcms popt boost&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Others provide additional functionality to Inkscape:&lt;br /&gt;
* &amp;lt;code&amp;gt;gnome-vfs&amp;lt;/code&amp;gt; : access to remote servers, in particular import from Open Clipart Library&lt;br /&gt;
* &amp;lt;code&amp;gt;aspell&amp;lt;/code&amp;gt; : check spelling of text elements [Note: I have never seen it working on OS X]&lt;br /&gt;
* &amp;lt;code&amp;gt;libgnomeprintui&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;loudmouth&amp;lt;/code&amp;gt; : jabber library used by InkBoard&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port install gnome-vfs aspell libgnomeprintui loudmouth&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== For the impatient ===&lt;br /&gt;
There is an automated build script for Mac OS X included with Inkscape source code, in the directory packaging/macosx. It has built-in help:&lt;br /&gt;
&amp;lt;pre&amp;gt; cd packaging/macosx/&lt;br /&gt;
./osx-build.sh help&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Basically to update from svn, generate the configure script, configure, build, install and package Inkscape into a double clickable app bundle you just need to issue the command&lt;br /&gt;
&amp;lt;pre&amp;gt;./osx-build.sh update autogen configure build install -s package&amp;lt;/pre&amp;gt;&lt;br /&gt;
or more simply&lt;br /&gt;
&amp;lt;pre&amp;gt;./osx-build.sh u a c b i -s p&amp;lt;/pre&amp;gt;&lt;br /&gt;
or even more simply&lt;br /&gt;
&amp;lt;pre&amp;gt;./osx-build.sh all -s&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Step by step instructions ===&lt;br /&gt;
If you want to know what you are doing or to understand how the build script works, please read the following paragraphs.&lt;br /&gt;
&lt;br /&gt;
==== Setting the build environment ====&lt;br /&gt;
MacPorts's hierarchy (/opt/local/) is not searched for libraries by default. Therefore, before the configuration starts, some environment variables need to be set. The environment variables are presented in bash syntax here. &lt;br /&gt;
&amp;lt;pre&amp;gt;export LIBPREFIX=&amp;quot;/opt/local&amp;quot;&lt;br /&gt;
#  automake seach path&lt;br /&gt;
export CPATH=&amp;quot;$LIBPREFIX/include&amp;quot;&lt;br /&gt;
#  configure search path&lt;br /&gt;
export CPPFLAGS=&amp;quot;-I$LIBPREFIX/include&amp;quot;&lt;br /&gt;
export LDFLAGS=&amp;quot;-L$LIBPREFIX/lib&amp;quot;&lt;br /&gt;
#  compiler arguments&lt;br /&gt;
export CFLAGS=&amp;quot;-O3 -Wall&amp;quot;&lt;br /&gt;
export CXXFLAGS=&amp;quot;$CFLAGS&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also use &amp;lt;code&amp;gt;[http://en.wikipedia.org/wiki/Ccache ccache]&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;sudo port install ccache&amp;lt;/code&amp;gt;) to speed up the compilation a bit. To do so, add compiler variables:&lt;br /&gt;
&amp;lt;pre&amp;gt;export CC=&amp;quot;ccache gcc&amp;quot;&lt;br /&gt;
export CXX=&amp;quot;ccache g++&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Configuring ====&lt;br /&gt;
If you compile Inkscape for the first time from an svn checkout you probably need to build the configure script. Navigate to Inkscape's source directory and run:&lt;br /&gt;
&amp;lt;pre&amp;gt;./autogen.sh&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then run configure with the options &amp;lt;code&amp;gt;--disable-static --enable-shared&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;--prefix&amp;lt;/code&amp;gt; which sets the directory where the build products are placed. It must be somewhere you have write access to.&lt;br /&gt;
&amp;lt;pre&amp;gt;./configure --disable-static --enable-shared --prefix=/path/to/build/products/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I you want to package Inkscape into a double-clickable &amp;lt;code&amp;gt;.app&amp;lt;/code&amp;gt; bundle in order to access it like a regular OS X application (you probably want to do it), you need to add the option &amp;lt;code&amp;gt;--enable-osxapp&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;./configure {...} --enable-osxapp&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you have loudmouth installed and you want to enable whiteboard functionality in Inkscape, add &amp;lt;code&amp;gt;--enable-inkboard&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Other configuration options can be set, check the list of options by issuing:&lt;br /&gt;
&amp;lt;pre&amp;gt;./configure --help&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Building and Installing ====&lt;br /&gt;
Just run:&lt;br /&gt;
&amp;lt;pre&amp;gt;make&lt;br /&gt;
make install&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Creating an .app bundle ====&lt;br /&gt;
Assuming that you have used the &amp;lt;code&amp;gt;--enable-osxapp&amp;lt;/code&amp;gt; option during &amp;lt;code&amp;gt;configure&amp;lt;/code&amp;gt;, navigate to Mac OS X packaging directory in Inkscape source code and use the automated script:&lt;br /&gt;
&amp;lt;pre&amp;gt;cd packaging/macosx&lt;br /&gt;
./osx-app.sh -s -b /path/to/install/prefix/bin/inkscape -p ../Info.plist macosx&amp;lt;/pre&amp;gt;&lt;br /&gt;
The script copies Inkscape binary and all its dependencies into the app bundle. The &amp;lt;code&amp;gt;-s&amp;lt;/code&amp;gt; options strips libraries from debugging information (the bundle is therefore smaller). Omit this option if you want to keep debugging info. &lt;br /&gt;
&lt;br /&gt;
You can also add pre-compiled python modules to the app, which other users can take advantage of. See the built in help for the syntax:&lt;br /&gt;
&amp;lt;pre&amp;gt;./osx-app.sh -h&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Creating a disk image to distribute Inkscape ====&lt;br /&gt;
Inkscape.app created at the previous step is completely independent from the original location of the libraries and can therefore be distributed. It will only work on one platform though (PPC or Intel): the one you built it on.&lt;br /&gt;
The most widespread way of distributing applications on Mac OS X is via .dmg images. You can created a dmg image of Inkscape, with a nice background, with the script:&lt;br /&gt;
&amp;lt;pre&amp;gt;./osx-dmg.sh&amp;lt;/pre&amp;gt;&lt;br /&gt;
in the packaging directory for Mac OS X.&lt;br /&gt;
&lt;br /&gt;
== Compiling a Universal Binary of Inkscape with X11, using the all-in-one build script ==&lt;br /&gt;
&lt;br /&gt;
To build a Universal Binary of Inkscape you also need to build Universal versions of all its dependencies (i.e., gtk+, cairo, pango, etc).  You can do this using the build-gtk.sh script from the Inkscape repository (it's in packaging/macosx/native-gtk/).&lt;br /&gt;
&lt;br /&gt;
This process is relatively untested, as it is only being used by Michael Wybrow  for official Inkscape release builds.  If you have any troubles using this process then please report them to Michael (mjwybrow on sourceforge).&lt;br /&gt;
&lt;br /&gt;
The process is:&lt;br /&gt;
        export PREFIX=/your/install/prefix&lt;br /&gt;
        export UNIVERSAL_BUILD=Yes&lt;br /&gt;
        ./build-gtk bootstrap&lt;br /&gt;
        ./build-gtk build inkscape&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Compiling Inkscape with native GTK using MacPorts [experimental] ==&lt;br /&gt;
This process will be very similar to compiling a X11 version of Inkscape except for the building of dependencies: you will need to build native versions of GTK and Cairo.&lt;br /&gt;
At the moment (2007-09-31) this process does not produce a usable version of Inkscape but the more people try to use it, the quicker the bugs will be ironed out!&lt;br /&gt;
&lt;br /&gt;
=== Native version of GTK and Cairo ===&lt;br /&gt;
In theory you should be able to install a second MacPorts tree independent from your usual one (in /opt/local-native/ for example) but I did not manage to have the two cohabit so I would advise doing everything in your regular MacPorts tree. However, this should not be too much of a problem thanks to the power of port &amp;quot;variants&amp;quot; and port &amp;quot;deactivation&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
You need to deactivate (suppress from the tree without really uninstalling) current version of gtk, cairo, cairomm and pango:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port deactivate gtk2 cairo cairomm&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then install native variants:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port install cairo +quartz cairomm +quartz gtk2 +quartz&amp;lt;/pre&amp;gt;&lt;br /&gt;
There is currently an incompatibility with gtk and cairo native ports. It is reported in this ticket at MacPorts [http://trac.macports.org/projects/macports/ticket/11745]&lt;br /&gt;
(Note 22/10/07 : with my freshly installed MacPorts I did not get any compile errors and skipped the patch, the ticket is still open though)&lt;br /&gt;
You need to edit the Portfile for gtk2 according to the Portfile patch:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port edit gtk2&amp;lt;/pre&amp;gt;&lt;br /&gt;
and add the patch to the &amp;lt;code&amp;gt;files&amp;lt;/code&amp;gt; directory next to the Portfile. If you edit your file in a Cocoa editor just Command+click on the filename in the window title bar and this will bring a menu with the file hierarchy down to the Portfile. Go one step up and you're there. Otherwise the path is &amp;lt;pre&amp;gt;/opt/localquartz/var/macports/sources/rsync.macports.org/release/ports/x11/gtk2&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Pango without X requirements ===&lt;br /&gt;
&lt;br /&gt;
(Note 22/10/07 : with my freshly installed MacPorts this variant was already there)&lt;br /&gt;
 &lt;br /&gt;
Then you need to prevent Pango to try using Xft or X to render fonts. To do this kind of cleanly we'll create a new variant for Pango, called &amp;lt;code&amp;gt;no_x&amp;lt;/code&amp;gt;. So:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port edit pango&amp;lt;/pre&amp;gt;&lt;br /&gt;
and, after configure.arg add:&lt;br /&gt;
&amp;lt;pre&amp;gt;variant no_x description {Remove X and Xft rendering} {&lt;br /&gt;
	configure.args-append --with-x=no&lt;br /&gt;
	depends_lib-delete lib:libX11.6:XFree86 \&lt;br /&gt;
		port:Xft2&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
The deactivate pango and install the new variant:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port deactivate pango&lt;br /&gt;
sudo port install pango +no_x&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Install the rest ===&lt;br /&gt;
Eventually, follow the regular install procedure:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port install libxslt boost boehmgc gtkmm lcms intltool popt&amp;lt;/pre&amp;gt;&lt;br /&gt;
Get inkscape source code and go in the mac OS X specific packaging directory&lt;br /&gt;
&amp;lt;pre&amp;gt;cd packaging/macosx&amp;lt;/pre&amp;gt;&lt;br /&gt;
There edit osx-build.sh to remove the configure option &amp;lt;code&amp;gt;--enable-osxapp&amp;lt;/code&amp;gt; because it puts inkscape in a .app bundle where it is started together with X11, which would defeat the purpose of this native compilation. You can also specify an alternative install prefix if you want. Then&lt;br /&gt;
&amp;lt;pre&amp;gt;./osx-build.sh u a c b i&amp;lt;/pre&amp;gt;&lt;br /&gt;
and a native version of Inkscape is installed in the prefix you specified or in the &amp;lt;code&amp;gt;Build/bin&amp;lt;/code&amp;gt; directory of Inkscape's source code. You can test it by&lt;br /&gt;
&amp;lt;pre&amp;gt; cd ../../Build/bin/&lt;br /&gt;
./inkscape&amp;lt;/pre&amp;gt;&lt;br /&gt;
NB: if you compiled a GTK theme engine against your old GTK install (i.e. the one with X11) and try to use it with the new install, it will complain, so edit &amp;lt;code&amp;gt;~/.gtkrc-2.0&amp;lt;/code&amp;gt; to remove the offending theme.&lt;br /&gt;
&lt;br /&gt;
== Compiling Inkscapewith native GTK using the all in one build script [experimental] ==&lt;br /&gt;
&lt;br /&gt;
To build a native-GTK build of Inkscape, GTK and some of its dependencies must be built with special options. You can do this using the build-gtk.sh script from the Inkscape repository (it's in packaging/macosx/native-gtk/).  This is a modified version of the Imendio native build script, found with instructions on this page:&lt;br /&gt;
http://developer.imendio.com/projects/gtk-macosx/build-instructions&lt;br /&gt;
&lt;br /&gt;
This process is relatively untested. If you have any troubles using this process then please report them to Michael Wybrow (mjwybrow on sourceforge).&lt;br /&gt;
&lt;br /&gt;
The process is:&lt;br /&gt;
       export PREFIX=/your/install/prefix&lt;br /&gt;
       ./build-gtk bootstrap&lt;br /&gt;
       ./build-gtk build inkscape&lt;br /&gt;
&lt;br /&gt;
== Enabling python effects ==&lt;br /&gt;
moved to [[GettingEffectsWorking]]&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
=== Apple Documentation ===&lt;br /&gt;
* [http://developer.apple.com/documentation/MacOSX/Conceptual/BPRuntimeConfig/BPRuntimeConfig.html Introduction to Runtime Configuration] Covers the Info.plist files, Preferences, Environment variables and has a list of the most important Properties that the Property List should contain.&lt;br /&gt;
&lt;br /&gt;
=== Packaging ===&lt;br /&gt;
&lt;br /&gt;
* [http://www.sveinbjorn.org/platypus Sveinbjorn Thordarson's Website] The author of Platypus, the Script Exec wrapper that launches the Inkscape binary.&lt;br /&gt;
* [http://freespace.ausgamers.com/2005/02/creating-os-x-application-bundles-step.html  Creating OS X application bundles step by step] Covers the bundle concepts, copying libraries into the bundle, editing libraries with the install_name_tool, the Info.plist file and adding an icon.&lt;br /&gt;
* [http://java.sun.com/developer/technicalArticles/JavaLP/JavaToMac3/ Bringing your Java Application to Mac OS X] I would regard this a little dated, and the detail is (unsurprisingly) Java-related, but it is a gentle introduction to the role of the .app bundle and give a most clear account of how to create one.&lt;br /&gt;
* The [http://gimp-app.sourceforge.net/gimp.app.howto.txt Gimp .app Howto] This is a very bare document, and would be of little help to you if you were new to making packages. Note that it seems to refer to a more mature Clipboard technique and Online help than we currently have; and we ought to move to parity in these areas.&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer Documentation]]&lt;/div&gt;</summary>
		<author><name>Jiho</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=TangoifiedIcons&amp;diff=16635</id>
		<title>TangoifiedIcons</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=TangoifiedIcons&amp;diff=16635"/>
		<updated>2007-10-30T01:06:57Z</updated>

		<summary type="html">&lt;p&gt;Jiho: Expanded the introductory text&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== The reasoning ==&lt;br /&gt;
&lt;br /&gt;
Many GTK applications (including the whole Gnome desktop) are using Tango icons. These icons are designed to look nice in many environments (on all kinds of backgrounds and in many different OSes). So both for unification purposes on Linux and for cross-platform reasons, it would be nice to have a complete Tangoified Inkscape Icon Set for a future release (hopefully sooner rather than later).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Tangoified set [http://gnomelook.org/content/show.php/Tangofied+inkscape+icons+set?content=48140 here] is lacking many icons.  It is based on the [http://tango.freedesktop.org/ArtLibreSet Tango ArtLibre Icon Set], which Gimp also uses.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This page is a place to list all the icons Inkscape needs, the corresponding icons (whether they exists already or not) in the [http://tango.freedesktop.org/ArtLibreSet ArtLibre Set] and the proposed Tangoified icon for Inkscape. This would be the ArtLibre icon directly or an improved version, made to fit withing Inkscape more properly.&lt;br /&gt;
&lt;br /&gt;
== Standard naming and loading ==&lt;br /&gt;
&lt;br /&gt;
We should try to get Inkscape loading those from standard calls and naming so that users can switch icons externally. The [http://tango.freedesktop.org/Tango_Icon_Library#Download Tango naming utilities] and following the [http://standards.freedesktop.org/icon-naming-spec/icon-naming-spec-latest.html Icon Naming Specification] might help.&lt;br /&gt;
&lt;br /&gt;
To get things going well, we also would probably need to get Inkscape to hook itself in a standard GTK+ icon source. (So Inkscape would ask GTK+ to get an icon for it, and GTK+ would turn around and ask Inkscape to provide that icon).&lt;br /&gt;
&lt;br /&gt;
Furthermore, and icon set switcher would be nice to void fidling with SVG files in .inkscape/icons/&lt;br /&gt;
&lt;br /&gt;
== The Icons ==&lt;br /&gt;
&lt;br /&gt;
There are 246 unique inkscape icons. All of them are listed in the following tables. Each of which is structured as follows: an image of current Inkscape icon, the name of this icon in Inkscape, the size at which the SVG should be designed (in pixels) to look crisp in standard GTK themes, a short description of the tool, the corresponding ArtLibre icon and ArtLibre icon name (NA if it does not exists), an image of the proposed replacement icon.&lt;br /&gt;
&lt;br /&gt;
All image need to be manually uploaded. If you wish to help upload a few to this wiki, you can download a ZIP file of all icons already named from [http://www.microugly.com/orig-inkscape-icons.zip]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Drawing tools ===&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;table&amp;gt;&lt;br /&gt;
		&amp;lt;tr&amp;gt;&lt;br /&gt;
			&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon name&amp;lt;/th&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;px Size&amp;lt;/th&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Description&amp;lt;/th&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Tango Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Tango Name&amp;lt;/th&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Proposed Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
		&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;tr&amp;gt;&lt;br /&gt;
			&amp;lt;td&amp;gt;[[Image:orig_draw_select.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;draw_select&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;24&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;Pointer tool&amp;lt;/td&amp;gt;&lt;br /&gt;
			&lt;br /&gt;
			&amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;tool-pointer&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;[[Image:tool-pointer.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;tr&amp;gt;&lt;br /&gt;
			&amp;lt;td&amp;gt;[[Image:orig_draw_node.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;draw_node&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;24&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;Node selection tool&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;NA&amp;lt;/td&amp;gt;&lt;br /&gt;
			&lt;br /&gt;
			&amp;lt;td&amp;gt;NA&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;[[Image:tool-node.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;tr&amp;gt;&lt;br /&gt;
			&amp;lt;td&amp;gt;[[Image:orig_draw_tweak.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;draw_tweak&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;24&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
			&amp;lt;td&amp;gt;NA&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;NA&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;NA&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;tr&amp;gt;&lt;br /&gt;
			&amp;lt;td&amp;gt;[[Image:orig_draw_zoom.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;draw_zoom&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;24&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;Page Magnifier tool&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
			&lt;br /&gt;
			&amp;lt;td&amp;gt;page-magnifier&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;[[Image:page-magnifier.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;tr&amp;gt;&lt;br /&gt;
			&amp;lt;td&amp;gt;[[Image:orig_draw_rect.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;draw_rect&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;24&amp;lt;/td&amp;gt;&lt;br /&gt;
			&lt;br /&gt;
			&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
			&lt;br /&gt;
			&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;draw-rectangle&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;[[Image:draw-rectangle.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;tr&amp;gt;&lt;br /&gt;
			&amp;lt;td&amp;gt;[[Image:orig_draw_arc.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;draw_arc&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;24&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
			&amp;lt;td&amp;gt;draw-ellipse&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;[[Image:draw-arc.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;tr&amp;gt;&lt;br /&gt;
			&amp;lt;td&amp;gt;[[Image:orig_draw_star.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;draw_star&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;24&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
			&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;draw-star&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;[[Image:draw-star.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;tr&amp;gt;&lt;br /&gt;
			&amp;lt;td&amp;gt;[[Image:orig_draw_spiral.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;draw_spiral&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;24&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;NA&amp;lt;/td&amp;gt;&lt;br /&gt;
			&amp;lt;td&amp;gt;NA&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;[[Image:draw-spiral.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;tr&amp;gt;&lt;br /&gt;
			&amp;lt;td&amp;gt;[[Image:orig_draw_freehand.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;draw freehand&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;24&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
			&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;draw-freehand&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;[[Image:draw-freehand.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;tr&amp;gt;&lt;br /&gt;
			&amp;lt;td&amp;gt;[[Image:orig_draw_pen.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;draw pen&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;24&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
			&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;[[Image:draw-pen.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;tr&amp;gt;&lt;br /&gt;
			&amp;lt;td&amp;gt;[[Image:orig_draw_calligraphic.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;draw calligraphic&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;24&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
			&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;[[Image:draw-calligraphic.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;tr&amp;gt;&lt;br /&gt;
			&amp;lt;td&amp;gt;[[Image:orig_draw_paintbucket.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;draw paintbucket&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;24&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
			&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;[[Image:draw-fill.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;tr&amp;gt;&lt;br /&gt;
			&amp;lt;td&amp;gt;[[Image:orig_draw_text.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;draw text&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;24&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
			&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;[[Image:draw-text.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;tr&amp;gt;&lt;br /&gt;
			&amp;lt;td&amp;gt;[[Image:orig_draw_connector.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;draw connector&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;24&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
			&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;[[Image:draw-connector.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;tr&amp;gt;&lt;br /&gt;
			&amp;lt;td&amp;gt;[[Image:orig_draw_gradient.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;draw gradient&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;24&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
			&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;[[Image:draw-gradient.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;tr&amp;gt;&lt;br /&gt;
			&amp;lt;td&amp;gt;[[Image:orig_draw_dropper.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;draw dropper&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;24&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
			&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;[[Image:draw-dropper.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;/tr&amp;gt;&lt;br /&gt;
	&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Tool Controls ===&lt;br /&gt;
==== Select Controls ====&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon&amp;lt;/th&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon name&amp;lt;/th&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Req. Pixel Size&amp;lt;/th&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Description&amp;lt;/th&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Current Tango ArtLibreSet&amp;lt;/th&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Proposed Icon&amp;lt;/th&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_object_flip_hor.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;object flip hor&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_object_flip_ver.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;object flip ver&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_object_rotate_90_CCW.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;object rotate 90 CCW&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_object_rotate_90_CW.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;object rotate 90 CW&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[Image:orig_selection_up.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;selection up&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_selection_bot.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;selection bot&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[Image:orig_selection_down.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;selection down&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[Image:orig_selection_top.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;selection top&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_selection_deselect.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;selection deselect&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_selection_select_all.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;selection select all&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_selection_select_all_in_all_layers.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;selection select all in all layers&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_transform_corners.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;transform corners&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_transform_gradient.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;transform gradient&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_transform_pattern.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;transform pattern&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_transform_stroke.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;transform stroke&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Node Controls ====&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon&amp;lt;/th&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon name&amp;lt;/th&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Req. Pixel Size&amp;lt;/th&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Description&amp;lt;/th&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Current Tango ArtLibreSet&amp;lt;/th&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Proposed Icon&amp;lt;/th&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_nodes_show_handles.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;nodes show handles&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_node_break.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;node break&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_node_curve.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;node curve&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_node_cusp.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;node cusp&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_node_delete.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;node delete&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_node_delete_segment.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;node delete segment&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_node_insert.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;node insert&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_node_join.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;node join&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_node_join_segment.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;node join segment&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_node_line.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;node line&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_node_smooth.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;node smooth&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_node_symmetric.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;node symmetric&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_stroke_tocurve.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;stroke tocurve&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_object_tocurve.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;object tocurve&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Tweak Controls ====&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon&amp;lt;/th&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon name&amp;lt;/th&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Req. Pixel Size&amp;lt;/th&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Description&amp;lt;/th&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Current Tango ArtLibreSet&amp;lt;/th&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Proposed Icon&amp;lt;/th&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_tweak_attract_mode.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;tweak attract mode&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_tweak_colorjitter_mode.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;tweak colorjitter mode&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_tweak_colorpaint_mode.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;tweak colorpaint mode&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_tweak_grow_mode.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;tweak grow mode&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_tweak_push_mode.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;tweak push mode&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_tweak_repel_mode.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;tweak repel mode&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_tweak_roughen_mode.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;tweak roughen mode&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_tweak_shrink_mode.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;tweak shrink mode&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_guse_pressure.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;guse pressure&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Zoom Controls ====&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon&amp;lt;/th&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon name&amp;lt;/th&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Req. Pixel Size&amp;lt;/th&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Description&amp;lt;/th&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Current Tango ArtLibreSet&amp;lt;/th&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Proposed Icon&amp;lt;/th&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[Image:orig_zoom_1_to_1.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;zoom 1 to 1&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[Image:zoom-original.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[Image:orig_zoom_1_to_2.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;zoom 1 to 2&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[Image:zoom-1-to-2.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[Image:orig_zoom_2_to_1.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;zoom 2 to 1&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[Image:zoom-2-to-1.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[Image:orig_zoom_draw.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;zoom draw&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[Image:zoom-drawing.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[Image:orig_zoom_in.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;zoom in&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[Image:zoom-in.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[Image:orig_zoom_next.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;zoom next&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[Image:zoom-next.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[Image:orig_zoom_out.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;zoom out&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[Image:zoom-out.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[Image:orig_zoom_page.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;zoom page&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[Image:zoom-page.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[Image:orig_zoom_pagewidth.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;zoom pagewidth&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[Image:zoom-page-width.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[Image:orig_zoom_previous.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;zoom previous&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[Image:zoom-previous.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[Image:orig_zoom_select.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;zoom select&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[Image:zoom-selection.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Rectangle Controls ====&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon&amp;lt;/th&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon name&amp;lt;/th&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Req. Pixel Size&amp;lt;/th&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Description&amp;lt;/th&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Current Tango ArtLibreSet&amp;lt;/th&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Proposed Icon&amp;lt;/th&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_squared_corner.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;squared corner&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Arc Controls ====&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon&amp;lt;/th&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon name&amp;lt;/th&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Req. Pixel Size&amp;lt;/th&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Description&amp;lt;/th&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Current Tango ArtLibreSet&amp;lt;/th&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Proposed Icon&amp;lt;/th&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_circle_closed_arc.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;circle closed arc&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_circle_open_arc.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;circle open arc&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_reset_circle.png]]&amp;lt;/td&amp;gt;	&lt;br /&gt;
&amp;lt;td&amp;gt;reset circle&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Star Controls ====&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon name&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Req. Pixel Size&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Description&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Current Tango ArtLibreSet&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Proposed Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_star_angled.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;star angled&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_star_flat.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;star flat&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
==== Calligraphic Controls ====&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon name&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Req. Pixel Size&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Description&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Current Tango ArtLibreSet&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Proposed Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_trace_background.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;trace background&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_guse_tilt.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;guse tilt&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_guse_pressure.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;guse pressure&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
==== Text Controls ====&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon name&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Req. Pixel Size&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Description&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Current Tango ArtLibreSet&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Proposed Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_writing_mode_lr.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;writing mode lr&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_writing_mode_tb.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;writing mode tb&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
==== Connector Controls ====&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon name&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Req. Pixel Size&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Description&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Current Tango ArtLibreSet&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Proposed Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_connector_avoid.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;connector avoid&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_connector_ignore.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;connector ignore&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_directed_graph.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;directed graph&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_remove_overlaps.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;remove overlaps&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
==== Gradient Controls ====&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon name&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Req. Pixel Size&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Description&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Current Tango ArtLibreSet&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Proposed Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_fill_radial.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;fill radial&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_controls_fill.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;controls fill&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_controls_stroke.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;controls stroke&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_fill_gradient.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;fill gradient&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
==== Dropper Controls ====&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon name&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Req. Pixel Size&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Description&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Current Tango ArtLibreSet&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Proposed Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_color_alpha_get.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;color alpha get&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_color_alpha_set.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;color alpha set&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
=== Palettes ===&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon name&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Req. Pixel Size&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Description&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Current Tango ArtLibreSet&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Proposed Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_object_font.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;object font&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_xml_editor.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;xml editor&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_object_align.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;object align&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_object_trans.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;object trans&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_fill_and_stroke.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;fill and stroke&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_grid_arrange.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;grid arrange&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_layers.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;layers&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
==== Fill and Stroke ====&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon name&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Req. Pixel Size&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Description&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Current Tango ArtLibreSet&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Proposed Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_properties_fill.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;properties fill&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_properties_stroke_paint.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;properties stroke paint&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_properties_stroke.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;properties stroke&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_fill_none.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;fill none&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_fill_gradient.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;fill gradient&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_fill_radial.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;fill radial&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_fill_pattern.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;fill pattern&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_fill_solid.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;fill solid&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_fill_unset.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;fill unset&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_fillrule_evenodd.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;fillrule evenodd&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_fillrule_nonzero.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;fillrule nonzero&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_cap_butt.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;cap butt&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_cap_round.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;cap round&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_cap_square.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;cap square&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_join_bevel.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;join bevel&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_join_miter.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;join miter&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_join_round.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;join round&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
==== Transform ====&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon name&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Req. Pixel Size&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Description&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Current Tango ArtLibreSet&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Proposed Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_arrows_hor.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;arrows hor&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_arrows_ver.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;arrows ver&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_transform_rotate.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;transform rotate&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_transform_scale_hor.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;transform scale hor&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_transform_scale_ver.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;transform scale ver&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_transform_scew_hor.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;transform scew hor&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_transform_scew_ver.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;transform scew ver&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
==== Align and Distribute ====&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon name&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Req. Pixel Size&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Description&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Current Tango ArtLibreSet&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Proposed Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_al_baselines_hor.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;al baselines hor&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_al_baselines_vert.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;al baselines vert&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_al_bottom_in.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;al bottom in&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_al_bottom_out.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;al bottom out&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_al_center_hor.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;al center hor&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_al_center_ver.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;al center ver&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_al_left_in.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;al left in&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_al_left_out.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;al left out&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_al_right_in.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;al right in&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_al_right_out.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;al right out&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_al_top_in.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;al top in&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_al_top_out.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;al top out&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_distribute_baselines_hor.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;distribute baselines hor&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_distribute_baselines_vert.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;distribute baselines vert&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_distribute_bottom.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;distribute bottom&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_distribute_hcentre.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;distribute hcentre&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_distribute_hdist.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;distribute hdist&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_distribute_left.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;distribute left&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_distribute_randomize.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;distribute randomize&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_distribute_right.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;distribute right&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_distribute_top.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;distribute top&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_distribute_vcentre.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;distribute vcentre&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_distribute_vdist.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;distribute vdist&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_unclump.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;unclump&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_graph_layout.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;graph layout&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_remove_overlaps.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;remove overlaps&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_node_halign.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;node halign&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_node_hdistribute.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;node hdistribute&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_node_valign.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;node valign&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_node_vdistribute.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;node vdistribute&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
==== Grid Arrange ====&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon name&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Req. Pixel Size&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Description&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Current Tango ArtLibreSet&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Proposed Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_clonetiler_per_row.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;clonetiler per row&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_clonetiler_per_column.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;clonetiler per column&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
==== Text ====&lt;br /&gt;
&amp;lt;p&amp;gt;Text icons are not currently used.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon name&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Req. Pixel Size&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Description&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Current Tango ArtLibreSet&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Proposed Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_text_horz_kern.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;text horz kern&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_text_letter_spacing.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;text letter spacing&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_text_line_spacing.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;text line spacing&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_text_remove_kerns.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;text remove kerns&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_text_vert_kern.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;text vert kern&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_text_rotation.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;text_rotation&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
==== Clone ====&lt;br /&gt;
&amp;lt;p&amp;gt;Clone icons are not currently used.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon name&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Req. Pixel Size&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Description&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Current Tango ArtLibreSet&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Proposed Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_clonetiler_per_column_color.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;clonetiler per column color&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_clonetiler_per_column_opacity.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;clonetiler per column opacity&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_clonetiler_per_column_rotation.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;clonetiler per column rotation&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_clonetiler_per_column_scale.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;clonetiler per column scale&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_clonetiler_per_column_shift.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;clonetiler per column shift&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_clonetiler_per_row_color.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;clonetiler per row color&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_clonetiler_per_row_opacity.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;clonetiler per row opacity&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_clonetiler_per_row_rotation.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;clonetiler per row rotation&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_clonetiler_per_row_scale.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;clonetiler per row scale&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_clonetiler_per_row_shift.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;clonetiler per row shift&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
==== XML Editor ====&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon name&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Req. Pixel Size&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Description&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Current Tango ArtLibreSet&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Proposed Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_add_xml_element_node.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;add xml element node&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_add_xml_text_node.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;add xml text node&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_duplicate_xml_node.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;duplicate xml node&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_delete_xml_node.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;delete xml node&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_delete_xml_attribute.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;delete xml attribute&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
==== Layers ====&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon name&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Req. Pixel Size&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Description&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Current Tango ArtLibreSet&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Proposed Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_visible.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;visible&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_width_height_lock.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;width height lock&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_hidden.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;hidden&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_lock_unlocked.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;lock unlocked&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
=== Menus ===&lt;br /&gt;
==== File ====&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon name&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Req. Pixel Size&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Description&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Current Tango ArtLibreSet&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Proposed Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_file_export.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;file export&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_file_import.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;file import&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_file_vacuum.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;file vacuum&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_document_metadata.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;document metadata&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_input_devices.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;input devices&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_ocal_export.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;ocal export&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_ocal_import.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;ocal import&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
==== Edit ====&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon name&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Req. Pixel Size&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Description&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Current Tango ArtLibreSet&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Proposed Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_edit_undo_history.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;edit undo history&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_selection_paste_in_place.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;selection paste in place&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_selection_paste_style.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;selection paste style&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_edit_clone.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;edit clone&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_edit_create_tiled_clones.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;edit create tiled clones&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_edit_duplicate.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;edit duplicate&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_edit_select_original.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;edit select original&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_edit_unlink_clone.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;edit unlink clone&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_selection_bitmap.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;selection bitmap&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_selection_invert.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;selection invert&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_selection_deselect.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;selection deselect&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
==== View ====&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon name&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Req. Pixel Size&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Description&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Current Tango ArtLibreSet&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Proposed Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_zoom_1_to_1.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;zoom 1 to 1&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_zoom_1_to_2.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;zoom 1 to 2&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_zoom_2_to_1.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;zoom 2 to 1&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_zoom_draw.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;zoom draw&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_zoom_in.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;zoom in&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_zoom_next.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;zoom next&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_zoom_out.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;zoom out&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_zoom_page.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;zoom page&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_zoom_pagewidth.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;zoom pagewidth&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_zoom_previous.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;zoom previous&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_zoom_select.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;zoom select&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_grid.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;grid&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_guides.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;guides&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_dialog_toggle.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;dialog toggle&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_swatches.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;swatches&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_messages.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;messages&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_scripts.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;scripts&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_window_next.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;window next&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_window_previous.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;window previous&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_view_icon_preview.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;view icon preview&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_view_new.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;view new&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_fullscreen.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;fullscreen&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
==== Layer ====&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon name&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Req. Pixel Size&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Description&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Current Tango ArtLibreSet&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Proposed Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_new_layer.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;new layer&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_rename_layer.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;rename layer&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_switch_to_layer_above.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;switch to layer above&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_switch_to_layer_below.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;switch to layer below&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_move_selection_above.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;move selection above&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_move_selection_below.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;move selection below&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_layer_to_bottom.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;layer to bottom&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_layer_to_top.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;layer to top&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_raise_layer.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;raise layer&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_lower_layer.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;lower layer&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_delete_layer.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;delete layer&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
==== Object ====&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon name&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Req. Pixel Size&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Description&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Current Tango ArtLibreSet&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Proposed Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_selection_group.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;selection group&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_selection_ungroup.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;selection ungroup&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_selection_up.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;selection up&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_selection_bot.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;selection bot&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_selection_down.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;selection down&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_selection_top.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;selection top&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_object_flip_hor.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;object flip hor&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_object_flip_ver.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;object flip ver&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_object_rotate_90_CCW.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;object rotate 90 CCW&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_object_rotate_90_CW.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;object rotate 90 CW&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
==== Path ====&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon name&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Req. Pixel Size&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Description&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Current Tango ArtLibreSet&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Proposed Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_stroke_tocurve.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;stroke tocurve&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_object_tocurve.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;object tocurve&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_selection_trace.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;selection trace&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_union.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;union&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_difference.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;difference&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_division.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;division&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_exclusion.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;exclusion&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_selection_break.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;selection break&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_selection_combine.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;selection combine&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_linked_offset.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;linked offset&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_dynamic_offset.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;dynamic offset&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_outset_path.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;outset path&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_inset_path.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;inset path&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_intersection.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;intersection&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_cut_path.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;cut path&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_simplify.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;simplify&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_selection_reverse.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;selection reverse&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
==== Text ====&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon name&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Req. Pixel Size&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Description&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Current Tango ArtLibreSet&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Proposed Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_put_on_path.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;put on path&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_remove_from_path.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;remove from path&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_flow_into_frame.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;flow into frame&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_unflow.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;unflow&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_convert_to_text.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;convert to text&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_remove_manual_kerns.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;remove manual kerns&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
==== Help ====&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon name&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Req. Pixel Size&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Description&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Current Tango ArtLibreSet&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Proposed Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_about_memory.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;about memory&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_inkscape_options.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;inkscape options&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
==== Extras ====&lt;br /&gt;
&amp;lt;p&amp;gt;These icons may need classification or may be unused.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon&amp;lt;/th&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon name&amp;lt;/th&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Req. Pixel Size&amp;lt;/th&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Description&amp;lt;/th&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Current Tango ArtLibreSet&amp;lt;/th&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Proposed Icon&amp;lt;/th&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_3dbox_four_handles.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;3dbox four handles&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_3dbox_three_handles.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;3dbox three handles&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_dialog_item_properties.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;dialog item properties&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_draw_3dbox.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;draw 3dbox&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_file_open_recent.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;file open recent&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_help_keys.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;help keys&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_help_tutorials.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;help tutorials&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_inkscape.file.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;inkscape.file&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_sticky_zoom.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;sticky zoom&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_toggle_vp_x.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;toggle vp x&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_toggle_vp_y.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;toggle vp y&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_toggle_vp_z.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;toggle vp z&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jiho</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=TangoifiedIcons&amp;diff=16598</id>
		<title>TangoifiedIcons</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=TangoifiedIcons&amp;diff=16598"/>
		<updated>2007-10-28T12:08:04Z</updated>

		<summary type="html">&lt;p&gt;Jiho: /* Drawing tools */ Changed column headers, added tango name, added NAs where Tango does not exist. To be continued tomorrow&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;It would be nice to have a complete Tangoified Inkscape Icon Set for a future release (hopefully sooner rather than later).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The current set [http://gnomelook.org/content/show.php/Tangofied+inkscape+icons+set?content=48140 here] is lacking many icons.  It is based on the [http://tango.freedesktop.org/ArtLibreSet Tango ArtLibre Icon Set], which also Gimp is using.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maybe this would be a good place to list all the icons Inkscape needs and the corresponding icon places (whether filled or not) in the [http://tango.freedesktop.org/ArtLibreSet ArtLibre Set].&lt;br /&gt;
&lt;br /&gt;
== Standard naming and loading ==&lt;br /&gt;
&lt;br /&gt;
We should try to get Inkscape loading those from standard calls and naming so that users can switch icons externally. The [http://tango.freedesktop.org/Tango_Icon_Library#Download Tango naming utilities] and following the [http://standards.freedesktop.org/icon-naming-spec/icon-naming-spec-latest.html Icon Naming Specification] might help.&lt;br /&gt;
&lt;br /&gt;
To get things going well, we also would probably need to get Inkscape to hook itself in as a standard GTK+ icon source. (So Inkscape would ask GTK+ to get an icon for it, and GTK+ would turn around and ask Inkscape to provide that icon).&lt;br /&gt;
&lt;br /&gt;
== The Icons ==&lt;br /&gt;
&amp;lt;p&amp;gt;There are 246 unique inkscape icons.  If you would like to help upload a few to this wiki, you can download a ZIP file of all icons already named from [http://www.microugly.com/orig-inkscape-icons.zip]&lt;br /&gt;
=== Drawing tools ===&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;table&amp;gt;&lt;br /&gt;
		&amp;lt;tr&amp;gt;&lt;br /&gt;
			&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon name&amp;lt;/th&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;px Size&amp;lt;/th&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Description&amp;lt;/th&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Tango Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Tango Name&amp;lt;/th&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Proposed Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
		&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;tr&amp;gt;&lt;br /&gt;
			&amp;lt;td&amp;gt;[[Image:orig_draw_select.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;draw_select&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;24&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;Pointer tool&amp;lt;/td&amp;gt;&lt;br /&gt;
			&lt;br /&gt;
			&amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;tool-pointer&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;[[Image:tool-pointer.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;tr&amp;gt;&lt;br /&gt;
			&amp;lt;td&amp;gt;[[Image:orig_draw_node.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;draw_node&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;24&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;Node selection tool&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;NA&amp;lt;/td&amp;gt;&lt;br /&gt;
			&lt;br /&gt;
			&amp;lt;td&amp;gt;NA&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;[[Image:tool-node.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;tr&amp;gt;&lt;br /&gt;
			&amp;lt;td&amp;gt;[[Image:orig_draw_tweak.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;draw_tweak&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;24&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
			&amp;lt;td&amp;gt;NA&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;NA&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;NA&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;tr&amp;gt;&lt;br /&gt;
			&amp;lt;td&amp;gt;[[Image:orig_draw_zoom.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;draw_zoom&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;24&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;Page Magnifier tool&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
			&lt;br /&gt;
			&amp;lt;td&amp;gt;page-magnifier&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;[[Image:page-magnifier.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;tr&amp;gt;&lt;br /&gt;
			&amp;lt;td&amp;gt;[[Image:orig_draw_rect.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;draw_rect&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;24&amp;lt;/td&amp;gt;&lt;br /&gt;
			&lt;br /&gt;
			&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
			&lt;br /&gt;
			&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;draw-rectangle&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;[[Image:draw-rectangle.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;tr&amp;gt;&lt;br /&gt;
			&amp;lt;td&amp;gt;[[Image:orig_draw_arc.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;draw_arc&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;24&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
			&amp;lt;td&amp;gt;draw-ellipse&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;[[Image:draw-arc.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;tr&amp;gt;&lt;br /&gt;
			&amp;lt;td&amp;gt;[[Image:orig_draw_star.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;draw_star&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;24&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
			&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;draw-star&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;[[Image:draw-star.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;tr&amp;gt;&lt;br /&gt;
			&amp;lt;td&amp;gt;[[Image:orig_draw_spiral.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;draw_spiral&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;24&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;NA&amp;lt;/td&amp;gt;&lt;br /&gt;
			&amp;lt;td&amp;gt;NA&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;[[Image:draw-spiral.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;tr&amp;gt;&lt;br /&gt;
			&amp;lt;td&amp;gt;[[Image:orig_draw_freehand.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;draw freehand&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;24&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
			&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;draw-freehand&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;[[Image:draw-freehand.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;tr&amp;gt;&lt;br /&gt;
			&amp;lt;td&amp;gt;[[Image:orig_draw_pen.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;draw pen&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;24&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
			&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;[[Image:draw-pen.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;tr&amp;gt;&lt;br /&gt;
			&amp;lt;td&amp;gt;[[Image:orig_draw_calligraphic.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;draw calligraphic&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;24&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
			&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;[[Image:draw-calligraphic.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;tr&amp;gt;&lt;br /&gt;
			&amp;lt;td&amp;gt;[[Image:orig_draw_paintbucket.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;draw paintbucket&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;24&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
			&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;[[Image:draw-fill.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;tr&amp;gt;&lt;br /&gt;
			&amp;lt;td&amp;gt;[[Image:orig_draw_text.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;draw text&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;24&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
			&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;[[Image:draw-text.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;tr&amp;gt;&lt;br /&gt;
			&amp;lt;td&amp;gt;[[Image:orig_draw_connector.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;draw connector&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;24&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
			&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;[[Image:draw-connector.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;tr&amp;gt;&lt;br /&gt;
			&amp;lt;td&amp;gt;[[Image:orig_draw_gradient.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;draw gradient&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;24&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
			&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;[[Image:draw-gradient.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;tr&amp;gt;&lt;br /&gt;
			&amp;lt;td&amp;gt;[[Image:orig_draw_dropper.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;draw dropper&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;24&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
			&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;td&amp;gt;[[Image:draw-dropper.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;/tr&amp;gt;&lt;br /&gt;
	&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Tool Controls ===&lt;br /&gt;
==== Select Controls ====&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon&amp;lt;/th&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon name&amp;lt;/th&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Req. Pixel Size&amp;lt;/th&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Description&amp;lt;/th&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Current Tango ArtLibreSet&amp;lt;/th&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Proposed Icon&amp;lt;/th&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_object_flip_hor.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;object flip hor&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_object_flip_ver.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;object flip ver&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_object_rotate_90_CCW.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;object rotate 90 CCW&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_object_rotate_90_CW.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;object rotate 90 CW&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[Image:orig_selection_up.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;selection up&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_selection_bot.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;selection bot&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[Image:orig_selection_down.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;selection down&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[Image:orig_selection_top.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;selection top&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_selection_deselect.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;selection deselect&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_selection_select_all.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;selection select all&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_selection_select_all_in_all_layers.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;selection select all in all layers&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_transform_corners.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;transform corners&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_transform_gradient.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;transform gradient&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_transform_pattern.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;transform pattern&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_transform_stroke.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;transform stroke&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Node Controls ====&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon&amp;lt;/th&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon name&amp;lt;/th&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Req. Pixel Size&amp;lt;/th&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Description&amp;lt;/th&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Current Tango ArtLibreSet&amp;lt;/th&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Proposed Icon&amp;lt;/th&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_nodes_show_handles.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;nodes show handles&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_node_break.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;node break&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_node_curve.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;node curve&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_node_cusp.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;node cusp&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_node_delete.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;node delete&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_node_delete_segment.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;node delete segment&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_node_insert.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;node insert&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_node_join.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;node join&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_node_join_segment.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;node join segment&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_node_line.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;node line&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_node_smooth.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;node smooth&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_node_symmetric.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;node symmetric&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_stroke_tocurve.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;stroke tocurve&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_object_tocurve.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;object tocurve&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Tweak Controls ====&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon&amp;lt;/th&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon name&amp;lt;/th&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Req. Pixel Size&amp;lt;/th&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Description&amp;lt;/th&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Current Tango ArtLibreSet&amp;lt;/th&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Proposed Icon&amp;lt;/th&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_tweak_attract_mode.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;tweak attract mode&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_tweak_colorjitter_mode.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;tweak colorjitter mode&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_tweak_colorpaint_mode.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;tweak colorpaint mode&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_tweak_grow_mode.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;tweak grow mode&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_tweak_push_mode.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;tweak push mode&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_tweak_repel_mode.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;tweak repel mode&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_tweak_roughen_mode.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;tweak roughen mode&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_tweak_shrink_mode.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;tweak shrink mode&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_guse_pressure.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;guse pressure&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Zoom Controls ====&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon&amp;lt;/th&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon name&amp;lt;/th&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Req. Pixel Size&amp;lt;/th&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Description&amp;lt;/th&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Current Tango ArtLibreSet&amp;lt;/th&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Proposed Icon&amp;lt;/th&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[Image:orig_zoom_1_to_1.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;zoom 1 to 1&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[Image:zoom-original.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[Image:orig_zoom_1_to_2.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;zoom 1 to 2&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[Image:zoom-1-to-2.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[Image:orig_zoom_2_to_1.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;zoom 2 to 1&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[Image:zoom-2-to-1.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[Image:orig_zoom_draw.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;zoom draw&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[Image:zoom-drawing.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[Image:orig_zoom_in.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;zoom in&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[Image:zoom-in.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[Image:orig_zoom_next.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;zoom next&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[Image:zoom-next.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[Image:orig_zoom_out.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;zoom out&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[Image:zoom-out.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[Image:orig_zoom_page.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;zoom page&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[Image:zoom-page.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[Image:orig_zoom_pagewidth.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;zoom pagewidth&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[Image:zoom-page-width.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[Image:orig_zoom_previous.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;zoom previous&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[Image:zoom-previous.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[Image:orig_zoom_select.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;zoom select&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[Image:zoom-selection.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Rectangle Controls ====&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon&amp;lt;/th&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon name&amp;lt;/th&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Req. Pixel Size&amp;lt;/th&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Description&amp;lt;/th&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Current Tango ArtLibreSet&amp;lt;/th&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Proposed Icon&amp;lt;/th&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_squared_corner.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;squared corner&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Arc Controls ====&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon&amp;lt;/th&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon name&amp;lt;/th&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Req. Pixel Size&amp;lt;/th&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Description&amp;lt;/th&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Current Tango ArtLibreSet&amp;lt;/th&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Proposed Icon&amp;lt;/th&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_circle_closed_arc.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;circle closed arc&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_circle_open_arc.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;circle open arc&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_reset_circle.png]]&amp;lt;/td&amp;gt;	&lt;br /&gt;
&amp;lt;td&amp;gt;reset circle&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Star Controls ====&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon name&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Req. Pixel Size&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Description&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Current Tango ArtLibreSet&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Proposed Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_star_angled.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;star angled&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_star_flat.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;star flat&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
==== Calligraphic Controls ====&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon name&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Req. Pixel Size&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Description&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Current Tango ArtLibreSet&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Proposed Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_trace_background.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;trace background&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_guse_tilt.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;guse tilt&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_guse_pressure.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;guse pressure&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
==== Text Controls ====&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon name&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Req. Pixel Size&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Description&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Current Tango ArtLibreSet&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Proposed Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_writing_mode_lr.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;writing mode lr&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_writing_mode_tb.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;writing mode tb&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
==== Connector Controls ====&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon name&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Req. Pixel Size&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Description&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Current Tango ArtLibreSet&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Proposed Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_connector_avoid.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;connector avoid&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_connector_ignore.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;connector ignore&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_directed_graph.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;directed graph&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_remove_overlaps.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;remove overlaps&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
==== Gradient Controls ====&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon name&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Req. Pixel Size&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Description&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Current Tango ArtLibreSet&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Proposed Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_fill_radial.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;fill radial&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_controls_fill.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;controls fill&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_controls_stroke.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;controls stroke&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_fill_gradient.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;fill gradient&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
==== Dropper Controls ====&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon name&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Req. Pixel Size&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Description&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Current Tango ArtLibreSet&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Proposed Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_color_alpha_get.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;color alpha get&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_color_alpha_set.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;color alpha set&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
=== Palettes ===&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon name&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Req. Pixel Size&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Description&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Current Tango ArtLibreSet&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Proposed Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_object_font.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;object font&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_xml_editor.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;xml editor&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_object_align.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;object align&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_object_trans.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;object trans&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_fill_and_stroke.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;fill and stroke&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_grid_arrange.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;grid arrange&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_layers.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;layers&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
==== Fill and Stroke ====&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon name&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Req. Pixel Size&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Description&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Current Tango ArtLibreSet&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Proposed Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_properties_fill.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;properties fill&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_properties_stroke_paint.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;properties stroke paint&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_properties_stroke.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;properties stroke&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_fill_none.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;fill none&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_fill_gradient.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;fill gradient&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_fill_radial.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;fill radial&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_fill_pattern.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;fill pattern&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_fill_solid.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;fill solid&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_fill_unset.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;fill unset&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_fillrule_evenodd.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;fillrule evenodd&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_fillrule_nonzero.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;fillrule nonzero&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_cap_butt.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;cap butt&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_cap_round.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;cap round&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_cap_square.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;cap square&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_join_bevel.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;join bevel&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_join_miter.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;join miter&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_join_round.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;join round&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
==== Transform ====&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon name&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Req. Pixel Size&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Description&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Current Tango ArtLibreSet&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Proposed Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_arrows_hor.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;arrows hor&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_arrows_ver.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;arrows ver&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_transform_rotate.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;transform rotate&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_transform_scale_hor.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;transform scale hor&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_transform_scale_ver.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;transform scale ver&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_transform_scew_hor.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;transform scew hor&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_transform_scew_ver.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;transform scew ver&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
==== Align and Distribute ====&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon name&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Req. Pixel Size&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Description&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Current Tango ArtLibreSet&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Proposed Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_al_baselines_hor.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;al baselines hor&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_al_baselines_vert.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;al baselines vert&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_al_bottom_in.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;al bottom in&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_al_bottom_out.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;al bottom out&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_al_center_hor.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;al center hor&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_al_center_ver.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;al center ver&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_al_left_in.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;al left in&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_al_left_out.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;al left out&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_al_right_in.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;al right in&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_al_right_out.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;al right out&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_al_top_in.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;al top in&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_al_top_out.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;al top out&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_distribute_baselines_hor.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;distribute baselines hor&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_distribute_baselines_vert.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;distribute baselines vert&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_distribute_bottom.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;distribute bottom&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_distribute_hcentre.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;distribute hcentre&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_distribute_hdist.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;distribute hdist&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_distribute_left.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;distribute left&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_distribute_randomize.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;distribute randomize&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_distribute_right.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;distribute right&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_distribute_top.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;distribute top&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_distribute_vcentre.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;distribute vcentre&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_distribute_vdist.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;distribute vdist&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_unclump.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;unclump&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_graph_layout.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;graph layout&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_remove_overlaps.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;remove overlaps&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_node_halign.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;node halign&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_node_hdistribute.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;node hdistribute&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_node_valign.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;node valign&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_node_vdistribute.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;node vdistribute&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
==== Grid Arrange ====&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon name&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Req. Pixel Size&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Description&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Current Tango ArtLibreSet&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Proposed Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_clonetiler_per_row.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;clonetiler per row&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_clonetiler_per_column.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;clonetiler per column&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
==== Text ====&lt;br /&gt;
&amp;lt;p&amp;gt;Text icons are not currently used.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon name&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Req. Pixel Size&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Description&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Current Tango ArtLibreSet&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Proposed Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_text_horz_kern.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;text horz kern&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_text_letter_spacing.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;text letter spacing&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_text_line_spacing.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;text line spacing&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_text_remove_kerns.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;text remove kerns&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_text_vert_kern.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;text vert kern&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_text_rotation.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;text_rotation&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
==== Clone ====&lt;br /&gt;
&amp;lt;p&amp;gt;Clone icons are not currently used.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon name&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Req. Pixel Size&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Description&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Current Tango ArtLibreSet&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Proposed Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_clonetiler_per_column_color.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;clonetiler per column color&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_clonetiler_per_column_opacity.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;clonetiler per column opacity&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_clonetiler_per_column_rotation.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;clonetiler per column rotation&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_clonetiler_per_column_scale.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;clonetiler per column scale&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_clonetiler_per_column_shift.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;clonetiler per column shift&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_clonetiler_per_row_color.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;clonetiler per row color&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_clonetiler_per_row_opacity.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;clonetiler per row opacity&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_clonetiler_per_row_rotation.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;clonetiler per row rotation&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_clonetiler_per_row_scale.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;clonetiler per row scale&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_clonetiler_per_row_shift.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;clonetiler per row shift&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
==== XML Editor ====&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon name&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Req. Pixel Size&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Description&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Current Tango ArtLibreSet&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Proposed Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_add_xml_element_node.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;add xml element node&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_add_xml_text_node.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;add xml text node&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_duplicate_xml_node.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;duplicate xml node&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_delete_xml_node.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;delete xml node&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_delete_xml_attribute.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;delete xml attribute&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
==== Layers ====&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon name&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Req. Pixel Size&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Description&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Current Tango ArtLibreSet&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Proposed Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_visible.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;visible&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_width_height_lock.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;width height lock&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_hidden.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;hidden&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_lock_unlocked.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;lock unlocked&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
=== Menus ===&lt;br /&gt;
==== File ====&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon name&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Req. Pixel Size&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Description&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Current Tango ArtLibreSet&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Proposed Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_file_export.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;file export&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_file_import.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;file import&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_file_vacuum.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;file vacuum&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_document_metadata.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;document metadata&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_input_devices.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;input devices&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_ocal_export.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;ocal export&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_ocal_import.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;ocal import&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
==== Edit ====&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon name&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Req. Pixel Size&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Description&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Current Tango ArtLibreSet&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Proposed Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_edit_undo_history.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;edit undo history&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_selection_paste_in_place.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;selection paste in place&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_selection_paste_style.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;selection paste style&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_edit_clone.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;edit clone&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_edit_create_tiled_clones.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;edit create tiled clones&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_edit_duplicate.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;edit duplicate&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_edit_select_original.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;edit select original&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_edit_unlink_clone.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;edit unlink clone&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_selection_bitmap.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;selection bitmap&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_selection_invert.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;selection invert&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_selection_deselect.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;selection deselect&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
==== View ====&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon name&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Req. Pixel Size&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Description&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Current Tango ArtLibreSet&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Proposed Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_zoom_1_to_1.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;zoom 1 to 1&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_zoom_1_to_2.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;zoom 1 to 2&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_zoom_2_to_1.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;zoom 2 to 1&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_zoom_draw.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;zoom draw&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_zoom_in.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;zoom in&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_zoom_next.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;zoom next&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_zoom_out.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;zoom out&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_zoom_page.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;zoom page&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_zoom_pagewidth.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;zoom pagewidth&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_zoom_previous.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;zoom previous&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_zoom_select.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;zoom select&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_grid.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;grid&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_guides.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;guides&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_dialog_toggle.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;dialog toggle&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_swatches.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;swatches&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_messages.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;messages&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_scripts.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;scripts&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_window_next.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;window next&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_window_previous.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;window previous&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_view_icon_preview.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;view icon preview&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_view_new.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;view new&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_fullscreen.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;fullscreen&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
==== Layer ====&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon name&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Req. Pixel Size&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Description&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Current Tango ArtLibreSet&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Proposed Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_new_layer.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;new layer&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_rename_layer.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;rename layer&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_switch_to_layer_above.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;switch to layer above&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_switch_to_layer_below.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;switch to layer below&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_move_selection_above.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;move selection above&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_move_selection_below.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;move selection below&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_layer_to_bottom.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;layer to bottom&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_layer_to_top.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;layer to top&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_raise_layer.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;raise layer&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_lower_layer.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;lower layer&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_delete_layer.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;delete layer&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
==== Object ====&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon name&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Req. Pixel Size&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Description&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Current Tango ArtLibreSet&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Proposed Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_selection_group.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;selection group&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_selection_ungroup.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;selection ungroup&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_selection_up.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;selection up&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_selection_bot.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;selection bot&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_selection_down.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;selection down&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_selection_top.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;selection top&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_object_flip_hor.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;object flip hor&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_object_flip_ver.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;object flip ver&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_object_rotate_90_CCW.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;object rotate 90 CCW&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_object_rotate_90_CW.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;object rotate 90 CW&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
==== Path ====&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon name&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Req. Pixel Size&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Description&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Current Tango ArtLibreSet&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Proposed Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_stroke_tocurve.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;stroke tocurve&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_object_tocurve.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;object tocurve&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_selection_trace.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;selection trace&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_union.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;union&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_difference.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;difference&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_division.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;division&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_exclusion.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;exclusion&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_selection_break.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;selection break&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_selection_combine.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;selection combine&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_linked_offset.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;linked offset&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_dynamic_offset.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;dynamic offset&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_outset_path.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;outset path&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_inset_path.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;inset path&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_intersection.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;intersection&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_cut_path.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;cut path&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_simplify.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;simplify&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_selection_reverse.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;selection reverse&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
==== Text ====&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon name&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Req. Pixel Size&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Description&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Current Tango ArtLibreSet&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Proposed Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_put_on_path.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;put on path&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_remove_from_path.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;remove from path&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_flow_into_frame.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;flow into frame&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_unflow.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;unflow&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_convert_to_text.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;convert to text&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_remove_manual_kerns.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;remove manual kerns&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
==== Help ====&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon name&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Req. Pixel Size&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Description&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Current Tango ArtLibreSet&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Proposed Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_about_memory.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;about memory&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_inkscape_options.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;inkscape options&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
==== Extras ====&lt;br /&gt;
&amp;lt;p&amp;gt;These icons may need classification or may be unused.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon&amp;lt;/th&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon name&amp;lt;/th&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Req. Pixel Size&amp;lt;/th&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Description&amp;lt;/th&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Current Tango ArtLibreSet&amp;lt;/th&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Proposed Icon&amp;lt;/th&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_3dbox_four_handles.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;3dbox four handles&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_3dbox_three_handles.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;3dbox three handles&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_dialog_item_properties.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;dialog item properties&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_draw_3dbox.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;draw 3dbox&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_file_open_recent.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;file open recent&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_help_keys.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;help keys&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_help_tutorials.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;help tutorials&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_inkscape.file.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;inkscape.file&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_sticky_zoom.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;sticky zoom&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_toggle_vp_x.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;toggle vp x&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_toggle_vp_y.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;toggle vp y&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_toggle_vp_z.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;toggle vp z&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jiho</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=TangoifiedIcons&amp;diff=16597</id>
		<title>TangoifiedIcons</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=TangoifiedIcons&amp;diff=16597"/>
		<updated>2007-10-28T10:46:38Z</updated>

		<summary type="html">&lt;p&gt;Jiho: /* The Icons */ added some sizes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;It would be nice to have a complete Tangoified Inkscape Icon Set for a future release (hopefully sooner rather than later).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The current set [http://gnomelook.org/content/show.php/Tangofied+inkscape+icons+set?content=48140 here] is lacking many icons.  It is based on the [http://tango.freedesktop.org/ArtLibreSet Tango ArtLibre Icon Set], which also Gimp is using.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maybe this would be a good place to list all the icons Inkscape needs and the corresponding icon places (whether filled or not) in the [http://tango.freedesktop.org/ArtLibreSet ArtLibre Set].&lt;br /&gt;
&lt;br /&gt;
== Standard naming and loading ==&lt;br /&gt;
&lt;br /&gt;
We should try to get Inkscape loading those from standard calls and naming so that users can switch icons externally. The [http://tango.freedesktop.org/Tango_Icon_Library#Download Tango naming utilities] and following the [http://standards.freedesktop.org/icon-naming-spec/icon-naming-spec-latest.html Icon Naming Specification] might help.&lt;br /&gt;
&lt;br /&gt;
To get things going well, we also would probably need to get Inkscape to hook itself in as a standard GTK+ icon source. (So Inkscape would ask GTK+ to get an icon for it, and GTK+ would turn around and ask Inkscape to provide that icon).&lt;br /&gt;
&lt;br /&gt;
== The Icons ==&lt;br /&gt;
&amp;lt;p&amp;gt;There are 246 unique inkscape icons.  If you would like to help upload a few to this wiki, you can download a ZIP file of all icons already named from [http://www.microugly.com/orig-inkscape-icons.zip]&lt;br /&gt;
=== Drawing tools ===&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon&amp;lt;/th&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon name&amp;lt;/th&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Req. Pixel Size&amp;lt;/th&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Description&amp;lt;/th&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Current Tango ArtLibreSet&amp;lt;/th&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Proposed Icon&amp;lt;/th&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_draw_select.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;draw select&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;24&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;Pointer tool&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;[[Image:tool-pointer.png]]&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_draw_node.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;draw node&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;24&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;Node selection tool&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;[[Image:tool-node.png]]&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_draw_tweak.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;draw tweak&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;24&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;	&lt;br /&gt;
&amp;lt;td&amp;gt;24&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_draw_zoom.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;draw zoom&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;24&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;Page Magnifier tool&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&lt;br /&gt;
&amp;lt;td&amp;gt;[[Image:page-magnifier.png]]&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_draw_rect.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;draw rect&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;24&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;	&lt;br /&gt;
&amp;lt;td&amp;gt;[[Image:draw-rectangle.png]]&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_draw_arc.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;draw arc&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;24&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;	&lt;br /&gt;
&amp;lt;td&amp;gt;[[Image:draw-arc.png]]&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_draw_star.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;draw star&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;24&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;	&lt;br /&gt;
&amp;lt;td&amp;gt;[[Image:draw-star.png]]&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_draw_spiral.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;draw spiral&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;24&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;[[Image:draw-spiral.png]]&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_draw_freehand.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;draw freehand&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;24&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;	&lt;br /&gt;
&amp;lt;td&amp;gt;[[Image:draw-freehand.png]]&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_draw_pen.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;draw pen&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;24&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;	&lt;br /&gt;
&amp;lt;td&amp;gt;[[Image:draw-pen.png]]&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_draw_calligraphic.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;draw calligraphic&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;24&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;	&lt;br /&gt;
&amp;lt;td&amp;gt;[[Image:draw-calligraphic.png]]&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_draw_paintbucket.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;draw paintbucket&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;24&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;	&lt;br /&gt;
&amp;lt;td&amp;gt;[[Image:draw-fill.png]]&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_draw_text.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;draw text&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;24&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;	&lt;br /&gt;
&amp;lt;td&amp;gt;[[Image:draw-text.png]]&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_draw_connector.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;draw connector&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;24&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;[[Image:draw-connector.png]]&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_draw_gradient.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;draw gradient&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;24&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;	&lt;br /&gt;
&amp;lt;td&amp;gt;[[Image:draw-gradient.png]]&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_draw_dropper.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;draw dropper&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;24&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;	&lt;br /&gt;
&amp;lt;td&amp;gt;[[Image:draw-dropper.png]]&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Tool Controls ===&lt;br /&gt;
==== Select Controls ====&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon&amp;lt;/th&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon name&amp;lt;/th&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Req. Pixel Size&amp;lt;/th&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Description&amp;lt;/th&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Current Tango ArtLibreSet&amp;lt;/th&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Proposed Icon&amp;lt;/th&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_object_flip_hor.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;object flip hor&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_object_flip_ver.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;object flip ver&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_object_rotate_90_CCW.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;object rotate 90 CCW&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_object_rotate_90_CW.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;object rotate 90 CW&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[Image:orig_selection_up.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;selection up&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_selection_bot.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;selection bot&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[Image:orig_selection_down.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;selection down&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[Image:orig_selection_top.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;selection top&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_selection_deselect.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;selection deselect&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_selection_select_all.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;selection select all&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_selection_select_all_in_all_layers.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;selection select all in all layers&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_transform_corners.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;transform corners&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_transform_gradient.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;transform gradient&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_transform_pattern.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;transform pattern&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_transform_stroke.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;transform stroke&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Node Controls ====&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon&amp;lt;/th&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon name&amp;lt;/th&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Req. Pixel Size&amp;lt;/th&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Description&amp;lt;/th&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Current Tango ArtLibreSet&amp;lt;/th&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Proposed Icon&amp;lt;/th&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_nodes_show_handles.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;nodes show handles&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_node_break.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;node break&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_node_curve.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;node curve&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_node_cusp.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;node cusp&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_node_delete.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;node delete&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_node_delete_segment.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;node delete segment&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_node_insert.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;node insert&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_node_join.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;node join&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_node_join_segment.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;node join segment&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_node_line.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;node line&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_node_smooth.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;node smooth&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_node_symmetric.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;node symmetric&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_stroke_tocurve.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;stroke tocurve&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_object_tocurve.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;object tocurve&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Tweak Controls ====&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon&amp;lt;/th&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon name&amp;lt;/th&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Req. Pixel Size&amp;lt;/th&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Description&amp;lt;/th&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Current Tango ArtLibreSet&amp;lt;/th&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Proposed Icon&amp;lt;/th&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_tweak_attract_mode.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;tweak attract mode&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_tweak_colorjitter_mode.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;tweak colorjitter mode&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_tweak_colorpaint_mode.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;tweak colorpaint mode&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_tweak_grow_mode.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;tweak grow mode&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_tweak_push_mode.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;tweak push mode&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_tweak_repel_mode.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;tweak repel mode&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_tweak_roughen_mode.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;tweak roughen mode&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_tweak_shrink_mode.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;tweak shrink mode&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_guse_pressure.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;guse pressure&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Zoom Controls ====&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon&amp;lt;/th&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon name&amp;lt;/th&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Req. Pixel Size&amp;lt;/th&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Description&amp;lt;/th&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Current Tango ArtLibreSet&amp;lt;/th&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Proposed Icon&amp;lt;/th&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[Image:orig_zoom_1_to_1.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;zoom 1 to 1&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[Image:zoom-original.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[Image:orig_zoom_1_to_2.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;zoom 1 to 2&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[Image:zoom-1-to-2.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[Image:orig_zoom_2_to_1.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;zoom 2 to 1&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[Image:zoom-2-to-1.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[Image:orig_zoom_draw.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;zoom draw&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[Image:zoom-drawing.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[Image:orig_zoom_in.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;zoom in&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[Image:zoom-in.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[Image:orig_zoom_next.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;zoom next&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[Image:zoom-next.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[Image:orig_zoom_out.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;zoom out&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[Image:zoom-out.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[Image:orig_zoom_page.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;zoom page&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[Image:zoom-page.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[Image:orig_zoom_pagewidth.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;zoom pagewidth&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[Image:zoom-page-width.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[Image:orig_zoom_previous.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;zoom previous&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[Image:zoom-previous.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[Image:orig_zoom_select.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;zoom select&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[Image:zoom-selection.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Rectangle Controls ====&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon&amp;lt;/th&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon name&amp;lt;/th&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Req. Pixel Size&amp;lt;/th&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Description&amp;lt;/th&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Current Tango ArtLibreSet&amp;lt;/th&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Proposed Icon&amp;lt;/th&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_squared_corner.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;squared corner&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Arc Controls ====&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon&amp;lt;/th&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon name&amp;lt;/th&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Req. Pixel Size&amp;lt;/th&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Description&amp;lt;/th&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Current Tango ArtLibreSet&amp;lt;/th&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Proposed Icon&amp;lt;/th&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_circle_closed_arc.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;circle closed arc&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_circle_open_arc.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;circle open arc&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_reset_circle.png]]&amp;lt;/td&amp;gt;	&lt;br /&gt;
&amp;lt;td&amp;gt;reset circle&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Star Controls ====&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon name&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Req. Pixel Size&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Description&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Current Tango ArtLibreSet&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Proposed Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_star_angled.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;star angled&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_star_flat.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;star flat&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
==== Calligraphic Controls ====&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon name&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Req. Pixel Size&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Description&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Current Tango ArtLibreSet&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Proposed Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_trace_background.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;trace background&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_guse_tilt.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;guse tilt&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_guse_pressure.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;guse pressure&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
==== Text Controls ====&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon name&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Req. Pixel Size&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Description&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Current Tango ArtLibreSet&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Proposed Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_writing_mode_lr.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;writing mode lr&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_writing_mode_tb.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;writing mode tb&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
==== Connector Controls ====&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon name&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Req. Pixel Size&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Description&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Current Tango ArtLibreSet&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Proposed Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_connector_avoid.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;connector avoid&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_connector_ignore.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;connector ignore&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_directed_graph.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;directed graph&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_remove_overlaps.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;remove overlaps&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
==== Gradient Controls ====&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon name&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Req. Pixel Size&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Description&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Current Tango ArtLibreSet&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Proposed Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_fill_radial.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;fill radial&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_controls_fill.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;controls fill&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_controls_stroke.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;controls stroke&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_fill_gradient.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;fill gradient&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
==== Dropper Controls ====&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon name&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Req. Pixel Size&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Description&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Current Tango ArtLibreSet&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Proposed Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_color_alpha_get.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;color alpha get&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_color_alpha_set.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;color alpha set&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
=== Palettes ===&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon name&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Req. Pixel Size&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Description&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Current Tango ArtLibreSet&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Proposed Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_object_font.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;object font&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_xml_editor.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;xml editor&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_object_align.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;object align&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_object_trans.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;object trans&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_fill_and_stroke.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;fill and stroke&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_grid_arrange.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;grid arrange&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_layers.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;layers&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
==== Fill and Stroke ====&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon name&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Req. Pixel Size&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Description&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Current Tango ArtLibreSet&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Proposed Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_properties_fill.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;properties fill&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_properties_stroke_paint.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;properties stroke paint&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_properties_stroke.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;properties stroke&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_fill_none.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;fill none&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_fill_gradient.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;fill gradient&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_fill_radial.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;fill radial&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_fill_pattern.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;fill pattern&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_fill_solid.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;fill solid&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_fill_unset.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;fill unset&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_fillrule_evenodd.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;fillrule evenodd&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_fillrule_nonzero.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;fillrule nonzero&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_cap_butt.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;cap butt&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_cap_round.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;cap round&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_cap_square.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;cap square&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_join_bevel.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;join bevel&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_join_miter.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;join miter&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_join_round.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;join round&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
==== Transform ====&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon name&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Req. Pixel Size&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Description&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Current Tango ArtLibreSet&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Proposed Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_arrows_hor.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;arrows hor&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_arrows_ver.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;arrows ver&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_transform_rotate.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;transform rotate&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_transform_scale_hor.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;transform scale hor&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_transform_scale_ver.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;transform scale ver&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_transform_scew_hor.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;transform scew hor&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_transform_scew_ver.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;transform scew ver&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
==== Align and Distribute ====&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon name&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Req. Pixel Size&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Description&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Current Tango ArtLibreSet&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Proposed Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_al_baselines_hor.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;al baselines hor&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_al_baselines_vert.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;al baselines vert&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_al_bottom_in.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;al bottom in&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_al_bottom_out.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;al bottom out&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_al_center_hor.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;al center hor&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_al_center_ver.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;al center ver&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_al_left_in.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;al left in&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_al_left_out.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;al left out&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_al_right_in.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;al right in&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_al_right_out.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;al right out&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_al_top_in.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;al top in&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_al_top_out.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;al top out&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_distribute_baselines_hor.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;distribute baselines hor&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_distribute_baselines_vert.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;distribute baselines vert&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_distribute_bottom.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;distribute bottom&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_distribute_hcentre.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;distribute hcentre&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_distribute_hdist.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;distribute hdist&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_distribute_left.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;distribute left&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_distribute_randomize.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;distribute randomize&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_distribute_right.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;distribute right&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_distribute_top.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;distribute top&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_distribute_vcentre.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;distribute vcentre&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_distribute_vdist.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;distribute vdist&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_unclump.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;unclump&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_graph_layout.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;graph layout&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_remove_overlaps.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;remove overlaps&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_node_halign.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;node halign&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_node_hdistribute.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;node hdistribute&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_node_valign.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;node valign&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_node_vdistribute.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;node vdistribute&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
==== Grid Arrange ====&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon name&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Req. Pixel Size&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Description&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Current Tango ArtLibreSet&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Proposed Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_clonetiler_per_row.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;clonetiler per row&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_clonetiler_per_column.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;clonetiler per column&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
==== Text ====&lt;br /&gt;
&amp;lt;p&amp;gt;Text icons are not currently used.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon name&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Req. Pixel Size&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Description&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Current Tango ArtLibreSet&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Proposed Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_text_horz_kern.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;text horz kern&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_text_letter_spacing.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;text letter spacing&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_text_line_spacing.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;text line spacing&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_text_remove_kerns.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;text remove kerns&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_text_vert_kern.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;text vert kern&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_text_rotation.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;text_rotation&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
==== Clone ====&lt;br /&gt;
&amp;lt;p&amp;gt;Clone icons are not currently used.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon name&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Req. Pixel Size&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Description&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Current Tango ArtLibreSet&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Proposed Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_clonetiler_per_column_color.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;clonetiler per column color&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_clonetiler_per_column_opacity.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;clonetiler per column opacity&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_clonetiler_per_column_rotation.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;clonetiler per column rotation&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_clonetiler_per_column_scale.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;clonetiler per column scale&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_clonetiler_per_column_shift.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;clonetiler per column shift&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_clonetiler_per_row_color.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;clonetiler per row color&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_clonetiler_per_row_opacity.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;clonetiler per row opacity&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_clonetiler_per_row_rotation.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;clonetiler per row rotation&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_clonetiler_per_row_scale.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;clonetiler per row scale&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_clonetiler_per_row_shift.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;clonetiler per row shift&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
==== XML Editor ====&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon name&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Req. Pixel Size&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Description&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Current Tango ArtLibreSet&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Proposed Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_add_xml_element_node.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;add xml element node&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_add_xml_text_node.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;add xml text node&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_duplicate_xml_node.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;duplicate xml node&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_delete_xml_node.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;delete xml node&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_delete_xml_attribute.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;delete xml attribute&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
==== Layers ====&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon name&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Req. Pixel Size&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Description&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Current Tango ArtLibreSet&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Proposed Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_visible.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;visible&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_width_height_lock.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;width height lock&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_hidden.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;hidden&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_lock_unlocked.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;lock unlocked&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
=== Menus ===&lt;br /&gt;
==== File ====&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon name&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Req. Pixel Size&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Description&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Current Tango ArtLibreSet&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Proposed Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_file_export.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;file export&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_file_import.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;file import&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_file_vacuum.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;file vacuum&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_document_metadata.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;document metadata&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_input_devices.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;input devices&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_ocal_export.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;ocal export&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_ocal_import.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;ocal import&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
==== Edit ====&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon name&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Req. Pixel Size&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Description&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Current Tango ArtLibreSet&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Proposed Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_edit_undo_history.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;edit undo history&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_selection_paste_in_place.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;selection paste in place&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_selection_paste_style.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;selection paste style&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_edit_clone.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;edit clone&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_edit_create_tiled_clones.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;edit create tiled clones&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_edit_duplicate.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;edit duplicate&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_edit_select_original.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;edit select original&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_edit_unlink_clone.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;edit unlink clone&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_selection_bitmap.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;selection bitmap&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_selection_invert.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;selection invert&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_selection_deselect.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;selection deselect&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
==== View ====&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon name&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Req. Pixel Size&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Description&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Current Tango ArtLibreSet&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Proposed Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_zoom_1_to_1.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;zoom 1 to 1&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_zoom_1_to_2.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;zoom 1 to 2&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_zoom_2_to_1.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;zoom 2 to 1&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_zoom_draw.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;zoom draw&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_zoom_in.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;zoom in&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_zoom_next.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;zoom next&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_zoom_out.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;zoom out&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_zoom_page.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;zoom page&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_zoom_pagewidth.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;zoom pagewidth&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_zoom_previous.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;zoom previous&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_zoom_select.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;zoom select&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_grid.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;grid&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_guides.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;guides&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_dialog_toggle.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;dialog toggle&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_swatches.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;swatches&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_messages.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;messages&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_scripts.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;scripts&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_window_next.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;window next&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_window_previous.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;window previous&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_view_icon_preview.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;view icon preview&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_view_new.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;view new&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_fullscreen.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;fullscreen&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
==== Layer ====&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon name&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Req. Pixel Size&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Description&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Current Tango ArtLibreSet&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Proposed Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_new_layer.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;new layer&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_rename_layer.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;rename layer&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_switch_to_layer_above.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;switch to layer above&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_switch_to_layer_below.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;switch to layer below&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_move_selection_above.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;move selection above&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_move_selection_below.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;move selection below&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_layer_to_bottom.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;layer to bottom&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_layer_to_top.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;layer to top&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_raise_layer.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;raise layer&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_lower_layer.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;lower layer&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_delete_layer.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;delete layer&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
==== Object ====&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon name&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Req. Pixel Size&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Description&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Current Tango ArtLibreSet&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Proposed Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_selection_group.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;selection group&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_selection_ungroup.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;selection ungroup&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_selection_up.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;selection up&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_selection_bot.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;selection bot&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_selection_down.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;selection down&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_selection_top.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;selection top&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_object_flip_hor.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;object flip hor&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_object_flip_ver.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;object flip ver&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_object_rotate_90_CCW.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;object rotate 90 CCW&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_object_rotate_90_CW.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;object rotate 90 CW&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
==== Path ====&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon name&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Req. Pixel Size&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Description&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Current Tango ArtLibreSet&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Proposed Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_stroke_tocurve.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;stroke tocurve&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_object_tocurve.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;object tocurve&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_selection_trace.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;selection trace&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_union.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;union&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_difference.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;difference&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_division.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;division&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_exclusion.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;exclusion&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_selection_break.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;selection break&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_selection_combine.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;selection combine&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_linked_offset.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;linked offset&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_dynamic_offset.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;dynamic offset&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_outset_path.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;outset path&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_inset_path.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;inset path&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_intersection.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;intersection&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_cut_path.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;cut path&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_simplify.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;simplify&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_selection_reverse.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;selection reverse&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
==== Text ====&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon name&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Req. Pixel Size&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Description&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Current Tango ArtLibreSet&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Proposed Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_put_on_path.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;put on path&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_remove_from_path.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;remove from path&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_flow_into_frame.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;flow into frame&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_unflow.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;unflow&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_convert_to_text.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;convert to text&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_remove_manual_kerns.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;remove manual kerns&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
==== Help ====&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon name&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Req. Pixel Size&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Description&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Current Tango ArtLibreSet&amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Proposed Icon&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_about_memory.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;about memory&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:orig_inkscape_options.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;inkscape options&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
==== Extras ====&lt;br /&gt;
&amp;lt;p&amp;gt;These icons may need classification or may be unused.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon&amp;lt;/th&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Icon name&amp;lt;/th&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Req. Pixel Size&amp;lt;/th&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Description&amp;lt;/th&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Current Tango ArtLibreSet&amp;lt;/th&amp;gt;	&amp;lt;th scope=&amp;quot;row&amp;quot;&amp;gt;Proposed Icon&amp;lt;/th&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_3dbox_four_handles.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;3dbox four handles&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_3dbox_three_handles.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;3dbox three handles&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_dialog_item_properties.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;dialog item properties&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_draw_3dbox.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;draw 3dbox&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_file_open_recent.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;file open recent&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_help_keys.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;help keys&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_help_tutorials.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;help tutorials&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_inkscape.file.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;inkscape.file&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_sticky_zoom.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;sticky zoom&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_toggle_vp_x.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;toggle vp x&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_toggle_vp_y.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;toggle vp y&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;	&amp;lt;td&amp;gt;[[Image:orig_toggle_vp_z.png]]&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;toggle vp z&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jiho</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Release_notes/0.46&amp;diff=16180</id>
		<title>Release notes/0.46</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Release_notes/0.46&amp;diff=16180"/>
		<updated>2007-09-05T20:36:18Z</updated>

		<summary type="html">&lt;p&gt;Jiho: /* UI */ added OS X theme improvements&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Inkscape 0.46=&lt;br /&gt;
'''(not released yet)'''&lt;br /&gt;
&lt;br /&gt;
Highlights in this release:&lt;br /&gt;
&lt;br /&gt;
* Paintbucket tool&lt;br /&gt;
&lt;br /&gt;
* Tweak tool&lt;br /&gt;
&lt;br /&gt;
* 3D box tool&lt;br /&gt;
&lt;br /&gt;
* LPEs&lt;br /&gt;
&lt;br /&gt;
* new SVG filters and UI&lt;br /&gt;
&lt;br /&gt;
* native PDF and AI import&lt;br /&gt;
&lt;br /&gt;
* Open Clip Art Library integration&lt;br /&gt;
&lt;br /&gt;
* full on-canvas gradient editing&lt;br /&gt;
&lt;br /&gt;
* engraver's toolbox&lt;br /&gt;
&lt;br /&gt;
* touch selection&lt;br /&gt;
&lt;br /&gt;
* dockable dialogs&lt;br /&gt;
&lt;br /&gt;
* command line access to verbs&lt;br /&gt;
&lt;br /&gt;
* snapping made usable&lt;br /&gt;
&lt;br /&gt;
* significant speed and interactivity improvements&lt;br /&gt;
&lt;br /&gt;
* hundreds of smaller features and bugfixes&lt;br /&gt;
&lt;br /&gt;
=Speed and interactivity=&lt;br /&gt;
&lt;br /&gt;
* In this version, Inkscape starts using the [http://www.cairographics.org cairo] library for rendering. It is now used for '''outline mode''' display which, thanks to using cairo and other optimizations, redraws '''faster by about 25%'''. More impressive are memory savings: thanks to cairo, in outline mode Inkscape now takes only about '''50% of the memory''' used by 0.45 for the same file. &lt;br /&gt;
&lt;br /&gt;
* '''Smart redraw directionality:''' With complex images and/or on slow computers, you may have noticed that Inkscape redraws the screen image in horizontal strips, and these strips are painted in order from top to bottom. Now the redraw always starts '''at your mouse cursor location''' and proceed upwards and downwards from it, so that the area near the cursor is always redrawn first. This significantly improves program's responsiveness in some situations. For example, when you are node-editing part of a complex path, the entire path needs to be redrawn on each change, but now this redraw starts from the point you're working on. Moreover, the redraw is interruptible, so each mouse movement starts new redraw from the mouse cursor area. As a result, during such operations those parts that you're working on redraw often and feel snappy and responsive, while areas further away may lag behind more.&lt;br /&gt;
&lt;br /&gt;
* '''Faster blur''' for exporting and high quality on-screen rendering: Inkscape now uses an IIR (Infinite Impulse Response) filter for blurring with large radius. This greatly improves the speed of blur redraw at high zooms or in high-resolution export (or simply with very large blur radius). On the other hand, the results are an approximation to a true Gaussian blur, so a drawing may look slightly different from the mathematically precise blur (usually the differences are far from visible, though). This code is mainly based on: ''Recursive Gaussian Derivative Filters'' by L.J. van Vliet, I.T. Young and P.W. Verbeek (see the source code for more detailed references). &lt;br /&gt;
&lt;br /&gt;
:'''Exporting drawings with blur''' was particularly slow in 0.45; some files could take hours to export. Now this is fixed, in part by the faster algorithm mentioned above and in part by a bugfix in the export code. Now even the quite complex files with large blurs export at high resolution in at most a few minutes.  &lt;br /&gt;
&lt;br /&gt;
* [faster gradients - mental]&lt;br /&gt;
&lt;br /&gt;
* '''Dragging handles and nodes''' as well as '''dragging and transforming objects''' by mouse became more responsive, so that working in complex drawings and especially editing complex paths is noticeably easier. In particular, this fixes the annoying latency issue where a node or a handle could follow mouse cursor even after you release mouse button after a drag. &lt;br /&gt;
&lt;br /&gt;
* '''Moving the cursor around''' in a file with large and complex paths has become much snappier and more responsive. Previously, in extreme cases Inkscape could freeze for seconds while catching up with the mouse cursor; such delays are now eliminated.&lt;br /&gt;
&lt;br /&gt;
* Several improvements make '''canvas panning and scrolling''' smoother and more interactive in complex slow-rendering documents:&lt;br /&gt;
&lt;br /&gt;
:* When panning by the middle mouse button, Inkscape no longer attempts to redraw the canvas while your mouse button is pressed. Any redrawing only happens after you release the mouse. As a result, the newly revealed parts of the canvas are somewhat more &amp;quot;dirty&amp;quot; but the '''panning is smoother than before''', with few if any &amp;quot;hiccups&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
:* '''Redrawing the newly exposed parts of the canvas''' after scrolling, especially diagonal scrolling, is now faster because only the exposed areas are redrawn; before, this often resulted in the entire screen being redrawn which was much slower.&lt;br /&gt;
&lt;br /&gt;
:* Previously, if you started panning with middle button while Inkscape is still redrawing screen in a complex drawing, panning sometimes completely failed or moved canvas just a little step. Now it is '''guaranteed to pan the canvas all the way''' from mouse-press point to mouse-release point in any case, even if sometimes it fails to show the intermediate positions.&lt;br /&gt;
&lt;br /&gt;
:* When pressing and holding Ctrl+arrows to scroll canvas, Inkscape normally accelerates scrolling so that each next scrolling step is bigger than the previous. Previously, in complex drawings this acceleration sometimes got interrupted, which made scrolling annoyingly bumpy and slow. Now this is fixed so that '''scrolling is smoothly accelerated''' even in a slow-rendering document. &lt;br /&gt;
&lt;br /&gt;
:* The default '''starting speed and acceleration''' of Ctrl+arrows scrolling are slightly increased. (They are both settable in Preferences.)&lt;br /&gt;
&lt;br /&gt;
* More responsive UI: When you zoom, the '''zoom control''' on the right end of the statusbar now updates immediately, not after screen redraw as before. Also, the '''statusbar messages''' displayed while you're drawing a shape or a path in Pen tool do not lag behind the mouse movements.&lt;br /&gt;
&lt;br /&gt;
=Tools=&lt;br /&gt;
&lt;br /&gt;
==Paint Bucket tool==&lt;br /&gt;
&lt;br /&gt;
The new Paint Bucket tool works exactly as you would expect: click in any area bounded on all sides and it will '''fill it with color'''. Being a vector tool, however, Inkscape's Paint Bucket just creates a new ''path'' that &amp;quot;fills in&amp;quot; the area in which you clicked. &lt;br /&gt;
&lt;br /&gt;
===How it works===&lt;br /&gt;
&lt;br /&gt;
It is important to note that the tool is '''perceptual''', not geometric. That is, when looking for the boundaries around the point you clicked, it takes for such boundaries any ''visible'' color changes. This means that filling will stop at gradients, blurs, and even the color boundaries in imported bitmaps, but will ignore any paths or other objects that are fully (or almost) transparent or for any other reason do not stand out from the background. In short, it will work exactly as if you were filling a rasterized version of your image in a bitmap editor like Photoshop or GIMP - but will give you a vector object to work with.&lt;br /&gt;
&lt;br /&gt;
For example, now you can scan a pencil sketch, import the bitmap into Inkscape, and quickly fill all its cells with colors even without tracing the bitmap first. This is a very convenient and interactive way of digitizing your paper drawings, making the '''traditional bitmap tracing unnecessary''' in many cases.&lt;br /&gt;
&lt;br /&gt;
Internally, the tool works by performing a bitmap-based flood fill on a rendered version of the visible canvas, then tracing the resulting fill using [[potrace]] and placing the traced path into the document.&lt;br /&gt;
&lt;br /&gt;
It places the rendered path onto the current layer, so you can have a layer on top (for example, &amp;quot;Inks&amp;quot;) and select the layer below (&amp;quot;Colors&amp;quot;) and do the fills so that they always appear below the Inks.&lt;br /&gt;
&lt;br /&gt;
The '''resolution''' of the bitmap image used to perform the trace is dependent upon your '''current zoom level''' -- the more zoomed in to an area that you are, the higher the resolution of the bitmap-based flood fill. So, if you are got a fill that is too imprecise, has rough corners, or don't go into small nooks and appendices where it is supposed to go, just undo, zoom in closer and repeat filling from the same point. Conversely, if the fill leaks out through a small gap, zoom out to make the gap less visible and fill again (or use the auto gap closing parameter, see below).&lt;br /&gt;
&lt;br /&gt;
===Style===&lt;br /&gt;
&lt;br /&gt;
Like all object-creating tools, the Paint Bucket may use the '''last-set style''' for the objects it creates (this is the default), or it can use its own '''fixed style'''. You can switch between these modes on this tool's page in Inkscape Preferences (Ctrl+Shift+P). &lt;br /&gt;
&lt;br /&gt;
===Controls===&lt;br /&gt;
&lt;br /&gt;
In the tool's '''Controls bar''':&lt;br /&gt;
&lt;br /&gt;
* '''Tolerance''' (set in per cent units) controls how large must be color difference at a point (compared to the initial click point) to stop the fill. Zero tolerance means only the area of strictly the same color will be filled; the larger the tolerance, the easier it will be for the fill to leak into adjacent different-color areas. The default value is 10%.&lt;br /&gt;
&lt;br /&gt;
* You can control the amount of '''inset/outset''' to be applied to the created fill path.  Setting a positive outset causes fill paths to be larger than the filled bitmap area (good for eliminating anti-aliasing errors), while setting a negative outset causes the path to be smaller.  This works the same as the Outset and Inset path commands.&lt;br /&gt;
&lt;br /&gt;
* Paint Bucket's perceptual fill can use either all visible colors or specific color '''channels'''.  You can restrict the fill algorithm to the following channels:&lt;br /&gt;
** Red&lt;br /&gt;
** Green&lt;br /&gt;
** Blue&lt;br /&gt;
** Hue&lt;br /&gt;
** Saturation&lt;br /&gt;
** Lightness&lt;br /&gt;
** Alpha&lt;br /&gt;
&lt;br /&gt;
* An '''auto gap''' setting.  When enabled, Paint Bucket will try to close any gaps in the area boundaries that would normally cause the fill to spill out of the desired area.  There are four settings to auto gap:&lt;br /&gt;
** None&lt;br /&gt;
** Small (fill gaps up to 2 pixels in size)&lt;br /&gt;
** Medium (4 pixels)&lt;br /&gt;
** Large (6 pixels)&lt;br /&gt;
&lt;br /&gt;
* A '''style swatch''' on the far right of the bar shows the style that will be used for the next fill object you create. &lt;br /&gt;
&lt;br /&gt;
===Shortcuts===&lt;br /&gt;
&lt;br /&gt;
The tool's '''shortcuts''' are:&lt;br /&gt;
&lt;br /&gt;
* '''Single click''' performs filling from the click point.&lt;br /&gt;
&lt;br /&gt;
* '''Shift+click''' performs filling from the click point and then unions the resulting path with the selected path. This way, if your first attempt did not fill in all of the desired area, you can Shift+click the remaining corner to fill it in separately and combine the result with the result of the previous fill.&lt;br /&gt;
&lt;br /&gt;
* '''Ctrl+click''' on an object simply changes that object's fill to the current fill color of the tool, and '''Shift+Ctrl+click''' changes the stroke to the current stroke color.&lt;br /&gt;
&lt;br /&gt;
* '''Click and drag''' performs filling from '''all of the points''' that you pass while dragging (you will see your path visualized by a red line). From each point, the fill spreads to the neighbors with the colors similar to that point - in other words, it's like clicking with this tool at each point of the drag path and unioning the results. This lets you easily fill an area occupied by a gradient or blur - just drag from the darkest to the lightest points in the area you want to fill.&lt;br /&gt;
&lt;br /&gt;
* '''Alt+click and drag''' works similarly to simple drag, except from each point of the drag path, the fill spreads to the neighbors (if any) with the colors similar to the ''initial point'' (the point where you started the drag).  This lets you fill a series of similarly-colored yet separated areas (for example, multiple cells in a cartoon) by starting the drag in one of those areas, and alt+dragging the tool through all the other areas.&lt;br /&gt;
&lt;br /&gt;
==Tweak tool==&lt;br /&gt;
&lt;br /&gt;
The Tweak tool is an exciting new way to edit drawings which largely blurs the&lt;br /&gt;
distinction between vector and raster editing. Instead of meticulously selecting some&lt;br /&gt;
objects and then performing an action on the selection, you can now select ''all''&lt;br /&gt;
objects (or all objects you are interested in) and apply the Tweak tool's brush to&lt;br /&gt;
smoothly and naturally change the shape or style of only those objects (or parts&lt;br /&gt;
thereof) ''that the brush touches''.&lt;br /&gt;
&lt;br /&gt;
The area of the tool's action - its ''brush'' - is marked by an orange-colored circular&lt;br /&gt;
outline that moves with your mouse cursor. However, that area actually has no sharp&lt;br /&gt;
boundaries; the power of the tool's action falls off gradually, following a smooth&lt;br /&gt;
bell-shaped profile. This makes the tool act softly and smoothly.&lt;br /&gt;
&lt;br /&gt;
The tool will work on any number of selected objects; for example, you can select all&lt;br /&gt;
(Ctrl+A) and &amp;quot;smear&amp;quot; your entire drawing by Push mode or paint it by Color Paint&lt;br /&gt;
mode. You can also apply it to groups of objects; it will go into groups and act on&lt;br /&gt;
individual objects inside groups. If you're trying to use it without anything selected,&lt;br /&gt;
it will remind you by a statusbar message to select some objects.&lt;br /&gt;
&lt;br /&gt;
===Width===&lt;br /&gt;
&lt;br /&gt;
The width of the tool's brush, in the range from 1 to 100, can be changed by the&lt;br /&gt;
'''Width''' control in the tool's controls bar above the canvas. You can also change&lt;br /&gt;
width by '''Left''' and '''Right''' arrow keys (same as in the Calligraphy tool) at any&lt;br /&gt;
time (including during action) as well as '''Home''' and '''End'''. Also, as in Calligraphy&lt;br /&gt;
tool, the visible width of the brush is independent of zoom; simply zooming in or out is&lt;br /&gt;
often easier than adjusting the width if you want to cover a smaller or larger area of&lt;br /&gt;
the drawing.&lt;br /&gt;
&lt;br /&gt;
===Force===&lt;br /&gt;
&lt;br /&gt;
The next control is '''Force''' which adjusts the power of the action, also in the&lt;br /&gt;
range from 1 to 100. You can also change width by '''Up''' and '''Down''' arrow keys at&lt;br /&gt;
any time (including during action).&lt;br /&gt;
&lt;br /&gt;
If you have a pressure-sensitive tablet and your &amp;quot;Use pressure&amp;quot; button on the right-hand&lt;br /&gt;
end of the controls bar is on, then the force will also depend on how hard you actually&lt;br /&gt;
press your pen into your tablet, changing in the range from zero to whatever you set in&lt;br /&gt;
the Force control. If all you have is a mouse, then the force will be constant but still&lt;br /&gt;
settable by the Force control. &lt;br /&gt;
&lt;br /&gt;
===Path editing modes===&lt;br /&gt;
&lt;br /&gt;
The Tweak tool has a number of '''modes''', selectable by toggle buttons in the tool's&lt;br /&gt;
Controls bar and by keyboard shortcuts. Some of these modes change the shapes of &lt;br /&gt;
paths while others affect the colors of objects. All these modes share the Width and&lt;br /&gt;
Force controls but otherwise are quite different. Let's look at the path editing modes&lt;br /&gt;
first.&lt;br /&gt;
&lt;br /&gt;
Unlike the Node tool, to edit paths with the Tweak tool you don't need to worry about&lt;br /&gt;
where the nodes of a path are and how to manipulate them. You just apply the tool's&lt;br /&gt;
brush to any point, and the selected paths at that point will reshape smoothly and&lt;br /&gt;
naturally - as if made of soft jelly - regardless of where its nodes lie. If applied to&lt;br /&gt;
a shape or text object, the tool converts them to paths automatically.&lt;br /&gt;
&lt;br /&gt;
While not very useful for technical drawings, tweaking paths will be indispensable for&lt;br /&gt;
artistic uses of Inkscape - cartoons, drawings, sketches, anime, etc. This new&lt;br /&gt;
functionality is somewhat similar to the tools such as &amp;quot;Pucker&amp;quot; and &amp;quot;Bloat&amp;quot; in the&lt;br /&gt;
latest versions of Adobe Illustrator. &lt;br /&gt;
&lt;br /&gt;
There are currently six path editing modes in the Tweak tool: '''Push''', '''Shrink''',&lt;br /&gt;
'''Grow''', '''Attract''', '''Repel''', and '''Roughen'''.&lt;br /&gt;
&lt;br /&gt;
* This default mode of the tool, '''Push''', simply displaces the part of the path under the cursor in the direction of the drag. The path behaves like soft jelly, bending and bulging smoothly and naturally. It's an easy way to produce various irregular, lifelike, handmade-looking shapes starting from something as simple as an ellipse or a calligraphic stroke. For parallel-stroke hatching (engraving) done in the Calligraphy tool, pushing is an easy way to bend, pinch, or curve the entire hatching uniformly.&lt;br /&gt;
&lt;br /&gt;
* The '''Shrink''' and '''Grow''' are two opposite modes that move each point of a path in a direction perpendicular to the path's surface at the point, either inwards (Shrink) or outwards (Grow). This is similar to the Inset and Outset commands, except that the Tweak tool can act on a part of a path instead of the whole path.&lt;br /&gt;
&lt;br /&gt;
:For example, the visible lightness/darkness of an engraving hatching may not exactly correspond to your artistic intention. Also, the ends of Calligraphy pen strokes are often far from ideal - they may be too blunt or have unsightly bends or blobs. This is where the Tweak tool may help. Select all the strokes in a hatching pattern and apply a light Shrink action where you want the lines to become thinner (and the hatching to become lighter), up until total disappearance. If you press hard, shrinking works as an eraser, so you can easily clean the strokes' ends to make them thin, sharp, and uniform. Conversely, applying Grow makes strokes wider (i.e. the hatching becomes darker).&lt;br /&gt;
&lt;br /&gt;
:Of course, shrinking and growing are useful not only for calligraphic strokes. Same as with Push, with Shrink and Grow you can '''sculpt''' any path, spawning smooth treacle-like appendages with Inflating and carving holes with Melting. Unlike the &amp;quot;node sculpting&amp;quot; mode in the Node tool, however, this does not require adding new nodes to the shape.&lt;br /&gt;
&lt;br /&gt;
* The '''Attract''' and '''Repel''' modes work by moving each affected point on a path towards (Attract) or from (Repel) the cursor point. In some cases this may look similar to Shrink and Grow, but the difference is that shrinking/growing moves paths perpendicularly to the path in each point, whereas attracting/repelling moves them to or from the cursor regardless of the path shape. These modes are similar to the Pinch effect in ; you can use them for various central-symmetric distortions in parts of your paths.&lt;br /&gt;
&lt;br /&gt;
* The '''Roughen''' mode does exactly this: roughens the edge of the path without  changing its overall shape. Slight roughening simply makes the edge crooked and uneven;  strong roughening tears and explodes the edge into random blobs and splotches. Note  that this operation, especially with high Fidelity, adds a lot of nodes which increases  the size of your SVG document and may slow down Inkscape considerably. In particular,  pushing/melting/inflating of a roughened path becomes much slower and more difficult, so  it's recommended to finalize the overall shape of a path first and roughen it, if  necessary, only as the final step.&lt;br /&gt;
&lt;br /&gt;
====Fidelity====&lt;br /&gt;
&lt;br /&gt;
Any tweaking of a path slightly distorts the entire path, including even those parts&lt;br /&gt;
that you didn't touch. These distortions are similar to those that a Simplify command&lt;br /&gt;
produces. The '''Fidelity''' value (also in the range from 1 to 100, default is 50)&lt;br /&gt;
allows you to control the amount of these distortions. With a higher fidelity, the&lt;br /&gt;
distortions are less noticeable, but the path may end up having a lot of nodes which&lt;br /&gt;
inflates up the SVG size and slows down Inkscape.&lt;br /&gt;
&lt;br /&gt;
The best value of Fidelity depends on the nature of your artwork. If you're sculpting an&lt;br /&gt;
amorphous blob, you can do with low fidelity of about 20. If, however, you are pushing&lt;br /&gt;
or inflating a text string (as a single path) and want the letters outside the distorted&lt;br /&gt;
area to remain crisp and clean, you will need to raise fidelity to 80 or more. &lt;br /&gt;
&lt;br /&gt;
====Known problems====&lt;br /&gt;
&lt;br /&gt;
Known problems with the path editing modes in Tweak tool:&lt;br /&gt;
&lt;br /&gt;
# they don't work on open paths (an open path becomes closed if you tweak it);&lt;br /&gt;
# they are rather slow; &lt;br /&gt;
# they quickly eat memory; and &lt;br /&gt;
# they are sometimes buggy - thin calligraphic strokes may suddenly disappear or change their shape drastically as you're melting or inflating them.&lt;br /&gt;
&lt;br /&gt;
For (4), it helps to increase Fidelity. Also, you can undo the bad change and try again with less pressure on the pen - if you do your thinning in several light touches instead of one heavy press, usually you will be able to get the desired result without the buggy behavior. &lt;br /&gt;
&lt;br /&gt;
Also, sometimes after roughening, further tweaking of a path becomes impossible with this diagnostic:&lt;br /&gt;
&lt;br /&gt;
  WARNING **: Shape error in ConvertToShape: directedEulerian(a) == false&lt;br /&gt;
&lt;br /&gt;
All these problems stem from the livarot library that we use for geometric manipulation of paths. Fortunately, livarot is scheduled for replacement by lib2geom, a new library now in development, so hopefully these issues will be addressed then.&lt;br /&gt;
&lt;br /&gt;
===Color-changing modes===&lt;br /&gt;
&lt;br /&gt;
The '''Color Paint''' and '''Color Jitter''' modes, unlike the path editing modes,&lt;br /&gt;
change the colors of objects instead of their shapes. Yet they share enough common&lt;br /&gt;
features with the path-changing modes to be part of the same tool: These modes also use&lt;br /&gt;
a circular soft-edged brush controlled by the Width and Force parameters on the Controls&lt;br /&gt;
bar and affected by the pen pressure (if you have a pressure-sensitive tablet).&lt;br /&gt;
&lt;br /&gt;
* '''Color Paint''' applies the style of the tool to the selected objects under the brush. The style of the tool is visible in the style swatch at the rightmost end of the tool's control bar; it can be changed by clicking on the color palette or by any other style assignment command, such as Fill and Stroke dialog. ('''Note''': unlike all other tools, in Tweak tool in Color Paint mode you cannot assign style directly to selected objects; any style-setting command changes the tool's style instead.)&lt;br /&gt;
&lt;br /&gt;
:The fill from the tool's style applies to the fills of the painted objects, and the stroke applies to the strokes. If the tool's style has no fill or no stroke, it won't affect fills or strokes, correspondingly. For example, if you want to color the fills of objects blue but leave their strokes untouched, assign blue fill to the tool's style (just click blue on the palette) but set its stroke to None (middle-click the Stroke swatch in the statusbar). Similarly, master opacity in the tool's style affects master opacities of the touched objects (if the O channel is on, see below).&lt;br /&gt;
&lt;br /&gt;
:This mode allows you to literally paint over objects, shifting their colors towards the target style of the tool. For example, if you paint with yellow fill over a blue-filled object, the object will become greenish blue, then green, then yellowish green, and end up being exactly the yellow color you're painting with. This speed of this gradual transition depends on both Force parameter and pen pressure; also, objects touched by the periphery of the brush are less affected than those hit by the brush center. Overall, using this tool is very similar to a soft brush in a raster editor such as Gimp or Photoshop.&lt;br /&gt;
&lt;br /&gt;
* '''Color Jitter''' mode does not apply any color, but instead jitters (randomizes) the colors of the objects it touches. The force of the action determines how strong is the randomization, i.e. how far the colors deviate from the original values. This mode does not use the tool's style.&lt;br /&gt;
&lt;br /&gt;
Both modes work on flat fills and gradients; for gradients, the tool takes into account not only the position of the entire object with gradient, but also the position of each gradient stop relative to the brush. This means that, for example, you can change the blue color only in an object filled with blue-red gradient simply by painting over its blue end with a brush small enough to not touch the red. (Note that color tweaking does not create gradients on objects that used flat color before, but only adjusts existing gradients in the drawing.)&lt;br /&gt;
&lt;br /&gt;
====Channels====&lt;br /&gt;
&lt;br /&gt;
Color Paint and Color Jitter honor the '''Channels''' control. This control comprises&lt;br /&gt;
the four buttons: '''H''', '''S''', '''L''', and '''O''', which allow you to turn on and off&lt;br /&gt;
the tool's action on the object's hue, saturation, lightness, and opacity,&lt;br /&gt;
correspondingly. For example, if you want to raise the saturation of some part of your&lt;br /&gt;
drawing without changing the hue, select some maximum-saturation color (e.g. pure red)&lt;br /&gt;
and turn off all Channels buttons except S. Similarly, you can replace the hues without&lt;br /&gt;
affecting saturation or lightness (only H pressed), or lighten/darken all colors without&lt;br /&gt;
changing their hues and saturation (only L pressed). Pressing O allows you to apply the&lt;br /&gt;
master opacity from the tool's style to the master opacity of objects (but not fill or&lt;br /&gt;
stroke opacity).&lt;br /&gt;
&lt;br /&gt;
====Usage notes====&lt;br /&gt;
&lt;br /&gt;
Color painting with Tweak tool is similar, but not exactly analogous to bitmap&lt;br /&gt;
painting. Even though the tool itself works as a soft brush, it still applies its color&lt;br /&gt;
to vector objects, which behave as vector objects usually do. For example, if you want&lt;br /&gt;
to change the tint of the face in your drawing, and if a hand in the drawing is part of&lt;br /&gt;
the same object as the face, that hand will change its tint too even if it's located far&lt;br /&gt;
from the point you are painting. (We foresee a &amp;quot;fracture&amp;quot; command in one of the next&lt;br /&gt;
versions of Inkscape which will help you turn a monolithic object into a mosaic of small&lt;br /&gt;
fragments that will be then easy to paint with Tweak tool.)  Still, even with this&lt;br /&gt;
limitation, color painting is a novel way of dealing with vector drawings which allows&lt;br /&gt;
you to quickly and intuitively make adjustments which would be awkward and slow with&lt;br /&gt;
traditional approach.&lt;br /&gt;
&lt;br /&gt;
Drawings containing patterns or scatterings of small independent objects are best suited&lt;br /&gt;
for color painting with Tweak tool. Examples include:&lt;br /&gt;
&lt;br /&gt;
* freehand drawings with Calligraphy pen, consisting of many separate strokes;&lt;br /&gt;
&lt;br /&gt;
* gradient meshes imported from Adobe Illustrator files (Inkscape renders these meshes as lattices of small polygons; while there's no direct support for gradient meshes in Inkscape yet, color painting on such lattices is almost as good);&lt;br /&gt;
&lt;br /&gt;
* text converted to paths and with Break Apart command applied so that each letter is a separate path;&lt;br /&gt;
&lt;br /&gt;
* patterns made with the Tile Clones command; note that you need to unset the fill and/or stroke on the original object and use the Color tab to assign some initial color to the clones - this will make them paintable with the Tweak tool without unlinking.&lt;br /&gt;
&lt;br /&gt;
Moreover, color tweaking can be useful for compositions with a few objects or even for&lt;br /&gt;
single objects. Unlike all other color selection methods, painting with the Tweak tool&lt;br /&gt;
implements the ''color mixing'' metaphor which is much more familiar to traditional&lt;br /&gt;
artists than RGB sliders or even the color wheel. For example, start with a rectagle of&lt;br /&gt;
pure blue color; then, pick different colors by Color Paint and apply light touches with&lt;br /&gt;
minimum Force and minimum pen pressure: add a little green, a little brown, a little&lt;br /&gt;
yellow, etc. until you have the exact hue you need. Similarly, you can whiten or blacken&lt;br /&gt;
any hue by admixing white or black.&lt;br /&gt;
&lt;br /&gt;
You can also use color tweaking to add a tint, darken/lighten, saturate/desaturate, or&lt;br /&gt;
color jitter your entire drawing. Just select all in all layers, zoom out, choose a&lt;br /&gt;
large brush width so it covers all of the drawing, and apply a little color tweaking&lt;br /&gt;
(with minimum Force) that will therefore affect all visible objects.&lt;br /&gt;
&lt;br /&gt;
===Keyboard shortcuts===&lt;br /&gt;
&lt;br /&gt;
* '''W''', '''Shift+F2''': switch to the Tweak tool&lt;br /&gt;
&lt;br /&gt;
* '''Shift+P''': switch to the Push mode&lt;br /&gt;
&lt;br /&gt;
* '''Shift+S''': switch to the Shrink mode&lt;br /&gt;
&lt;br /&gt;
* '''Shift+G''': switch to the Grow mode&lt;br /&gt;
&lt;br /&gt;
* '''Shift+A''': switch to the Attract mode&lt;br /&gt;
&lt;br /&gt;
* '''Shift+E''': switch to the Repel mode&lt;br /&gt;
&lt;br /&gt;
* '''Shift+R''': switch to the Roughen mode&lt;br /&gt;
&lt;br /&gt;
* '''Shift+C''': switch to the Color Paint mode&lt;br /&gt;
&lt;br /&gt;
* '''Shift+J''': switch to the Color Jitter mode&lt;br /&gt;
&lt;br /&gt;
* '''Left, Right, Home, End''': change width&lt;br /&gt;
&lt;br /&gt;
* '''Up, Down''': change force&lt;br /&gt;
&lt;br /&gt;
* '''mouse drag''': act on selected path in the current mode&lt;br /&gt;
&lt;br /&gt;
* '''Ctrl+mouse drag''': temporarily switch to Shrink (while Ctrl is down)&lt;br /&gt;
&lt;br /&gt;
* '''Shift+Ctrl+mouse drag''': temporarily switch to Grow (while Shift+Ctrl is down)&lt;br /&gt;
&lt;br /&gt;
==3D Box tool==&lt;br /&gt;
&lt;br /&gt;
Inkscape is a two-dimensional drawing tool. However, very often it is used to draw three-dimensional objects. The new '''3D box tool''' helps you create such 3D drawings by automating the most common operation: creating a three-dimensional box in a given perspective. The tool automatically ensures that all sides of the box lie on the corresponding perspective lines. We're not going to compete with Blender - but even simple things can go a long way.&lt;br /&gt;
&lt;br /&gt;
Currently in the 3D box tool you can:&lt;br /&gt;
&lt;br /&gt;
* draw a 3D box by dragging on canvas (use Shift+dragging without releasing the mouse button to extrude in z direction)&lt;br /&gt;
&lt;br /&gt;
* adjust any of its 3 dimensions by handles&lt;br /&gt;
&lt;br /&gt;
* move a 3D box &amp;quot;in perspective&amp;quot; by dragging its center; without modifiers, movement occurs within the XY-plane (press Ctrl to constrain the movement to the directions of the coordinate axes or diagonals), with Shift the box moves parallel to the Z-axis&lt;br /&gt;
&lt;br /&gt;
* adjust the vanishing points of a perspective by dragging them across the canvas (see below) or toggling their states; all boxes sharing this perspective are transformed accordingly&lt;br /&gt;
&lt;br /&gt;
In SVG, a 3D box is represented as a '''group''' (svg:g) with a special extension attribute (in inkscape namespace); this group contains the 6 quadrilateral '''paths''' representing the sides of the box. Only the 3D box tool treats this object as a box; for all other tools it is just a group, so you can select any of the paths by Ctrl+click, apply any style to it, delete it, etc. You can of course transform the entire box or any face in it using Selector or Node tools.&lt;br /&gt;
&lt;br /&gt;
When several boxes are selected, all vanishing points of their associated perspectives are shown on the canvas. If vanishing points of different perspectives coincide, they are combined in a single &amp;quot;dragger&amp;quot;. Moving this dragger moves all the vanishing points simultaneously and transforms the associated boxes accordingly. Note that some non-selected boxes may also be reshaped if their perspectives share the same vanishing point. Pressing Shift while moving the dragger can be used to only transform the selected boxes, separating their perspectives from the non-selected ones'. On the other hand, when a vanishing point being dragged comes close enough to another one, both snap together and are combined in a single dragger.&lt;br /&gt;
&lt;br /&gt;
===Keyboard shortcuts===&lt;br /&gt;
&lt;br /&gt;
* '''X''', '''Alt+F4''': switch to the 3D box tool&lt;br /&gt;
&lt;br /&gt;
* '''L''': toggle visibility of perspective lines&lt;br /&gt;
&lt;br /&gt;
* '''A''': when perspective lines are visible, toggle between &amp;quot;all lines&amp;quot; and &amp;quot;only lines connected to front corners&amp;quot; (this can help to avoid visual clutter)&lt;br /&gt;
&lt;br /&gt;
[max]&lt;br /&gt;
&lt;br /&gt;
==Gradient Tool==&lt;br /&gt;
Stops in gradients can be added, deleted, and edited on-canvas now.&lt;br /&gt;
*Stops can be added by '''double clicking''' or by '''Ctrl+Alt+Click''' on the gradient line.&lt;br /&gt;
*Stops can be deleted by '''Ctrl+Alt+Click''' on a stop or by the '''Del''' key for all the selected stop(s).&lt;br /&gt;
:*When you delete an end stop, the nearest intermediate stop becomes the new end stop of the gradient (without moving - i.e., the gradient span becomes shorter).&lt;br /&gt;
:*When you delete an end stop and there are no intermediate stops, the object will be painted with a solid fill taken from the color &amp;amp; opacity of the remaining stop.&lt;br /&gt;
*More than one stop can be selected at a time by '''Shift+click'''.&lt;br /&gt;
:*Can be moved together if next to each other.&lt;br /&gt;
:*Can be deleted at the same time.&lt;br /&gt;
:*When you have one of the '''gradient handles selected''', its style (color and opacity) is reflected by the selected style indicator (left of the statusbar) and the Fill&amp;amp;Stroke dialog. Previously, opacity of a gradient handle was reflected as fill-opacity and stroke-opacity; now it is reflected as '''master opacity''' (the &amp;quot;O:&amp;quot; spinbutton in the selected style indicator, the &amp;quot;Master opacity&amp;quot; slider in Fill&amp;amp;Stroke). This makes it much easier to view and change opacity of gradient handles using only the selected style indicator in the statusbar.&lt;br /&gt;
:*When multiple gradient stops are selected, the selected style indicator (in the statusbar) displays and controls the averaged color and opacity of the selected stops.&lt;br /&gt;
*If the selected object(s) have gradient in fill or stroke, the '''selected style indicator''' in the bottom-left corner of the editing window now displays a '''live gradient preview''' prefixed by '''R''' or '''L''' to indicate Radial or Linear gradients (instead of displaying &amp;quot;L Gradient&amp;quot; or &amp;quot;R Gradient&amp;quot; text labels as before). Also, this and other similar widget now use italic font face to indicate &amp;lt;i&amp;gt;None&amp;lt;/i&amp;gt; and bold to indicate &amp;lt;b&amp;gt;Unset&amp;lt;/b&amp;gt;.&lt;br /&gt;
* When copy/pasting or duplicating an object with gradient, it now automatically gets a '''copy''' of the original gradient, so modifying it does not affect the source object's gradient anymore (before, you had to press the Duplicate button on the Gradient controls bar for this).&lt;br /&gt;
&lt;br /&gt;
==Calligraphy tool: Engraver's Toolbox ==&lt;br /&gt;
&lt;br /&gt;
Several new features were added to the Calligraphic pen to make&lt;br /&gt;
Inkscape capable of the ancient art of '''line&lt;br /&gt;
engraving'''. Traditional engraving is a very labour-intensive&lt;br /&gt;
process, and while for a long time it was the only practical way&lt;br /&gt;
of reproducing lifelike images in black-and-white print, about a&lt;br /&gt;
century ago it was almost completely displaced by automatic&lt;br /&gt;
halftone screens. However, line engravings have their&lt;br /&gt;
characteristic charm, and there's no reason not to try to&lt;br /&gt;
resurrect this art form with the help of Inkscape.&lt;br /&gt;
&lt;br /&gt;
A brief visual guide to the new functionality can be seen on&lt;br /&gt;
these screenshots:&lt;br /&gt;
&lt;br /&gt;
http://inkscape.org/screenshots/gallery/inkscape-0.46-engraving1.png&lt;br /&gt;
&lt;br /&gt;
http://inkscape.org/screenshots/gallery/inkscape-0.46-engraving2.png&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Tracking a guide path with Ctrl===&lt;br /&gt;
&lt;br /&gt;
One of the most common operations in line engraving is&lt;br /&gt;
'''hatching''' (or sometimes ''cross-hatching'' when several&lt;br /&gt;
hatching grids cross): filling a space with many parallel&lt;br /&gt;
straight or variously curved lines (usually of varying width to&lt;br /&gt;
represent a gradual shading). You could try to achieve a similar&lt;br /&gt;
effect with e.g. path interpolation (blending), but it is rather&lt;br /&gt;
cumbersome and limited; manual drawing of hatch lines, on the&lt;br /&gt;
other hand, is tedious and nearly impossible to do&lt;br /&gt;
uniformly. Now Inkscape provides &amp;quot;assisted hatching&amp;quot; by&lt;br /&gt;
'''tracking a guide path''', allowing you to hatch quickly and&lt;br /&gt;
uniformly and at the same time giving you sufficient manual&lt;br /&gt;
control over the process.&lt;br /&gt;
&lt;br /&gt;
Here's how to do this. First, select the '''guide path''' that&lt;br /&gt;
you will track. It may be another calligraphic stroke, any path&lt;br /&gt;
or shape, or even a letter of a text object. Then switch to&lt;br /&gt;
Calligraphic pen, select the desired parameters (line width,&lt;br /&gt;
angle, fixation etc.) and, before starting to draw, press&lt;br /&gt;
Ctrl. You will see a gray '''track circle''' centered at your&lt;br /&gt;
mouse pointer and touching the closest point on the selected&lt;br /&gt;
guide path. (If you have no guide path selected, a statusbar&lt;br /&gt;
message will tell you to select it.)&lt;br /&gt;
&lt;br /&gt;
Now move your mouse close to the guide path, so that the track&lt;br /&gt;
circle radius is equal to the desired spacing of your hatch&lt;br /&gt;
pattern, and start drawing along the guide path. At that moment,&lt;br /&gt;
the radius of the circle gets locked; now the circle slides&lt;br /&gt;
along the guide path - and the actual stroke is drawn by the&lt;br /&gt;
center of the tracking circle, ''not'' by your mouse point. As&lt;br /&gt;
a result, you are getting a smooth stroke going parallel to the&lt;br /&gt;
guide path and always at the same distance from it.&lt;br /&gt;
&lt;br /&gt;
When the stroke is ready, release your mouse button (or lift&lt;br /&gt;
your tablet pen) but '''do not let go of the Ctrl key''' because&lt;br /&gt;
as long as you have it pressed, the tool remembers the hatch&lt;br /&gt;
spacing you set when you started drawing. Now, you have just&lt;br /&gt;
created a new stroke and, as usual with Inkscape tools, it gets&lt;br /&gt;
selected instead of what was selected before. In our case, this&lt;br /&gt;
means that the newly drawn stroke itself becomes the new guide&lt;br /&gt;
path. Next, you can draw a second stroke along the first one,&lt;br /&gt;
then a third one along the second, etc. Eventually you can fill&lt;br /&gt;
any desired space with uniform hatching.&lt;br /&gt;
&lt;br /&gt;
Alternatively, if you uncheck &amp;quot;Select new path&amp;quot; in the Calligraphy tool preferences, newly created strokes will not be selected, so your original guide path will be kept selected. In this mode, Inkscape will increase the tracking distance after each created stroke so that you can create uniformly spaced hatching by tracking a single guide path. &lt;br /&gt;
&lt;br /&gt;
The attachment to the guide path is not absolute. If you stray&lt;br /&gt;
your mouse pointer far enough from the guide path, you will be&lt;br /&gt;
able to tear it off (the track circle turns from green to red)&lt;br /&gt;
and move freely. This is intentional; this feature allows you,&lt;br /&gt;
for example, to continue drawing a stroke past the end of a&lt;br /&gt;
guide stroke, thus making your hatching cover a wider area than&lt;br /&gt;
the initial guide path. Special care is taken to make such&lt;br /&gt;
tearing off as smooth as possible and to suppress violent jerks,&lt;br /&gt;
but this is not always possible; the general advice is to not&lt;br /&gt;
try to hatch too fast. If jerking and unintended tearoffs still&lt;br /&gt;
bother you, try increasing the Mass parameter.&lt;br /&gt;
&lt;br /&gt;
Also, special code is in place to prevent flipovers - accidental&lt;br /&gt;
jumps to the other side of the guide path. Brief flipovers are&lt;br /&gt;
suppressed, but if you intentionally go over to the other side&lt;br /&gt;
and stay there, eventually Inkscape will obey and your tracking&lt;br /&gt;
stroke will also flip over to follow you.&lt;br /&gt;
&lt;br /&gt;
Tracking a guide also allows some slight feedback by gradually&lt;br /&gt;
changing the tracking distance in response to your drawing&lt;br /&gt;
behavior. Thus, if you're consistently trying to draw closer or&lt;br /&gt;
farther from the guide than the current tracking distance, the&lt;br /&gt;
distance will correspondingly decrease or increase, so you will&lt;br /&gt;
get a hatching that is slightly spacing in or out. (The effect&lt;br /&gt;
is very slight, however, so as not to become a nuisance.)  Also,&lt;br /&gt;
note that since tracking follows the edge of the stroke, strokes&lt;br /&gt;
of varying width (such as those tracing background, see below)&lt;br /&gt;
will result in gradual bending of the hatching pattern as you&lt;br /&gt;
proceed.&lt;br /&gt;
&lt;br /&gt;
===Tracing background by stroke width===&lt;br /&gt;
&lt;br /&gt;
There is a new toggle button on the Calligraphy tool's controls&lt;br /&gt;
bar, '''Trace background'''. When on, the width of your pen&lt;br /&gt;
depends on the lightness of the background under the stroke in&lt;br /&gt;
each point, so that white translates into the minimum stoke&lt;br /&gt;
width (1) and black translates to the maximum (which is set by the&lt;br /&gt;
Width parameter). This can work alone or in combination with&lt;br /&gt;
pressure sensitivity, depending on whether the &amp;quot;Use pressure&amp;quot; button&lt;br /&gt;
is also toggled.&lt;br /&gt;
&lt;br /&gt;
This feature allows you to not only hatch over an imported&lt;br /&gt;
bitmap image or any drawing, but to do so automatically&lt;br /&gt;
reproducing the highlights and shades of the background with&lt;br /&gt;
your strokes becoming lighter and heavier as needed.&lt;br /&gt;
&lt;br /&gt;
===Misc features===&lt;br /&gt;
&lt;br /&gt;
* For consistency with other drawing tools, drawing with '''Shift''' in Calligraphy tool automatically '''unions''' the newly created stroke with whatever paths were selected (and selects the result).  Thus, you can do a series of overlapping Shift+strokes to create one unioned path object instead of separate objects as before. &lt;br /&gt;
&lt;br /&gt;
* To facilitate changing the Width parameter, the Home/End keys in Calligraphy tool switch you to the minimum (1) and maximum (100) width, correspondingly. (This is in addition to the Left/Right arrow keys that change Width by 1; remember also that you can press Alt+X, type any width, and press Enter.)&lt;br /&gt;
&lt;br /&gt;
==Selector==&lt;br /&gt;
&lt;br /&gt;
* A new selection mode is available: '''selecting by touch'''. In this mode, you draw a freehand path across the objects; when you release mouse button, all objects that are touched by this path get selected. This mode is very convenient  in situations where you need to select objects so intermingled that selecting them by the rectangular rubberband is too difficult and so numerous that click-selecting them one by one is too tedious. &lt;br /&gt;
&lt;br /&gt;
:To activate selecting by touch, whenever you are drawing a rubberband rectangle, just press '''Alt''' to switch it to the touch mode. The rectangle will disappear and a red ''touch path'' will be shown instead. When dragging from an empty space, you can press '''Alt''' first and then start to drag to get the touch mode (note that your selection must be empty, otherwise Alt+dragging will move the selected objects instead). To start a touch selection from a point over an object, or to add to existing selection by touching, press '''Shift+Alt''' and then start to drag.&lt;br /&gt;
&lt;br /&gt;
* Previously, the only way to switch selection from scale mode to rotate mode or back was to click on it, which was rather inconvenient when the selected object is in a group or under other objects. Now you can switch modes with keyboard as well by pressing '''Shift+S''' in Selector tool.&lt;br /&gt;
&lt;br /&gt;
* Draging the '''scale handles with Alt''' now scales selection by an integer factor, i.e. up to '''2''', '''3''', '''4''', etc. times the original size or down to '''1/2'''. '''1/3''', '''1/4''', etc. of the original size (in any of the two dimensions independently). This way you can, for example, mirror any object around one of the edges of its box. (This replaces the old and rarely used &amp;quot;slow&amp;quot; scaling mode with Alt.)&lt;br /&gt;
&lt;br /&gt;
* '''Horizontal/vertical flipping''': So far, flipping a selection made it flip within its bounding box, so that the latter remained fixed. In the move/scale mode of the selector tool, this behaviour remains unchanged. However, in rotate/shear mode flipping now happens about an (imaginary) vertical/horizontal axis through the rotation center. This is very handy, since the latter can be freely dragged around and snaps to all kinds of objects if desired.&lt;br /&gt;
&lt;br /&gt;
==Node tool==&lt;br /&gt;
[sculpt profiles - bbyak]&lt;br /&gt;
&lt;br /&gt;
* If any of the nodes in the currently selected path is mouseovered, then horizontal/vertical flipping ('H' and 'V' keys), stepwise rotation ('[' and ']' keys) and scaling ('&amp;lt;' and '&amp;gt;' keys) now all use this specific node as center/axis. If there is no mouseovered node, the center of the bounding box is used instead (as is currently the case unconditionally). Nodes that are covered by one of their handles are also detected as mouseovered.&lt;br /&gt;
&lt;br /&gt;
* [helper path display - johan]&lt;br /&gt;
&lt;br /&gt;
==Text tool==&lt;br /&gt;
* [text toolbar - deadchip?]&lt;br /&gt;
* If text contains a tref element, the text tool's behavior may not be as expected.  Please see [[#The tref Element]]&lt;br /&gt;
&lt;br /&gt;
=SVG=&lt;br /&gt;
&lt;br /&gt;
==The tref Element==&lt;br /&gt;
&lt;br /&gt;
Inkscape can now correctly open files with '''tref''' elements, and new tref elements can be created manually in the XML editor.&lt;br /&gt;
&lt;br /&gt;
The actual character data contained in a text element can either be embedded directly, or it can be the character content of an element referenced by a '''tref'''.&lt;br /&gt;
&lt;br /&gt;
While the textual content from the referenced element will be stripped of any markup before being used by the '''tref''', the '''tref''' element can itself have the same attributes as a '''tspan'''.  In fact, when rendered, it is as though the '''tref''' element is replaced by a '''tspan''' with the same attributes, and the referenced character data is embedded in that '''tspan'''.&lt;br /&gt;
&lt;br /&gt;
The property '''xlink:href''' is used to refer to another element whose character data will be used.  Any element can be referred to except an ancestor of the '''tref'''.  When any of the text contained in the referred element changes, the '''tref''' will immediately be updated to display the new data.&lt;br /&gt;
&lt;br /&gt;
Existing tref elements can be converted into tspan elements with '''Edit &amp;gt; Clone &amp;gt; Unlink Clone'''.  If more than one '''tref''' is contained within a selection, all '''trefs''' will be converted into '''tspans'''.  All attributes applied to the '''tref''' will be retained in the new '''tspan'''.&lt;br /&gt;
&lt;br /&gt;
A '''tref''' element can be mixed with any other elements allowed to be contained by a text element.&lt;br /&gt;
&lt;br /&gt;
The cloned character data rendered by the '''tref''' may not be edited, but any characters surrounding it can be changed.  Styles cannot be applied to a subset of the cloned characters, but if all are selected, a style can be applied to the '''tref'''.&lt;br /&gt;
&lt;br /&gt;
=Filters=&lt;br /&gt;
&lt;br /&gt;
==New filters supported==&lt;br /&gt;
&lt;br /&gt;
* The '''feBlend''' filter primitive gives us image blending modes, like in many image manipulation programs. These modes are screen, multiply, darken and lighten. There's a caveat, though: when blending an object against an semi-transparent background, the background will be accumulated twice, resulting in thicker objects under the bounding box of blended object. This is a limitation of current version of SVG format, not a bug in Inkscape.&lt;br /&gt;
&lt;br /&gt;
* The '''feOffset''' filter primitive offsets the image by an user-defined amount. For example, this is useful for drop shadows, as the shadow has to be in a slightly different position than the actual object.&lt;br /&gt;
&lt;br /&gt;
[[Filter Effects]]&lt;br /&gt;
&lt;br /&gt;
==Filters UI==&lt;br /&gt;
&lt;br /&gt;
* New dialog for creating and modifying filter effects ('''Object&amp;gt;Filter Effects...''')&lt;br /&gt;
* The list at the left of the dialog displays all filters currently in the document.&lt;br /&gt;
** New filters can be added with the '''Add''' button beneath the list&lt;br /&gt;
** Right-clicking a filter for the pop-up menu allows duplicating or removing a filter.&lt;br /&gt;
** Double-clicking a filter will apply it to all selected objects&lt;br /&gt;
** A black dot is placed next to whatever filter is applied to the selected objects. If more than one filter is in use by selected objects, an unfilled dot is used instead.&lt;br /&gt;
* The second list, at the left of the dialog, displays the '''filter primitives''' that are contained within the currently-selected filter.&lt;br /&gt;
** New primitives can be added by selecting the primitive type from the combo box beneath the list, and then pressing the '''Add''' button.&lt;br /&gt;
** Right-clicking a primitive for the pop-up menu allows duplicating or removing a primitive.&lt;br /&gt;
** Primitives can be rearranged by clicking and dragging any filter in the list.&lt;br /&gt;
** When a filter is selected, the '''Settings''' group at the bottom of the dialog will change to display the attributes available for that primitive. Changing a setting results in an immediate update to the document.&lt;br /&gt;
** The &amp;quot;in&amp;quot; and &amp;quot;in2&amp;quot; attributes for filters that support them are not shown in the '''Settings''' group. These input connections are displayed graphically in the list, under the '''Connections''' column.&lt;br /&gt;
*** Inputs for a particular filter are displayed as triangles. Depending on the primitive type, there may be one or two inputs (or more for Merge primitives.) Connections can be created by clicking on a triangle and dragging.&lt;br /&gt;
*** There are six standard input types that can be used for any primitive input; Source Graphic, Source Alpha, Background Image, Background Alpha, Fill Paint, and Stroke Paint. These are displayed vertically on the far right of the list. Click and drag from an input triangle to one of the standard inputs to connect them.&lt;br /&gt;
*** Primitives can also be connected to other primitives by clicking an input triangle and dragging upwards to another primitive. A primitive can only be connected to one higher up the list.&lt;br /&gt;
*** Single-clicking on an input triangle will unset it, returning it to the default. If it is on a Merge primitive, the input will be deleted.&lt;br /&gt;
*** Merge inputs have an empty input at the end. Dragging a connection from this input will add a new input to the primitive.&lt;br /&gt;
&lt;br /&gt;
=Live path effects=&lt;br /&gt;
&lt;br /&gt;
'''Live path effects''' (not to be confused with extension effects or SVG filters) are a new way to non-destructively modify path and shape objects. LPEs only affect the path of an object and not its style. The original path is preserved and can be edited directly, and the LPEs applied to it will be updated. &lt;br /&gt;
&lt;br /&gt;
[Path Effects dialog, Ctrl+Shift+7]&lt;br /&gt;
&lt;br /&gt;
[Paste Path Effect command, Ctrl+7]&lt;br /&gt;
&lt;br /&gt;
Live path effects were developed as part of the GSoC 2007.&lt;br /&gt;
&lt;br /&gt;
==Path along path==&lt;br /&gt;
The &amp;lt;b&amp;gt;Path along Path&amp;lt;/b&amp;gt; effect can curve a path along another path. When this effect is applied to path A, another path B can then be passed as a parameter. The result is that path B is bent along path A. With the node edit tool, path A can be changed &amp;lt;b&amp;gt;on-canvas&amp;lt;/b&amp;gt; and the result is &amp;lt;b&amp;gt;updated live&amp;lt;/b&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Example file: live-path-effects-pathalongpath.svg&lt;br /&gt;
&lt;br /&gt;
==Curve Stitching==&lt;br /&gt;
The &amp;lt;b&amp;gt;Curve Stitching&amp;lt;/b&amp;gt; effect connects points from two paths with straight line segments. The result is also referred to as &amp;quot;String Art&amp;quot;. For some examples of what can be made with this method: http://members.shaw.ca/jillbritton/string_art/jbstringart.htm&lt;br /&gt;
&lt;br /&gt;
Example file: live-path-effects-curvestitch.svg&lt;br /&gt;
&lt;br /&gt;
==Gears==&lt;br /&gt;
The &amp;lt;b&amp;gt;Gears&amp;lt;/b&amp;gt; effect is a toy effect. It generates a chain of gears from the path that has the effect applied to it. The knots of the path define the centers of the gears. The first 3 knots are special; the first defines the start angle of the chain, the second defines the center of the first gear and the third knot specifies the radius of the first gear.&lt;br /&gt;
&lt;br /&gt;
Example file: live-path-effects-gears.svg&lt;br /&gt;
&lt;br /&gt;
==Development of new effects==&lt;br /&gt;
One of the goals of the Summer of Code project was to make it easy to create new effects. There is a framework that greatly simplifies effect implementation; very little code is needed to get the effect hooked into Inkscape. This leaves valuable time for the actual effect to be implemented. See the http://wiki.inkscape.org/wiki/index.php/MakingLivePathEffects wiki page for an explanation of how to get started with your own effect!&lt;br /&gt;
&lt;br /&gt;
[johan]&lt;br /&gt;
&lt;br /&gt;
=Extension effects=&lt;br /&gt;
&lt;br /&gt;
== Live preview ==&lt;br /&gt;
&lt;br /&gt;
* '''Live preview of effects''': Using the async behavior (see below), as soon as the parameters dialog for an effect is shown, the script is executed in the background and the screen updates as soon as it's finished.  This can result is seemingly faster execution if no parameters are changed.  If some parameters are adjusted, the script is restarted. This allows you to see immediately the effects of any  parameter change without pressing the OK button on the effect's dialog.&lt;br /&gt;
&lt;br /&gt;
* '''Spawn Glib API''': Scripting extension have been moved to the Glib spawn API to ensure that parameters and variables aren't interpreted by a shell.  This also means that scripting extensions are executed in a separate process asynchronously allowing the GTK main loop to continue to execute.&lt;br /&gt;
&lt;br /&gt;
* '''Progress dialog''': While an extension is working on a document, a small dialog is shown allowing the user to cancel the execution.&lt;br /&gt;
&lt;br /&gt;
== New and improved effects ==&lt;br /&gt;
&lt;br /&gt;
* The new '''Render &amp;gt; Barcode''' extension creates a [http://en.wikipedia.org/wiki/Barcode barcode]. Supported types include EAN13, EAN8, UPC-A, UPC-E, UPC-5, Code39, Code39Ext, Code93, Code128, and RM4SCC. &lt;br /&gt;
&lt;br /&gt;
* The new '''Render &amp;gt; Gear''' extension creates a [http://en.wikipedia.org/wiki/Gear mechanical gear] given the number of teeth, the circular pitch (in px units), and the pressure angle.&lt;br /&gt;
&lt;br /&gt;
* The new '''Render &amp;gt; [[Spirograph]]''' extension creates intricate mathematical curves akin to the classic [http://en.wikipedia.org/wiki/Spirograph mechanical Spirograph toy] (see [http://wiki.inkscape.org/wiki/images/Spirograph_Samples.svg samples]).&lt;br /&gt;
&lt;br /&gt;
* A group of new effects in the '''Text''' submenu performs various case conversions on selected text objects: converting to UPPERCASE, lowercase, Sentence case, Title Case, as well as flipping case (switching uppercase to lowercase and vice versa) and rANdoMiZInG cAse. If no texts are selected, the effect works on all texts in the document.&lt;br /&gt;
&lt;br /&gt;
* Another effect in the Text submenu, '''Replace text''', performs search-and-replace on the selected text objects or (if nothing is selected) on all texts in the document. Searching is case sensitive. You can use this effect to globally delete all occurrences of some text fragment by replacing it with empty string. Conversely, if you search for an empty string and replace it with some string, this string will be inserted after every character of your text; for example, you can space out a text by replacing in it an empty string with a single space. &lt;br /&gt;
&lt;br /&gt;
* A new effect, '''Replace color''' in the Color submenu, simply replaces one RRGGBB-specified color to another within selection or, if there's no selection, in the entire document. As with other effects in that submenu, the replacement affects fill, stroke, and gradient colors, but not colors of bitmaps. &lt;br /&gt;
&lt;br /&gt;
*The '''Whirl''' extension uses the center of view as the center of whirl, so you don't have to enter the center coordinates numerically.&lt;br /&gt;
&lt;br /&gt;
*The '''Render &amp;gt; Grid''' extension has got an extended range of grid spacings, from 0.1 to 1000 px.&lt;br /&gt;
&lt;br /&gt;
*The '''Render &amp;gt; Function Plotter''' extension can now plot using polar coordinates.&lt;br /&gt;
&lt;br /&gt;
*[color randomize]&lt;br /&gt;
&lt;br /&gt;
== ImageMagick effects ==&lt;br /&gt;
&lt;br /&gt;
New raster operations available through the effects drop-down menu, powered by the ImageMagick library. For any of these effects to work, you need to have an '''image object selected''' in the drawing. &lt;br /&gt;
&lt;br /&gt;
* '''Adaptive Threshold''' applies adaptive thresholding to the bitmap. Average color of rectangle provided by '''width''' and '''height''' used as threshold value. Use '''offset''' to apply a different threshold than the average.&lt;br /&gt;
&lt;br /&gt;
* '''Add Noise''' adds random noise of certain types to the bitmap.&lt;br /&gt;
&lt;br /&gt;
* '''Blur''' blurs the bitmap, using '''radius''' as the amount of blur. Higher radius means more blur. (Note that unlike the vector Gaussian blur of objects, this bitmap blur will not extend the edges of the image, so it may appear truncated at the edges.)&lt;br /&gt;
&lt;br /&gt;
* '''Channel''' extracts the specified channel from the bitmap.&lt;br /&gt;
&lt;br /&gt;
* '''Charcoal''' applies a charcoal drawing style to a bitmap. Radius controls the width (or detail) of charcoal strokes. Higher '''radius''' means lower detail. '''Sigma''': the higher it is, the less defined the charcoal is.&lt;br /&gt;
&lt;br /&gt;
* '''Colorize''' overlays the bitmap with a given color at a given intensity.&lt;br /&gt;
&lt;br /&gt;
* '''Contrast''' lightly enhances the contrast (difference between lights and darks) of a bitmap.&lt;br /&gt;
&lt;br /&gt;
* '''Cycle Colormap''' cycles the colormap of a bitmap.&lt;br /&gt;
&lt;br /&gt;
* '''Despeckle''' reduce the speckle noise in a bitmap.&lt;br /&gt;
&lt;br /&gt;
* '''Edge''' hilights edges in a bitmap.&lt;br /&gt;
&lt;br /&gt;
* '''Emboss''' embosses a bitmap, hilighting edges with 3D effect.&lt;br /&gt;
&lt;br /&gt;
* '''Enhance''' enhance a bitmap, minimizing noise.&lt;br /&gt;
&lt;br /&gt;
* '''Equalize''' equalizes a bitmap. Histogram equalization.&lt;br /&gt;
&lt;br /&gt;
* '''Flop''' mirrors a bitmap, reflecting each scanline in the horizontal direction.&lt;br /&gt;
&lt;br /&gt;
* '''Gaussian Blur''' blurs a bitmap, more strongly than regular blur.&lt;br /&gt;
&lt;br /&gt;
* '''Implode''' sucks everything towards the center of the bitmap.&lt;br /&gt;
&lt;br /&gt;
* '''Level''' scales values falling between the given '''Black Point''' to '''White Point''' range to the full color range.&lt;br /&gt;
&lt;br /&gt;
* '''Level Channel''' acts the same way as level but for only one channel.&lt;br /&gt;
&lt;br /&gt;
* '''Median Filter''' filters a a bitmap by replacing each pixel component with the median color in a circular neighborhood&lt;br /&gt;
&lt;br /&gt;
* '''Modulate''' adjusts the percent hue, saturation, and brightness of a bitmap.&lt;br /&gt;
&lt;br /&gt;
* '''Negate''' takes the inverse of a bitmap.&lt;br /&gt;
&lt;br /&gt;
* '''Normalize''' normalizes a bitmap, expanding color range to the full possible range of color.&lt;br /&gt;
&lt;br /&gt;
* '''Oil Paint''' stylizes a bitmap so that it appears to be painted with oils.&lt;br /&gt;
&lt;br /&gt;
* '''Opacity''' modifies the opacity channel of a bitmap.&lt;br /&gt;
&lt;br /&gt;
* '''Raise''' alters the lightness of the edges of a bitmap to create a raised appearance, much like a frame.&lt;br /&gt;
&lt;br /&gt;
* '''Reduce Noise''' reduces noise in a bitmap by using a noise peak elimination filter.&lt;br /&gt;
&lt;br /&gt;
* '''Shade''' shades a bitmap by simulating a distant light source&lt;br /&gt;
&lt;br /&gt;
* '''Sharpen''' sharpens a bitmap.&lt;br /&gt;
&lt;br /&gt;
* '''Solarize''' solarizes a bitmap, like overexposing photographic film.&lt;br /&gt;
&lt;br /&gt;
* '''Spread''' randomly spread pixels in a bitmap within the radius of '''amount'''.&lt;br /&gt;
&lt;br /&gt;
* '''Swirl''' swirls the bitmap around the center point.&lt;br /&gt;
&lt;br /&gt;
* '''Threshold''' thresholds a bitmap.&lt;br /&gt;
&lt;br /&gt;
* '''Unsharpmask''' sharpens a bitmap using an unsharp mask algorithm.&lt;br /&gt;
&lt;br /&gt;
* '''Wave''' alters a bitmap along the sine wave.&lt;br /&gt;
&lt;br /&gt;
These effects are part of the Google Summer of Code 2007, coded by Christopher Brown.&lt;br /&gt;
&lt;br /&gt;
== New Python XML library ==&lt;br /&gt;
&lt;br /&gt;
* All Python effects are switched from the old and unmaintained PyXML library to the new powerful [http://codespeak.net/lxml/ lxml] library.&lt;br /&gt;
&lt;br /&gt;
=Snapping=&lt;br /&gt;
&lt;br /&gt;
* In addition to all other snapping modes and techniques, snapping has been implemented or improved in many tools and contexts:&lt;br /&gt;
&lt;br /&gt;
:* Drawing of new '''shapes''' (such as rectangles or ellipses) snaps to grid/guides/objects.&lt;br /&gt;
&lt;br /&gt;
:* '''Handles''' of existing objects and gradient handles snap.&lt;br /&gt;
&lt;br /&gt;
:* '''Skewing''' objects in Selector snaps.&lt;br /&gt;
&lt;br /&gt;
:* Snapping to objects works for '''images''' and '''clones''' (not only paths/shapes as before).&lt;br /&gt;
&lt;br /&gt;
:* Snapping of '''text baselines''' works again.&lt;br /&gt;
&lt;br /&gt;
:* When moved in Selector, an object optionally snaps with its '''rotation axis''' (which is by default in the geometric center of its bounding box, but can be arbitrarily moved and its position is remembered for every object). It is also possible to snap to a rotation axis with another object.&lt;br /&gt;
&lt;br /&gt;
:* While dragging a '''guide''', it now snaps to object nodes&lt;br /&gt;
&lt;br /&gt;
:Other snapping fixes and improvements include:&lt;br /&gt;
&lt;br /&gt;
:* The snapping preferences dialog has been restyled to make it more intuitive&lt;br /&gt;
&lt;br /&gt;
:* Snapping distance is now set in screen pixels and is therefore independent of zoom. &lt;br /&gt;
&lt;br /&gt;
:* Snapping to bounding boxes has been added&lt;br /&gt;
&lt;br /&gt;
:* Snapping of objects has been made more clean, by only snapping bounding box corners to bounding boxes, and nodes to other nodes and paths.&lt;br /&gt;
&lt;br /&gt;
:* The bug where &amp;quot;node-to-node&amp;quot; snapping caused jerky movement of nodes is fixed.&lt;br /&gt;
&lt;br /&gt;
:* The aspect ratio is correctly preserved while scaling objects with snapping turned on.&lt;br /&gt;
&lt;br /&gt;
:* All four bounding box corners now snap instead of only the lower-left and upper-right as before.&lt;br /&gt;
&lt;br /&gt;
:* Snapping while uniformly scaling has been improved. &lt;br /&gt;
&lt;br /&gt;
* The confusing &amp;quot;Default transformations origin&amp;quot; option is removed. Now Inkscape always uses the opposite edge of the object's bounding box as the transformation origin (though the bounding box itself can now be different, see next item).&lt;br /&gt;
&lt;br /&gt;
* A new preference option has been added to specify the kind of '''bounding box''' to be used for transforming objects (see Inkscape Preferences, Tools, Selector). You can choose between the '''visual bounding box''' (which takes into account the stroke width, markers, and blur margins; this is the default behavior) or '''geometric bounding box''' (which encloses only the path itself, disregarding stroke width).&lt;br /&gt;
&lt;br /&gt;
=Grids=&lt;br /&gt;
&lt;br /&gt;
* a new tab in the document properties dialog, solely meant for grids; the former grid/guide tab is now solely for guides. I envision a list of guides there in the future, for easier deletion of guides etc.&lt;br /&gt;
* more than one grid can be active at the same time, although i am having trouble in finding a usefull case for this&lt;br /&gt;
* multiple views on the same document share the same grids, but the grid can be turned off for each view separately. For example: one could have an overview view without grid enabled. Duplicate that window and zoom in on some detail; then grids can be shown only for that view, and snapping will only happen in those views for which grids are enabled. (sorry i am not able to explain more clearly)&lt;br /&gt;
* grid information is now stored in SVG as a child of sodipodi:namedview. Can someone please make an extension that converts an old grid definition to the new format?&lt;br /&gt;
* axonometric grid (not yet snapping)&lt;br /&gt;
* dots instead of lines&lt;br /&gt;
&lt;br /&gt;
From developer perspective:&lt;br /&gt;
&lt;br /&gt;
* implementation of new grids is much easier now; subclassing CanvasGrid and adding an entry in the is enough. Have a peek at how the rectangular grid is implemented (CanvasXYGrid).&lt;br /&gt;
* note that there is no longer &amp;quot;the grid&amp;quot;, there might be several grids active now!&lt;br /&gt;
&lt;br /&gt;
[Future plans (i will not be working on this soon, due to GSoC Live effects!):&lt;br /&gt;
** possibility of enabling not all but a selection of grids for a view. Eg. when there are 4 grids defined in the document, only enable grid2 for a certain view.&lt;br /&gt;
** new grids!&lt;br /&gt;
** better snapping mechanism to enable snapping to intersections of guides&amp;amp;grids and grids&amp;amp;grids.&lt;br /&gt;
&lt;br /&gt;
A side effect of removal of old gridcode: apparantly the origin of the desktop rules used to be set to the origin of the grid. I find this strange: specifying a grid origin of (2,2) would have me think the origin would be at ruler location (2,2) instead of (0,0) as it is in 0.45.1.&lt;br /&gt;
I have commented the grid-origin correction to the ruler range, because now there is not a single grid anymore to correct it for. Isn't there a control somewhere to define the documents origin? Now the ruler origin is set to (0,0) -- johan]&lt;br /&gt;
&lt;br /&gt;
=Bitmap export=&lt;br /&gt;
&lt;br /&gt;
* '''Batch export''': The Bitmap Export dialog (Ctrl+Shift+E) got a new checkbox, ''Batch export all selected objects''. This checkbox is available when two or more objects are selected. If it is checked, instead of exporting selection as a whole, Inkscape exports each selected object separately into its own PNG file. This uses each object's export hints (i.e. export filename and DPI) if they are remembered from a previous export; otherwise, the filename is created from the object ID and the DPI is 90 pixels per inch. '''Caution:''' Unlike regular export, batch export overwrites all existing PNG files without warning.&lt;br /&gt;
&lt;br /&gt;
:This makes it possible to implement all kinds of '''image slicing''' and automated export scenarios. For example, if you are working on a web site design, you can create a separate &amp;quot;export&amp;quot; layer. In that layer, &amp;quot;slice&amp;quot; your web page image into separate areas by creating invisible rectangles with no fill and no stroke. Select each rectangle (by Tab/Shift+Tab, or by switching to Outline mode where even an invisible rectangle can be selected by clicking on its outline) and export it into the corresponding filename (which gets saved as that object's export hint). After that, if you do any changes to your graphics, it's very easy to reexport all the slices: just switch to the &amp;quot;export&amp;quot; layer, select all in that layer (Ctrl+A), and export with the ''Batch export selected objects'' checkbox on.&lt;br /&gt;
&lt;br /&gt;
* '''Hide all except selected''': A new checkbox allows you to hide in the exported image everything except selected object(s).&lt;br /&gt;
&lt;br /&gt;
* The Export dialog automatically appends the '''.png''' extension to the export filename you specify. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Import/Export=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==PDF and AI import==&lt;br /&gt;
&lt;br /&gt;
In this version, Inkscape can natively (i.e. without any additional software) import PDF files and the newer PDF-based Adobe Illustrator files (starting from AI version 9.0). &lt;br /&gt;
&lt;br /&gt;
'''Implemented features''': The new import extension can import '''paths''', '''text''', '''clippaths''', '''masked or non-masked images''', and '''softmasks'''. It supports '''pattern fills''' (XStep and YStep attributes are ignored) as well as '''linear and radial gradients''' (only those using sampled or exponential functions). '''Gradient meshes''' are imported, but they get converted to groups of small tiles (flat-colored paths) that approximate the mesh; the user can adjust the precision of this approximation. &lt;br /&gt;
&lt;br /&gt;
'''PDF import settings''': After opening a PDF or AI document, the PDF Import Settings dialog shows up. Here you can select:&lt;br /&gt;
&lt;br /&gt;
* the '''page''' to be imported from a multipage PDF;&lt;br /&gt;
&lt;br /&gt;
* the overall '''clip region''' (which can be none or set to any of the PDF boxes, e.g. the crop box, the media box, the trim box, etc.);&lt;br /&gt;
&lt;br /&gt;
* the '''precision''' for the approximation of '''gradient meshes'''; note that setting this too high may result in a huge SVG file and slow performance when importing files with gradient meshes;&lt;br /&gt;
&lt;br /&gt;
* a checkbox controlling whether the '''images''' should be '''embedded''' into the resulting SVG document or saved on the current path;&lt;br /&gt;
&lt;br /&gt;
* a '''preview''' of the selected page (shown if poppler-cairo is present on the system or if the selected page has a thumbnail embedded into the PDF document).&lt;br /&gt;
&lt;br /&gt;
'''Text editing tips''': Any text imported from PDF or AI has each letter's precise place on the page ''fixed''. While this preserves the exact appearance (e.g. justification of text blocks) of the imported document, it makes editing such text difficult: deleting text fails to contract the text line and inserting text fails to expand it, i.e. typed letters overlay the existing letters. (However, you still can replace a letter with another letter of about the same width, although you may need to kern it into place with Alt+arrows.)&lt;br /&gt;
&lt;br /&gt;
To work around this, select the text object you want to edit and use '''Text &amp;gt; Remove manual kerns''' command. This will remove the exact positioning information, so if the text block was justified it will lose justification, but instead you will be able to edit it as usual. &lt;br /&gt;
&lt;br /&gt;
Note that there is a way to select even a single line in a text block. For this, open the XML editor, expand the &amp;lt;svg:text&amp;gt; tree branch corresponding to your text, and select any of the &amp;lt;svg:tspan&amp;gt; objects under it. Now you can remove manual kerns from this line only. After you finish editing the line, you can manually justify it back, for example by adding spaces, manual kerns (Alt+arrows), or by adjusting letterspacing (select the whole line and use Alt+&amp;gt; or Alt+&amp;lt;).&lt;br /&gt;
&lt;br /&gt;
The native PDF/AI importer is based on the poppler library and was implemented by Miklós Erdélyi as part of the Google Summer of Code 2007.&lt;br /&gt;
&lt;br /&gt;
==PDF export==&lt;br /&gt;
&lt;br /&gt;
* '''[if enabled! - mental]''' A new cairo-based PDF exporter has been added to Inkscape. Inkscape 0.46 can export shapes, strokes, transparency, gradients, patterns, text, and images correctly to cairo. While clipping paths and masks are known to be faulty or missing. cairo will write a PDF with vector graphics when possible and fall back to raster graphics when needed. What can be exported as vectors and how much of the image will be rasterized when the fallback kicks in depends on your version of cairo. cairo version 1.2 with the pdf backend compiled in is the minimum requirement for any cairo-based PDF exports.&lt;br /&gt;
&lt;br /&gt;
* [cairo ps export - adib]&lt;br /&gt;
&lt;br /&gt;
* [new wpg lib - ted gould]&lt;br /&gt;
&lt;br /&gt;
=Command line=&lt;br /&gt;
&lt;br /&gt;
Several new command line options are added that make Inkscape even more scriptable and automatable than before.&lt;br /&gt;
&lt;br /&gt;
* --verb-list will list all the Verb IDs and their names in Inkscape. This makes writing your own menus and hotkeys much easier as you can easily find out what the choices are.&lt;br /&gt;
&lt;br /&gt;
* --verb followed by a verb ID allows you to specify a verb to be called on every document opened by Inkscape initially from the command line.&lt;br /&gt;
&lt;br /&gt;
* --select followed by a node ID will allow you to add a node to the list of selected objects.&lt;br /&gt;
&lt;br /&gt;
These options can be used, for example, for performance testing.  You could do something like this:&lt;br /&gt;
&lt;br /&gt;
 $ time inkscape --verb=FileClose my_complex_file.svg&lt;br /&gt;
&lt;br /&gt;
to measure the time it takes to load and display the file.&lt;br /&gt;
&lt;br /&gt;
Of course, with the ability to select objects, it can be much more useful than&lt;br /&gt;
that.  You can call extension effects, or any other verb, then FileSave and&lt;br /&gt;
FileClose to automate all kinds of operations on your drawings.&lt;br /&gt;
&lt;br /&gt;
=UI=&lt;br /&gt;
&lt;br /&gt;
== [docked dialogs - gustav] ==&lt;br /&gt;
&lt;br /&gt;
== [toolbars - [[JonCruz]]] ==&lt;br /&gt;
&lt;br /&gt;
[calligraphy: menus, tooltips; star; ...]&lt;br /&gt;
&lt;br /&gt;
Switched to stock GTK+ toolbars.&lt;br /&gt;
&lt;br /&gt;
Extra magic secret sauce added.&lt;br /&gt;
&lt;br /&gt;
== [filedialogs - [[JonCruz]]] ==&lt;br /&gt;
&lt;br /&gt;
== Print dialog integration == &lt;br /&gt;
&lt;br /&gt;
* '''Print Dialog''': The GTK Unix Print Dialog has been hooked up!  From the dialog, you can select any of the Postscript-capable printers known to your system and configure them as with any other GTK application.&lt;br /&gt;
&lt;br /&gt;
== Saving window geometry globally ==&lt;br /&gt;
&lt;br /&gt;
Previously, window geometry (size and position of document windows) could only be saved into the document (so that each document stored its own window geometry). Now, a new option is added to save the geometry of the last used window to the preferences and apply this geometry to all new windows.  Thus, with the &amp;quot;Save geometry to preferences&amp;quot; option enabled, new windows will open with the shape of the most recent previous window.  This mode also remembers and restores the maximized/fullscreen state (unlike geometry saved to documents).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== New ways to scroll and zoom ==&lt;br /&gt;
&lt;br /&gt;
* You can now enable Space+mouse drag to pan canvas, as it does in Adobe Illustrator. This mode is enabled by the '''Left mouse button pans when Space is pressed''' checkbox in the Scrolling tab of the Inksape Preferences dialog. By default it is off and pressing the spacebar key switches you to Selector and back, as it always did in Inkscape.&lt;br /&gt;
&lt;br /&gt;
* By default, rotating the mouse wheel scrolls the canvas vertically and Ctrl+wheel zooms in and out. Now, if you turn on the '''Mouse wheel zooms by default''' checkbox in the Scrolling tab of the Inksape Preferences dialog, this behavior is reversed: mouse wheel zooms without Ctrl and scrolls with Ctrl. This new mode should be familiar for users of AutoCAD and CorelDraw.&lt;br /&gt;
&lt;br /&gt;
* In the Zoom tool, right mouse button always zooms out instead of calling the context menu (which is rather useless in this tool anyway).&lt;br /&gt;
&lt;br /&gt;
== GTK theme on OS X ==&lt;br /&gt;
&lt;br /&gt;
A GTK theme is now included in Inkscape.app bundle on OS X. If the user does not have any personal customization (e.g. in a .gtkrc-2.0 file) this theme is used. It reflects the OS X settings for &amp;quot;Appearance&amp;quot; and &amp;quot;Highlight Color&amp;quot; set in System Preferences &amp;gt; Appearance.&lt;br /&gt;
&lt;br /&gt;
=Even more improvements=&lt;br /&gt;
&lt;br /&gt;
* '''Gnome VFS Improvements''': Gnome VFS Non-Local files are now usable through all of our file choosers in Open, Save and Export. This compile-time option allowed people to open any Gnome-VFS-based URI from the command-line in the past, but not non-local resources (WebDAV, SFTP, etc) and this now allows for all the lovely possibilities Gnome-VFS provides.&lt;br /&gt;
&lt;br /&gt;
* In previous versions, Inkscape didn't allow you to '''group a single object.''' Yet in some cases, this operation is useful (for example, to blur the clipped edged of an object, or apply more than one clippath/mask to an object). Now this limitation is removed; just select any single object and group it to get a single-object group. &lt;br /&gt;
&lt;br /&gt;
* The somewhat cryptic &amp;quot;F:&amp;quot; and &amp;quot;S:&amp;quot; labels in the selected style indicator (at the left end of the statusbar) and in tool's style swatches are now spelled out as '''Fill:''' and '''Stroke:'''. We believe this makes the interface, even if less space-efficient, a bit more friendly for newbies.&lt;br /&gt;
&lt;br /&gt;
* The '''style swatches''' at the right end of object-creating tools' control bars now open the Preferences page of the corresponding tool when clicked. Also, now these swatches display a tooltip explaining its purpose (e.g. &amp;quot;Style of new rectangles&amp;quot;, &amp;quot;Style of new calligraphic strokes&amp;quot;, etc.)&lt;br /&gt;
&lt;br /&gt;
* After dragging a curve segment in Node tool, Inkscape no longer selects the two adjacent nodes if they were not selected before. &lt;br /&gt;
&lt;br /&gt;
* The '''Tile Clones''' dialog now uses the object's defined '''rotation axis''' (which can be freely moved by Selector tool and which is saved separately for each object) for all rotations (including both symmetry rotations and the Rotation tab rotations), scales, and flips. This renders unnecessary the previous workarounds where you had to group an object with another transparent object to affect how it's rotated by the clone tiler. &lt;br /&gt;
&lt;br /&gt;
* In '''Pencil''' and '''Calligraphic''' tools, pressing '''Esc''' or '''Ctrl+Z''' while drawing cancels the currently drawn path or stroke. When not drawing, these keys work as before (Esc deselects, Ctrl+Z undoes last action). (This is the same behavior as in the Pen tool where it was introduced in a previous version.)&lt;br /&gt;
&lt;br /&gt;
* A set of new verbs has been added to allow the user to easily '''unlock all locked objects''' or '''unhide all hidden objects'''. There are two variants one that operates on the current layer and its children and one that operates globally. While searching for hidden or locked object descendants of locked layers are ignored.&lt;br /&gt;
&lt;br /&gt;
* Several more '''rotation snapping increments''' are available in the Steps tab of the Inkscape Preferences dialog: 36, 22.5, 18, 12, and 0.5 degrees. &lt;br /&gt;
&lt;br /&gt;
* The list of folder shortcuts in the '''Open''' dialog includes the folder with Inkscape's SVG '''examples''' for easy access. Similarly, the '''Save''' dialog has a shortcut for the user's own '''templates''' dialog making it easy to save the current document as a template (if saved as &amp;lt;code&amp;gt;default.svg&amp;lt;/code&amp;gt;, it will be loaded every time you run Inkscape or create new document with Ctrl+N; with any other name, it will be added to the File &amp;gt; New submenu).&lt;br /&gt;
&lt;br /&gt;
* For time-intensive operations such as Paint Bucket and Simplify, the system's busy wait cursor is displayed to indicate to the user that Inkscape is actively working, and not frozen.&lt;br /&gt;
&lt;br /&gt;
* [statusbar updates: save, ...]&lt;br /&gt;
&lt;br /&gt;
* Several improvements in '''inkview''': busy cursor is shown while loading file, the button window stays on top and responds to keyboard shortcuts; several memleaks stopped and bugs fixed. The &amp;quot;slideshow mode&amp;quot; of the main inkscape application (-s or --slideshow command line option) is removed; use inkview instead.&lt;br /&gt;
&lt;br /&gt;
* In Document Metadata dialog, updated Creative Commons Licenses to version 3.0.&lt;br /&gt;
&lt;br /&gt;
* In addition to Shift+click, right clicking on a colour swatch now also sets the stroke colour.&lt;br /&gt;
&lt;br /&gt;
* File dialog windows (open/save) now have a &amp;quot;Enable preview&amp;quot; checkbox which allows you to disable the preview pane.&lt;br /&gt;
&lt;br /&gt;
=Notable bugfixes=&lt;br /&gt;
&lt;br /&gt;
These are bugfixes compared to 0.45.1; for a list of fixes in 0.45.1 compared to 0.45, see [[ReleaseNotes045|0.45.1 release notes]]&lt;br /&gt;
&lt;br /&gt;
* The '''sodipodi:docbase''' attribute is no longer added to the root &amp;lt;svg&amp;gt; element. This attribute used to keep the latest directory that the document was saved to, and thus represented a mild privacy violation (i.e., by sharing your Inkscape SVG files you allowed others to have a peek into your directory structure). Note, however, that Inkscape does not remove this attribute from old documents it opens; if you want you can remove it yourself. Inkscape just no longer creates this attribute in new documents.&lt;br /&gt;
&lt;br /&gt;
* A fix in the blur rendering code made '''exporting blurred objects to bitmap''' much faster and fixed the disappearing of blurred objects in exported bitmaps which happened for large objects in 0.45.  The same fix got rid of the rendering artefacts that sometimes appeared on blurred objects during scrolling. &lt;br /&gt;
&lt;br /&gt;
* Inkscape now properly quotes &amp;lt;code&amp;gt;font-family&amp;lt;/code&amp;gt; values and therefore can use '''fonts''' with various '''nonalphanumeric characters''' in their names, which previously failed. &lt;br /&gt;
&lt;br /&gt;
* If you have saved documents with a previous version of Inkscape which used '''right-to-left text''' (e.g. Arabic, Hebrew) then the paragraph alignment of non-flowed text has been reversed in this release. This is due to a bug in previous versions - the new behaviour is compliant with the SVG specification and compatible with other editors and viewers. To correct your images, simply reverse the paragraph alignment by selecting the text and clicking the appropriate button on the toolbar.&lt;br /&gt;
&lt;br /&gt;
* A large family of bugs was exterminated where an object's style could only refer other objects (such as gradients, patterns, and filters) that come after it in the document. Now any objects can be referenced from a style regardless of their place in the document. This fixed the '''disappearance of gradients/patterns/filters''' after you undo an effect, as well as lots of assorted crashes and misrenderings (mostly on non-Inkscape SVG files).&lt;br /&gt;
&lt;br /&gt;
* On Windows, '''file opening/saving dialogs''' can no longer sink under the main editor window (they now have the inkscape window set correctly as their parent window).&lt;br /&gt;
&lt;br /&gt;
* '''Stock markers''' now appear in the &amp;quot;recently used markers&amp;quot; section of the marker selector dropdowns in the Fill &amp;amp; Stroke dialog.  Before, any markers with stock id's (including markers modified by the user) were hidden, making it difficult to work with modified stock markers.&lt;br /&gt;
&lt;br /&gt;
* A regression in 0.45 caused crashes when '''undo or redo''' was attempted before the previous action could complete (e.g. pressing ctrl+z while you are still drawing a rectangle). This is now fixed.&lt;br /&gt;
&lt;br /&gt;
* Previously, if there was a single '''invalid property''' in a &amp;lt;code&amp;gt;style&amp;lt;/code&amp;gt; attribute, the entire attribute was discarded, i.e. the object lost all styling. Now Inkscape's behavior is more compliant to the CSS specification: it ignores only the invalid property but reads in all the rest.&lt;br /&gt;
&lt;br /&gt;
* Several bugs are fixed in '''searching for linked images'''. Now moving SVG documents with their associated images to a different place or a different machine should work more reliably. &lt;br /&gt;
&lt;br /&gt;
* Master opacity did not apply to stroke '''markers''' as it should; fixed.&lt;br /&gt;
&lt;br /&gt;
* '''Creative Commons Public Domain Declaration URI''' points to the right location now.&lt;br /&gt;
&lt;br /&gt;
* Text objects didn't display the '''pattern editing handles'''; fixed.&lt;br /&gt;
&lt;br /&gt;
= Previous releases =&lt;br /&gt;
&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>Jiho</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=CompilingMacOsX&amp;diff=16164</id>
		<title>CompilingMacOsX</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=CompilingMacOsX&amp;diff=16164"/>
		<updated>2007-09-01T11:41:58Z</updated>

		<summary type="html">&lt;p&gt;Jiho: /* Enabling python effects */  moved to GettingEffects Working where it belongs more&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Requirements ==&lt;br /&gt;
To compile Inkscape from source you will need:&lt;br /&gt;
*Mac OS X &amp;gt; 10.3&lt;br /&gt;
*XCode Tools (with gcc)&lt;br /&gt;
*Inkscape's source code. You can get the [http://www.inkscape.org/download.php official release source code], a [http://inkscape.modevia.com/svn-snap/?M=D SVN snapshot] or a copy of the [http://www.inkscape.org/svn.php?lang=en SVN repository].&lt;br /&gt;
*Inkscape's dependencies: glibmm, gtkmm, lmcs, boehm gc... You can use a package distribution system ([http://www.finkproject.org/ Fink] or [http://www.macports.org/ MacPorts], formerly known as [http://darwinports.opendarwin.org/ DarwinPorts]) or Inkscape all-in-one universal build script to install them. Inkscape requires a recent version of gtk, hence only MacPorts can be used at the moment. Once Fink updates gtk it should not be a problem to use it.&lt;br /&gt;
&lt;br /&gt;
== Compiling Inkscape with X11, using MacPorts ==&lt;br /&gt;
&lt;br /&gt;
=== Installing dependencies ===&lt;br /&gt;
You can use MacPorts to list Inkscape dependencies:&lt;br /&gt;
&amp;lt;pre&amp;gt;port deps inkscape&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some are mandatory and you can install them with the command:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port install boehmgc gtkmm intltool libxslt lcms popt boost&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Others provide additional functionality to Inkscape:&lt;br /&gt;
* &amp;lt;code&amp;gt;gnome-vfs&amp;lt;/code&amp;gt; : access to remote servers, in particular import from Open Clipart Library&lt;br /&gt;
* &amp;lt;code&amp;gt;aspell&amp;lt;/code&amp;gt; : check spelling of text elements [Note: I have never seen it working on OS X]&lt;br /&gt;
* &amp;lt;code&amp;gt;libgnomeprintui&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;loudmouth&amp;lt;/code&amp;gt; : jabber library used by InkBoard&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port install gnome-vfs aspell libgnomeprintui loudmouth&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== For the impatient ===&lt;br /&gt;
There is an automated build script for Mac OS X included with Inkscape source code, in the directory packaging/macosx. It has built-in help:&lt;br /&gt;
&amp;lt;pre&amp;gt; cd packaging/macosx/&lt;br /&gt;
./osx-build.sh help&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Basically to update from svn, generate the configure script, configure, build, install and package Inkscape into a double clickable app bundle you just need to issue the command&lt;br /&gt;
&amp;lt;pre&amp;gt;./osx-build.sh update autogen configure build install -s package&amp;lt;/pre&amp;gt;&lt;br /&gt;
or more simply&lt;br /&gt;
&amp;lt;pre&amp;gt;./osx-build.sh u a c b i -s p&amp;lt;/pre&amp;gt;&lt;br /&gt;
or even more simply&lt;br /&gt;
&amp;lt;pre&amp;gt;./osx-build.sh all -s&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Step by step instructions ===&lt;br /&gt;
If you want to know what you are doing or to understand how the build script works, please read the following paragraphs.&lt;br /&gt;
&lt;br /&gt;
==== Setting the build environment ====&lt;br /&gt;
MacPorts's hierarchy (/opt/local/) is not searched for libraries by default. Therefore, before the configuration starts, some environment variables need to be set. The environment variables are presented in bash syntax here. &lt;br /&gt;
&amp;lt;pre&amp;gt;export LIBPREFIX=&amp;quot;/opt/local&amp;quot;&lt;br /&gt;
#  automake seach path&lt;br /&gt;
export CPATH=&amp;quot;$LIBPREFIX/include&amp;quot;&lt;br /&gt;
#  configure search path&lt;br /&gt;
export CPPFLAGS=&amp;quot;-I$LIBPREFIX/include&amp;quot;&lt;br /&gt;
export LDFLAGS=&amp;quot;-L$LIBPREFIX/lib&amp;quot;&lt;br /&gt;
#  compiler arguments&lt;br /&gt;
export CFLAGS=&amp;quot;-O3 -Wall&amp;quot;&lt;br /&gt;
export CXXFLAGS=&amp;quot;$CFLAGS&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also use &amp;lt;code&amp;gt;[http://en.wikipedia.org/wiki/Ccache ccache]&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;sudo port install ccache&amp;lt;/code&amp;gt;) to speed up the compilation a bit. To do so, add compiler variables:&lt;br /&gt;
&amp;lt;pre&amp;gt;export CC=&amp;quot;ccache gcc&amp;quot;&lt;br /&gt;
export CXX=&amp;quot;ccache g++&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Configuring ====&lt;br /&gt;
If you compile Inkscape for the first time from an svn checkout you probably need to build the configure script. Navigate to Inkscape's source directory and run:&lt;br /&gt;
&amp;lt;pre&amp;gt;./autogen.sh&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then run configure with the options &amp;lt;code&amp;gt;--disable-static --enable-shared&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;--prefix&amp;lt;/code&amp;gt; which sets the directory where the build products are placed. It must be somewhere you have write access to.&lt;br /&gt;
&amp;lt;pre&amp;gt;./configure --disable-static --enable-shared --prefix=/path/to/build/products/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I you want to package Inkscape into a double-clickable &amp;lt;code&amp;gt;.app&amp;lt;/code&amp;gt; bundle in order to access it like a regular OS X application (you probably want to do it), you need to add the option &amp;lt;code&amp;gt;--enable-osxapp&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;./configure {...} --enable-osxapp&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you have loudmouth installed and you want to enable whiteboard functionality in Inkscape, add &amp;lt;code&amp;gt;--enable-inkboard&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Other configuration options can be set, check the list of options by issuing:&lt;br /&gt;
&amp;lt;pre&amp;gt;./configure --help&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Building and Installing ====&lt;br /&gt;
Just run:&lt;br /&gt;
&amp;lt;pre&amp;gt;make&lt;br /&gt;
make install&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Creating an .app bundle ====&lt;br /&gt;
Assuming that you have used the &amp;lt;code&amp;gt;--enable-osxapp&amp;lt;/code&amp;gt; option during &amp;lt;code&amp;gt;configure&amp;lt;/code&amp;gt;, navigate to Mac OS X packaging directory in Inkscape source code and use the automated script:&lt;br /&gt;
&amp;lt;pre&amp;gt;cd packaging/macosx&lt;br /&gt;
./osx-app.sh -s /path/to/install/prefix/bin/inkscape ../Info.plist macosx&amp;lt;/pre&amp;gt;&lt;br /&gt;
The script copies Inkscape binary and all its dependencies into the app bundle. The &amp;lt;code&amp;gt;-s&amp;lt;/code&amp;gt; options strips libraries from debugging information (the bundle is therefore smaller). Omit this option if you want to keep debugging info.&lt;br /&gt;
&lt;br /&gt;
==== Creating a disk image to distribute Inkscape ====&lt;br /&gt;
Inkscape.app created at the previous step is completely independent from the original location of the libraries and can therefore be distributed. It will only work on one platform though (PPC or Intel): the one you built it on.&lt;br /&gt;
The most widespread way of distributing applications on Mac OS X is via .dmg images. You can created a dmg image of Inkscape, with a nice background, with the script:&lt;br /&gt;
&amp;lt;pre&amp;gt;./osx-dmg.sh&amp;lt;/pre&amp;gt;&lt;br /&gt;
in the packaging directory for Mac OS X.&lt;br /&gt;
&lt;br /&gt;
== Compiling a Universal Binary of Inkscape with X11, using the all-in-one build script ==&lt;br /&gt;
&lt;br /&gt;
To build a Universal Binary of Inkscape you also need to build Universal versions of all its dependencies (i.e., gtk+, cairo, pango, etc).  You can do this using the build-gtk.sh script from the Inkscape repository (it's in packaging/macosx/native-gtk/).&lt;br /&gt;
&lt;br /&gt;
This process is relatively untested, as it is only being used by Michael Wybrow  for official Inkscape release builds.  If you have any troubles using this process then please report them to Michael (mjwybrow on sourceforge).&lt;br /&gt;
&lt;br /&gt;
The process is:&lt;br /&gt;
        export PREFIX=/your/install/prefix&lt;br /&gt;
        export UNIVERSAL_BUILD=Yes&lt;br /&gt;
        ./build-gtk bootstrap&lt;br /&gt;
        ./build-gtk build inkscape&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Compiling Inkscape with native GTK using MacPorts [experimental] ==&lt;br /&gt;
This process will be very similar to compiling a X11 version of Inkscape except for the building of dependencies: you will need to build native versions of GTK and Cairo.&lt;br /&gt;
At the moment (2007-09-31) this process does not produce a usable version of Inkscape but the more people try to use it, the quicker the bugs will be ironed out!&lt;br /&gt;
&lt;br /&gt;
=== Native version of GTK and Cairo ===&lt;br /&gt;
In theory you should be able to install a second MacPorts tree independent from your usual one (in /opt/local-native/ for example) but I did not manage to have the two cohabit so I would advise doing everything in your regular MacPorts tree. However, this should not be too much of a problem thanks to the power of port &amp;quot;variants&amp;quot; and port &amp;quot;deactivation&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
You need to deactivate (suppress from the tree without really uninstalling) current version of gtk, cairo, cairomm and pango:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port deactivate gtk2 cairo cairomm&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then install native variants:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port install cairo +quartz cairomm +quartz gtk2 +quartz&amp;lt;/pre&amp;gt;&lt;br /&gt;
There is currently an incompatibility with gtk and cairo native ports. It is reported in this ticket at MacPorts [http://trac.macports.org/projects/macports/ticket/11745]&lt;br /&gt;
You need to edit the Portfile for gtk2 according to the Portfile patch:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port edit gtk2&amp;lt;/pre&amp;gt;&lt;br /&gt;
and add the patch to the &amp;lt;code&amp;gt;files&amp;lt;/code&amp;gt; directory next to the Portfile. If you edit your file in a Cocoa editor just Command+click on the filename in the window title bar and this will bring a menu with the file hierarchy down to the Portfile. Go one step up and you're there. Otherwise the path is &amp;lt;pre&amp;gt;/opt/localquartz/var/macports/sources/rsync.macports.org/release/ports/x11/gtk2&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Pango without X requirements ===&lt;br /&gt;
Then you need to prevent Pango to try using Xft or X to render fonts. To do this kind of cleanly we'll create a new variant for Pango, called &amp;lt;code&amp;gt;no_x&amp;lt;/code&amp;gt;. So:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo edit pango&amp;lt;/pre&amp;gt;&lt;br /&gt;
and, after configure.arg add:&lt;br /&gt;
&amp;lt;pre&amp;gt;variant no_x description {Remove X and Xft rendering} {&lt;br /&gt;
	configure.args-append --with-x=no&lt;br /&gt;
	depends_lib-delete lib:libX11.6:XFree86 \&lt;br /&gt;
		port:Xft2&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
The deactivate pango and install the new variant:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port deactivate pango&lt;br /&gt;
sudo port install pango +no_x&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Install the rest ===&lt;br /&gt;
Eventually, follow the regular install procedure:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port install libxslt boost boehmgc gtkmm lcms intltool popt&amp;lt;/pre&amp;gt;&lt;br /&gt;
Get inkscape source code and go in the mac OS X specific packaging directory&lt;br /&gt;
&amp;lt;pre&amp;gt;cd packaging/macosx&amp;lt;/pre&amp;gt;&lt;br /&gt;
There edit osx-build.sh to remove the configure option &amp;lt;code&amp;gt;--enable-osxapp&amp;lt;/code&amp;gt; because it puts inkscape in a .app bundle where it is started together with X11, which would defeat the purpose of this native compilation. You can also specify an alternative install prefix if you want. Then&lt;br /&gt;
&amp;lt;pre&amp;gt;./osx-build.sh u a c b i&amp;lt;/pre&amp;gt;&lt;br /&gt;
and a native version of Inkscape is installed in the prefix you specified or in the &amp;lt;code&amp;gt;Build/bin&amp;lt;/code&amp;gt; directory of Inkscape's source code. You can test it by&lt;br /&gt;
&amp;lt;pre&amp;gt; cd ../../Build/bin/&lt;br /&gt;
./inkscape&amp;lt;/pre&amp;gt;&lt;br /&gt;
NB: if you compiled a GTK theme engine against your old GTK install (i.e. the one with X11) and try to use it with the new install, it will complain, so edit &amp;lt;code&amp;gt;~/.gtkrc-2.0&amp;lt;/code&amp;gt; to remove the offending theme.&lt;br /&gt;
&lt;br /&gt;
== Compiling Inkscapewith native GTK using the all in one build script [experimental] ==&lt;br /&gt;
&lt;br /&gt;
To build a native-GTK build of Inkscape, GTK and some of its dependencies must be built with special options. You can do this using the build-gtk.sh script from the Inkscape repository (it's in packaging/macosx/native-gtk/).  This is a modified version of the Imendio native build script, found with instructions on this page:&lt;br /&gt;
http://developer.imendio.com/projects/gtk-macosx/build-instructions&lt;br /&gt;
&lt;br /&gt;
This process is relatively untested. If you have any troubles using this process then please report them to Michael Wybrow (mjwybrow on sourceforge).&lt;br /&gt;
&lt;br /&gt;
The process is:&lt;br /&gt;
       export PREFIX=/your/install/prefix&lt;br /&gt;
       ./build-gtk bootstrap&lt;br /&gt;
       ./build-gtk build inkscape&lt;br /&gt;
&lt;br /&gt;
== Enabling python effects ==&lt;br /&gt;
moved to [[GettingEffectsWorking]]&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
=== Apple Documentation ===&lt;br /&gt;
* [http://developer.apple.com/documentation/MacOSX/Conceptual/BPRuntimeConfig/BPRuntimeConfig.html Introduction to Runtime Configuration] Covers the Info.plist files, Preferences, Environment variables and has a list of the most important Properties that the Property List should contain.&lt;br /&gt;
&lt;br /&gt;
=== Packaging ===&lt;br /&gt;
&lt;br /&gt;
* [http://www.sveinbjorn.org/platypus Sveinbjorn Thordarson's Website] The author of Platypus, the Script Exec wrapper that launches the Inkscape binary.&lt;br /&gt;
* [http://freespace.ausgamers.com/2005/02/creating-os-x-application-bundles-step.html  Creating OS X application bundles step by step] Covers the bundle concepts, copying libraries into the bundle, editing libraries with the install_name_tool, the Info.plist file and adding an icon.&lt;br /&gt;
* [http://java.sun.com/developer/technicalArticles/JavaLP/JavaToMac3/ Bringing your Java Application to Mac OS X] I would regard this a little dated, and the detail is (unsurprisingly) Java-related, but it is a gentle introduction to the role of the .app bundle and give a most clear account of how to create one.&lt;br /&gt;
* The [http://gimp-app.sourceforge.net/gimp.app.howto.txt Gimp .app Howto] This is a very bare document, and would be of little help to you if you were new to making packages. Note that it seems to refer to a more mature Clipboard technique and Online help than we currently have; and we ought to move to parity in these areas.&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer Documentation]]&lt;/div&gt;</summary>
		<author><name>Jiho</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Extension_requirements&amp;diff=16163</id>
		<title>Extension requirements</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Extension_requirements&amp;diff=16163"/>
		<updated>2007-09-01T11:41:03Z</updated>

		<summary type="html">&lt;p&gt;Jiho: Reformated the page to have headers and moved mac os x info to here&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Setting Up Effects in Inkscape ==&lt;br /&gt;
&amp;lt;i&amp;gt;For effects to work you need to be using inkscape .42 or later.&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;i&amp;gt;For info about what effects can do, screenshots, and how to make your own go to [http://www.ekips.org/comp/inkscape/ Aarons Site]&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;i&amp;gt;See also [[GettingExtensionsWorking]].&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Unhide the Effects menu ===&lt;br /&gt;
(Only necessary in some versions of Inkscape. Between .41 and .45)&lt;br /&gt;
&lt;br /&gt;
On the &amp;quot;Misc&amp;quot; tab of the &amp;quot;Inkscape Preferences&amp;quot; dialog check the box labeled &amp;quot;Enable script effects&amp;quot; (0.41+CVS onwards only)&lt;br /&gt;
&lt;br /&gt;
Close and reopen Inkscape&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Python Effects ==&lt;br /&gt;
=== on Debian GNU / Linux ===&lt;br /&gt;
    apt-get install python python-xml&lt;br /&gt;
&lt;br /&gt;
=== on Microsoft Windows ===&lt;br /&gt;
[[GettingEffectsWorking/Windows]] Tutorial on Getting Effects to work on Windows&lt;br /&gt;
&lt;br /&gt;
=== on Mac OS X ===&lt;br /&gt;
&lt;br /&gt;
Mac OS X ships with python but without some packages that Inkscape uses: [http://pyxml.sourceforge.net/ pyXML] (which will be suppressed in version 0.46), [http://numpy.scipy.org/ numpy] and [http://codespeak.net/lxml/ lxml]&lt;br /&gt;
&lt;br /&gt;
==== Binary packages ====&lt;br /&gt;
You can install a binary version compiled by us, downloadable with the development builds of Inkscape:&lt;br /&gt;
:http://inkscape.modevia.com/macosx-snap/?M=D&lt;br /&gt;
You need to copy the folders for pyXML (_xmlplus), numpy (numpy) and lxml (*lxml*.egg or lxml) to /System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/site-packages (there is a link in the dmg on which the folders can be dropped).&lt;br /&gt;
&lt;br /&gt;
==== Compiling from source ====&lt;br /&gt;
If you prefer, you can install them from source, it is really easy.&lt;br /&gt;
&lt;br /&gt;
'''pyXML'''&lt;br /&gt;
# download the source code from [http://sourceforge.net/project/showfiles.php?group_id=6473 sourceforge]&lt;br /&gt;
# unpack the &amp;lt;code&amp;gt;.tar.gz&amp;lt;/code&amp;gt; file&lt;br /&gt;
# cd into the newly created directory&lt;br /&gt;
# set the variable &amp;lt;code&amp;gt;MACOSX_DEPLOYMENT_TARGET&amp;lt;/code&amp;gt; to version of your operating system (10.3 for Panther, 10.4 for Tiger, 10.5 for Leopard. It probably won't work on previous systems). In bash syntax this means typing:&amp;lt;pre&amp;gt;export MACOSX_DEPLOYMENT_TARGET=10.?&amp;lt;/pre&amp;gt;&lt;br /&gt;
# move the python files and build C extensions by just typing &amp;lt;pre&amp;gt;python setup.py build&amp;lt;/pre&amp;gt;&lt;br /&gt;
# install (the install is system wide so you need administrator rights)&amp;lt;pre&amp;gt;sudo python setup.py install&amp;lt;/pre&amp;gt;and type your password.&lt;br /&gt;
&lt;br /&gt;
'''numpy and lxml'''&lt;br /&gt;
# download the source code from [http://sourceforge.net/project/showfiles.php?group_id=1369&amp;amp;package_id=175103 sourceforge numpy repository] or [http://codespeak.net/lxml/index.html#download lxml download section]&lt;br /&gt;
# unpack the &amp;lt;code&amp;gt;.tar.gz&amp;lt;/code&amp;gt; file&lt;br /&gt;
# cd into the newly created directory&lt;br /&gt;
# build C extensions and install (the install is system wide so you need administrator rights)&amp;lt;pre&amp;gt;sudo python setup.py install&amp;lt;/pre&amp;gt;and type your password.&lt;br /&gt;
&lt;br /&gt;
== Perl Effects ==&lt;br /&gt;
=== on Debian GNU / Linux ===&lt;br /&gt;
    apt-get install perl libxml-xql-perl&lt;br /&gt;
&lt;br /&gt;
=== on Gentoo GNU / Linux ===&lt;br /&gt;
    emerge -a XML-XQL&lt;br /&gt;
&lt;br /&gt;
=== on Microsoft Windows ===&lt;br /&gt;
    install [http://www.activestate.com/Products/Download/Download.plex?id=ActivePerl [[ActivePerl]]]&lt;br /&gt;
    install XML::XQL::DOM (perhaps like this?)&lt;br /&gt;
        1: install prereqs with ppm:&lt;br /&gt;
 	    install xml-dom&lt;br /&gt;
 	    install parse-yapp&lt;br /&gt;
 	    install datemanip&lt;br /&gt;
        2: download xml-xql from:&lt;br /&gt;
 	    http://www.cpan.org/authors/id/T/TJ/TJMATHER/XML-XQL-0.68.tar.gz&lt;br /&gt;
        3: open command prompt and locate perl&amp;quot;s lib directory with:&lt;br /&gt;
 	    perl -e &amp;quot;print qq(@INC)&amp;quot;    (mine was C:[[/Perl/site/lib]])&lt;br /&gt;
        4: unpack xml-xql archive&lt;br /&gt;
        5: copy contents of XML-XQL-*\lib\XML into C:\Perl\site\lib\XML&lt;br /&gt;
        6: copy XML-XQL-*\XQLParser\Parser.pm to C:\Perl\site\lib\XML\XQL&lt;br /&gt;
&lt;br /&gt;
== Plugin Effects ==&lt;br /&gt;
I have absolutely no idea. Please record your success here. :)&lt;br /&gt;
&lt;br /&gt;
== What if it doesn't work? ==&lt;br /&gt;
Run Inkscape from the console&lt;br /&gt;
&lt;br /&gt;
Use the error messges printed to the console to diagnose the problem (very often missing dependencies)&lt;br /&gt;
&lt;br /&gt;
On Windows you will have to redirect output to a text file like this: &amp;quot;inkscape &amp;gt; output.txt&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Extensions]]&lt;/div&gt;</summary>
		<author><name>Jiho</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=CompilingMacOsX&amp;diff=16162</id>
		<title>CompilingMacOsX</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=CompilingMacOsX&amp;diff=16162"/>
		<updated>2007-09-01T11:31:32Z</updated>

		<summary type="html">&lt;p&gt;Jiho: /* Compiling Inkscape as a native application (no X11) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Requirements ==&lt;br /&gt;
To compile Inkscape from source you will need:&lt;br /&gt;
*Mac OS X &amp;gt; 10.3&lt;br /&gt;
*XCode Tools (with gcc)&lt;br /&gt;
*Inkscape's source code. You can get the [http://www.inkscape.org/download.php official release source code], a [http://inkscape.modevia.com/svn-snap/?M=D SVN snapshot] or a copy of the [http://www.inkscape.org/svn.php?lang=en SVN repository].&lt;br /&gt;
*Inkscape's dependencies: glibmm, gtkmm, lmcs, boehm gc... You can use a package distribution system ([http://www.finkproject.org/ Fink] or [http://www.macports.org/ MacPorts], formerly known as [http://darwinports.opendarwin.org/ DarwinPorts]) or Inkscape all-in-one universal build script to install them. Inkscape requires a recent version of gtk, hence only MacPorts can be used at the moment. Once Fink updates gtk it should not be a problem to use it.&lt;br /&gt;
&lt;br /&gt;
== Compiling Inkscape with X11, using MacPorts ==&lt;br /&gt;
&lt;br /&gt;
=== Installing dependencies ===&lt;br /&gt;
You can use MacPorts to list Inkscape dependencies:&lt;br /&gt;
&amp;lt;pre&amp;gt;port deps inkscape&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some are mandatory and you can install them with the command:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port install boehmgc gtkmm intltool libxslt lcms popt boost&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Others provide additional functionality to Inkscape:&lt;br /&gt;
* &amp;lt;code&amp;gt;gnome-vfs&amp;lt;/code&amp;gt; : access to remote servers, in particular import from Open Clipart Library&lt;br /&gt;
* &amp;lt;code&amp;gt;aspell&amp;lt;/code&amp;gt; : check spelling of text elements [Note: I have never seen it working on OS X]&lt;br /&gt;
* &amp;lt;code&amp;gt;libgnomeprintui&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;loudmouth&amp;lt;/code&amp;gt; : jabber library used by InkBoard&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port install gnome-vfs aspell libgnomeprintui loudmouth&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== For the impatient ===&lt;br /&gt;
There is an automated build script for Mac OS X included with Inkscape source code, in the directory packaging/macosx. It has built-in help:&lt;br /&gt;
&amp;lt;pre&amp;gt; cd packaging/macosx/&lt;br /&gt;
./osx-build.sh help&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Basically to update from svn, generate the configure script, configure, build, install and package Inkscape into a double clickable app bundle you just need to issue the command&lt;br /&gt;
&amp;lt;pre&amp;gt;./osx-build.sh update autogen configure build install -s package&amp;lt;/pre&amp;gt;&lt;br /&gt;
or more simply&lt;br /&gt;
&amp;lt;pre&amp;gt;./osx-build.sh u a c b i -s p&amp;lt;/pre&amp;gt;&lt;br /&gt;
or even more simply&lt;br /&gt;
&amp;lt;pre&amp;gt;./osx-build.sh all -s&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Step by step instructions ===&lt;br /&gt;
If you want to know what you are doing or to understand how the build script works, please read the following paragraphs.&lt;br /&gt;
&lt;br /&gt;
==== Setting the build environment ====&lt;br /&gt;
MacPorts's hierarchy (/opt/local/) is not searched for libraries by default. Therefore, before the configuration starts, some environment variables need to be set. The environment variables are presented in bash syntax here. &lt;br /&gt;
&amp;lt;pre&amp;gt;export LIBPREFIX=&amp;quot;/opt/local&amp;quot;&lt;br /&gt;
#  automake seach path&lt;br /&gt;
export CPATH=&amp;quot;$LIBPREFIX/include&amp;quot;&lt;br /&gt;
#  configure search path&lt;br /&gt;
export CPPFLAGS=&amp;quot;-I$LIBPREFIX/include&amp;quot;&lt;br /&gt;
export LDFLAGS=&amp;quot;-L$LIBPREFIX/lib&amp;quot;&lt;br /&gt;
#  compiler arguments&lt;br /&gt;
export CFLAGS=&amp;quot;-O3 -Wall&amp;quot;&lt;br /&gt;
export CXXFLAGS=&amp;quot;$CFLAGS&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also use &amp;lt;code&amp;gt;[http://en.wikipedia.org/wiki/Ccache ccache]&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;sudo port install ccache&amp;lt;/code&amp;gt;) to speed up the compilation a bit. To do so, add compiler variables:&lt;br /&gt;
&amp;lt;pre&amp;gt;export CC=&amp;quot;ccache gcc&amp;quot;&lt;br /&gt;
export CXX=&amp;quot;ccache g++&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Configuring ====&lt;br /&gt;
If you compile Inkscape for the first time from an svn checkout you probably need to build the configure script. Navigate to Inkscape's source directory and run:&lt;br /&gt;
&amp;lt;pre&amp;gt;./autogen.sh&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then run configure with the options &amp;lt;code&amp;gt;--disable-static --enable-shared&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;--prefix&amp;lt;/code&amp;gt; which sets the directory where the build products are placed. It must be somewhere you have write access to.&lt;br /&gt;
&amp;lt;pre&amp;gt;./configure --disable-static --enable-shared --prefix=/path/to/build/products/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I you want to package Inkscape into a double-clickable &amp;lt;code&amp;gt;.app&amp;lt;/code&amp;gt; bundle in order to access it like a regular OS X application (you probably want to do it), you need to add the option &amp;lt;code&amp;gt;--enable-osxapp&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;./configure {...} --enable-osxapp&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you have loudmouth installed and you want to enable whiteboard functionality in Inkscape, add &amp;lt;code&amp;gt;--enable-inkboard&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Other configuration options can be set, check the list of options by issuing:&lt;br /&gt;
&amp;lt;pre&amp;gt;./configure --help&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Building and Installing ====&lt;br /&gt;
Just run:&lt;br /&gt;
&amp;lt;pre&amp;gt;make&lt;br /&gt;
make install&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Creating an .app bundle ====&lt;br /&gt;
Assuming that you have used the &amp;lt;code&amp;gt;--enable-osxapp&amp;lt;/code&amp;gt; option during &amp;lt;code&amp;gt;configure&amp;lt;/code&amp;gt;, navigate to Mac OS X packaging directory in Inkscape source code and use the automated script:&lt;br /&gt;
&amp;lt;pre&amp;gt;cd packaging/macosx&lt;br /&gt;
./osx-app.sh -s /path/to/install/prefix/bin/inkscape ../Info.plist macosx&amp;lt;/pre&amp;gt;&lt;br /&gt;
The script copies Inkscape binary and all its dependencies into the app bundle. The &amp;lt;code&amp;gt;-s&amp;lt;/code&amp;gt; options strips libraries from debugging information (the bundle is therefore smaller). Omit this option if you want to keep debugging info.&lt;br /&gt;
&lt;br /&gt;
==== Creating a disk image to distribute Inkscape ====&lt;br /&gt;
Inkscape.app created at the previous step is completely independent from the original location of the libraries and can therefore be distributed. It will only work on one platform though (PPC or Intel): the one you built it on.&lt;br /&gt;
The most widespread way of distributing applications on Mac OS X is via .dmg images. You can created a dmg image of Inkscape, with a nice background, with the script:&lt;br /&gt;
&amp;lt;pre&amp;gt;./osx-dmg.sh&amp;lt;/pre&amp;gt;&lt;br /&gt;
in the packaging directory for Mac OS X.&lt;br /&gt;
&lt;br /&gt;
== Compiling a Universal Binary of Inkscape with X11, using the all-in-one build script ==&lt;br /&gt;
&lt;br /&gt;
To build a Universal Binary of Inkscape you also need to build Universal versions of all its dependencies (i.e., gtk+, cairo, pango, etc).  You can do this using the build-gtk.sh script from the Inkscape repository (it's in packaging/macosx/native-gtk/).&lt;br /&gt;
&lt;br /&gt;
This process is relatively untested, as it is only being used by Michael Wybrow  for official Inkscape release builds.  If you have any troubles using this process then please report them to Michael (mjwybrow on sourceforge).&lt;br /&gt;
&lt;br /&gt;
The process is:&lt;br /&gt;
        export PREFIX=/your/install/prefix&lt;br /&gt;
        export UNIVERSAL_BUILD=Yes&lt;br /&gt;
        ./build-gtk bootstrap&lt;br /&gt;
        ./build-gtk build inkscape&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Compiling Inkscape with native GTK using MacPorts [experimental] ==&lt;br /&gt;
This process will be very similar to compiling a X11 version of Inkscape except for the building of dependencies: you will need to build native versions of GTK and Cairo.&lt;br /&gt;
At the moment (2007-09-31) this process does not produce a usable version of Inkscape but the more people try to use it, the quicker the bugs will be ironed out!&lt;br /&gt;
&lt;br /&gt;
=== Native version of GTK and Cairo ===&lt;br /&gt;
In theory you should be able to install a second MacPorts tree independent from your usual one (in /opt/local-native/ for example) but I did not manage to have the two cohabit so I would advise doing everything in your regular MacPorts tree. However, this should not be too much of a problem thanks to the power of port &amp;quot;variants&amp;quot; and port &amp;quot;deactivation&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
You need to deactivate (suppress from the tree without really uninstalling) current version of gtk, cairo, cairomm and pango:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port deactivate gtk2 cairo cairomm&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then install native variants:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port install cairo +quartz cairomm +quartz gtk2 +quartz&amp;lt;/pre&amp;gt;&lt;br /&gt;
There is currently an incompatibility with gtk and cairo native ports. It is reported in this ticket at MacPorts [http://trac.macports.org/projects/macports/ticket/11745]&lt;br /&gt;
You need to edit the Portfile for gtk2 according to the Portfile patch:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port edit gtk2&amp;lt;/pre&amp;gt;&lt;br /&gt;
and add the patch to the &amp;lt;code&amp;gt;files&amp;lt;/code&amp;gt; directory next to the Portfile. If you edit your file in a Cocoa editor just Command+click on the filename in the window title bar and this will bring a menu with the file hierarchy down to the Portfile. Go one step up and you're there. Otherwise the path is &amp;lt;pre&amp;gt;/opt/localquartz/var/macports/sources/rsync.macports.org/release/ports/x11/gtk2&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Pango without X requirements ===&lt;br /&gt;
Then you need to prevent Pango to try using Xft or X to render fonts. To do this kind of cleanly we'll create a new variant for Pango, called &amp;lt;code&amp;gt;no_x&amp;lt;/code&amp;gt;. So:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo edit pango&amp;lt;/pre&amp;gt;&lt;br /&gt;
and, after configure.arg add:&lt;br /&gt;
&amp;lt;pre&amp;gt;variant no_x description {Remove X and Xft rendering} {&lt;br /&gt;
	configure.args-append --with-x=no&lt;br /&gt;
	depends_lib-delete lib:libX11.6:XFree86 \&lt;br /&gt;
		port:Xft2&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
The deactivate pango and install the new variant:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port deactivate pango&lt;br /&gt;
sudo port install pango +no_x&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Install the rest ===&lt;br /&gt;
Eventually, follow the regular install procedure:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port install libxslt boost boehmgc gtkmm lcms intltool popt&amp;lt;/pre&amp;gt;&lt;br /&gt;
Get inkscape source code and go in the mac OS X specific packaging directory&lt;br /&gt;
&amp;lt;pre&amp;gt;cd packaging/macosx&amp;lt;/pre&amp;gt;&lt;br /&gt;
There edit osx-build.sh to remove the configure option &amp;lt;code&amp;gt;--enable-osxapp&amp;lt;/code&amp;gt; because it puts inkscape in a .app bundle where it is started together with X11, which would defeat the purpose of this native compilation. You can also specify an alternative install prefix if you want. Then&lt;br /&gt;
&amp;lt;pre&amp;gt;./osx-build.sh u a c b i&amp;lt;/pre&amp;gt;&lt;br /&gt;
and a native version of Inkscape is installed in the prefix you specified or in the &amp;lt;code&amp;gt;Build/bin&amp;lt;/code&amp;gt; directory of Inkscape's source code. You can test it by&lt;br /&gt;
&amp;lt;pre&amp;gt; cd ../../Build/bin/&lt;br /&gt;
./inkscape&amp;lt;/pre&amp;gt;&lt;br /&gt;
NB: if you compiled a GTK theme engine against your old GTK install (i.e. the one with X11) and try to use it with the new install, it will complain, so edit &amp;lt;code&amp;gt;~/.gtkrc-2.0&amp;lt;/code&amp;gt; to remove the offending theme.&lt;br /&gt;
&lt;br /&gt;
== Compiling Inkscapewith native GTK using the all in one build script [experimental] ==&lt;br /&gt;
&lt;br /&gt;
To build a native-GTK build of Inkscape, GTK and some of its dependencies must be built with special options. You can do this using the build-gtk.sh script from the Inkscape repository (it's in packaging/macosx/native-gtk/).  This is a modified version of the Imendio native build script, found with instructions on this page:&lt;br /&gt;
http://developer.imendio.com/projects/gtk-macosx/build-instructions&lt;br /&gt;
&lt;br /&gt;
This process is relatively untested. If you have any troubles using this process then please report them to Michael Wybrow (mjwybrow on sourceforge).&lt;br /&gt;
&lt;br /&gt;
The process is:&lt;br /&gt;
       export PREFIX=/your/install/prefix&lt;br /&gt;
       ./build-gtk bootstrap&lt;br /&gt;
       ./build-gtk build inkscape&lt;br /&gt;
&lt;br /&gt;
== Enabling python effects ==&lt;br /&gt;
Many &amp;quot;effects&amp;quot; in the Effect menu of Inkscape use python as a scripting language. Mac OS X ships with python but without some packages that Inkscape uses: [http://pyxml.sourceforge.net/ pyXML] (which will be suppressed as of version 0.46), [http://numpy.scipy.org/ numpy] and [http://codespeak.net/lxml/ lxml]&lt;br /&gt;
&lt;br /&gt;
=== Binary packages ===&lt;br /&gt;
You can install a binary version compiled by us, downloadable with the development builds of Inkscape:&lt;br /&gt;
:http://inkscape.modevia.com/macosx-snap/?M=D&lt;br /&gt;
or in an official stable package for 0.44.PPC or later (their name contains &amp;quot;+python&amp;quot;). &lt;br /&gt;
You need to copy the folders for pyXML (_xmlplus), numpy (numpy) and lxml (*lxml*.egg) to /System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/site-packages (there is a link in the dmg on which the folders can be dropped).&lt;br /&gt;
&lt;br /&gt;
=== Compiling from source ===&lt;br /&gt;
If you prefer, you can install them from source, it is really easy.&lt;br /&gt;
&lt;br /&gt;
==== pyXML ====&lt;br /&gt;
# download the source code from [http://sourceforge.net/project/showfiles.php?group_id=6473 sourceforge]&lt;br /&gt;
# unpack the &amp;lt;code&amp;gt;.tar.gz&amp;lt;/code&amp;gt; file&lt;br /&gt;
# cd into the newly created directory&lt;br /&gt;
# set the variable &amp;lt;code&amp;gt;MACOSX_DEPLOYMENT_TARGET&amp;lt;/code&amp;gt; to version of your operating system (10.3 for Panther, 10.4 for Tiger, 10.5 for Leopard. It probably won't work on previous systems). In bash syntax this means typing:&amp;lt;pre&amp;gt;export MACOSX_DEPLOYMENT_TARGET=10.?&amp;lt;/pre&amp;gt;&lt;br /&gt;
# move the python files and build C extensions by just typing &amp;lt;pre&amp;gt;python setup.py build&amp;lt;/pre&amp;gt;&lt;br /&gt;
# install (the install is system wide so you need administrator rights)&amp;lt;pre&amp;gt;sudo python setup.py install&amp;lt;/pre&amp;gt;and type your password.&lt;br /&gt;
&lt;br /&gt;
==== numpy and lxml====&lt;br /&gt;
# download the source code from [http://sourceforge.net/project/showfiles.php?group_id=1369&amp;amp;package_id=175103 sourceforge numpy repository] or [http://codespeak.net/lxml/index.html#download lxml download section]&lt;br /&gt;
# unpack the &amp;lt;code&amp;gt;.tar.gz&amp;lt;/code&amp;gt; file&lt;br /&gt;
# cd into the newly created directory&lt;br /&gt;
# build C extensions and install (the install is system wide so you need administrator rights)&amp;lt;pre&amp;gt;sudo python setup.py install&amp;lt;/pre&amp;gt;and type your password.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
=== Apple Documentation ===&lt;br /&gt;
* [http://developer.apple.com/documentation/MacOSX/Conceptual/BPRuntimeConfig/BPRuntimeConfig.html Introduction to Runtime Configuration] Covers the Info.plist files, Preferences, Environment variables and has a list of the most important Properties that the Property List should contain.&lt;br /&gt;
&lt;br /&gt;
=== Packaging ===&lt;br /&gt;
&lt;br /&gt;
* [http://www.sveinbjorn.org/platypus Sveinbjorn Thordarson's Website] The author of Platypus, the Script Exec wrapper that launches the Inkscape binary.&lt;br /&gt;
* [http://freespace.ausgamers.com/2005/02/creating-os-x-application-bundles-step.html  Creating OS X application bundles step by step] Covers the bundle concepts, copying libraries into the bundle, editing libraries with the install_name_tool, the Info.plist file and adding an icon.&lt;br /&gt;
* [http://java.sun.com/developer/technicalArticles/JavaLP/JavaToMac3/ Bringing your Java Application to Mac OS X] I would regard this a little dated, and the detail is (unsurprisingly) Java-related, but it is a gentle introduction to the role of the .app bundle and give a most clear account of how to create one.&lt;br /&gt;
* The [http://gimp-app.sourceforge.net/gimp.app.howto.txt Gimp .app Howto] This is a very bare document, and would be of little help to you if you were new to making packages. Note that it seems to refer to a more mature Clipboard technique and Online help than we currently have; and we ought to move to parity in these areas.&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer Documentation]]&lt;/div&gt;</summary>
		<author><name>Jiho</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=CompilingMacOsX&amp;diff=16161</id>
		<title>CompilingMacOsX</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=CompilingMacOsX&amp;diff=16161"/>
		<updated>2007-09-01T11:30:31Z</updated>

		<summary type="html">&lt;p&gt;Jiho: /* Native version of GTK and Cairo */  finished the instructions to build inkscape natively with MP&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Requirements ==&lt;br /&gt;
To compile Inkscape from source you will need:&lt;br /&gt;
*Mac OS X &amp;gt; 10.3&lt;br /&gt;
*XCode Tools (with gcc)&lt;br /&gt;
*Inkscape's source code. You can get the [http://www.inkscape.org/download.php official release source code], a [http://inkscape.modevia.com/svn-snap/?M=D SVN snapshot] or a copy of the [http://www.inkscape.org/svn.php?lang=en SVN repository].&lt;br /&gt;
*Inkscape's dependencies: glibmm, gtkmm, lmcs, boehm gc... You can use a package distribution system ([http://www.finkproject.org/ Fink] or [http://www.macports.org/ MacPorts], formerly known as [http://darwinports.opendarwin.org/ DarwinPorts]) or Inkscape all-in-one universal build script to install them. Inkscape requires a recent version of gtk, hence only MacPorts can be used at the moment. Once Fink updates gtk it should not be a problem to use it.&lt;br /&gt;
&lt;br /&gt;
== Compiling Inkscape with X11, using MacPorts ==&lt;br /&gt;
&lt;br /&gt;
=== Installing dependencies ===&lt;br /&gt;
You can use MacPorts to list Inkscape dependencies:&lt;br /&gt;
&amp;lt;pre&amp;gt;port deps inkscape&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some are mandatory and you can install them with the command:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port install boehmgc gtkmm intltool libxslt lcms popt boost&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Others provide additional functionality to Inkscape:&lt;br /&gt;
* &amp;lt;code&amp;gt;gnome-vfs&amp;lt;/code&amp;gt; : access to remote servers, in particular import from Open Clipart Library&lt;br /&gt;
* &amp;lt;code&amp;gt;aspell&amp;lt;/code&amp;gt; : check spelling of text elements [Note: I have never seen it working on OS X]&lt;br /&gt;
* &amp;lt;code&amp;gt;libgnomeprintui&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;loudmouth&amp;lt;/code&amp;gt; : jabber library used by InkBoard&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port install gnome-vfs aspell libgnomeprintui loudmouth&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== For the impatient ===&lt;br /&gt;
There is an automated build script for Mac OS X included with Inkscape source code, in the directory packaging/macosx. It has built-in help:&lt;br /&gt;
&amp;lt;pre&amp;gt; cd packaging/macosx/&lt;br /&gt;
./osx-build.sh help&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Basically to update from svn, generate the configure script, configure, build, install and package Inkscape into a double clickable app bundle you just need to issue the command&lt;br /&gt;
&amp;lt;pre&amp;gt;./osx-build.sh update autogen configure build install -s package&amp;lt;/pre&amp;gt;&lt;br /&gt;
or more simply&lt;br /&gt;
&amp;lt;pre&amp;gt;./osx-build.sh u a c b i -s p&amp;lt;/pre&amp;gt;&lt;br /&gt;
or even more simply&lt;br /&gt;
&amp;lt;pre&amp;gt;./osx-build.sh all -s&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Step by step instructions ===&lt;br /&gt;
If you want to know what you are doing or to understand how the build script works, please read the following paragraphs.&lt;br /&gt;
&lt;br /&gt;
==== Setting the build environment ====&lt;br /&gt;
MacPorts's hierarchy (/opt/local/) is not searched for libraries by default. Therefore, before the configuration starts, some environment variables need to be set. The environment variables are presented in bash syntax here. &lt;br /&gt;
&amp;lt;pre&amp;gt;export LIBPREFIX=&amp;quot;/opt/local&amp;quot;&lt;br /&gt;
#  automake seach path&lt;br /&gt;
export CPATH=&amp;quot;$LIBPREFIX/include&amp;quot;&lt;br /&gt;
#  configure search path&lt;br /&gt;
export CPPFLAGS=&amp;quot;-I$LIBPREFIX/include&amp;quot;&lt;br /&gt;
export LDFLAGS=&amp;quot;-L$LIBPREFIX/lib&amp;quot;&lt;br /&gt;
#  compiler arguments&lt;br /&gt;
export CFLAGS=&amp;quot;-O3 -Wall&amp;quot;&lt;br /&gt;
export CXXFLAGS=&amp;quot;$CFLAGS&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also use &amp;lt;code&amp;gt;[http://en.wikipedia.org/wiki/Ccache ccache]&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;sudo port install ccache&amp;lt;/code&amp;gt;) to speed up the compilation a bit. To do so, add compiler variables:&lt;br /&gt;
&amp;lt;pre&amp;gt;export CC=&amp;quot;ccache gcc&amp;quot;&lt;br /&gt;
export CXX=&amp;quot;ccache g++&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Configuring ====&lt;br /&gt;
If you compile Inkscape for the first time from an svn checkout you probably need to build the configure script. Navigate to Inkscape's source directory and run:&lt;br /&gt;
&amp;lt;pre&amp;gt;./autogen.sh&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then run configure with the options &amp;lt;code&amp;gt;--disable-static --enable-shared&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;--prefix&amp;lt;/code&amp;gt; which sets the directory where the build products are placed. It must be somewhere you have write access to.&lt;br /&gt;
&amp;lt;pre&amp;gt;./configure --disable-static --enable-shared --prefix=/path/to/build/products/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I you want to package Inkscape into a double-clickable &amp;lt;code&amp;gt;.app&amp;lt;/code&amp;gt; bundle in order to access it like a regular OS X application (you probably want to do it), you need to add the option &amp;lt;code&amp;gt;--enable-osxapp&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;./configure {...} --enable-osxapp&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you have loudmouth installed and you want to enable whiteboard functionality in Inkscape, add &amp;lt;code&amp;gt;--enable-inkboard&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Other configuration options can be set, check the list of options by issuing:&lt;br /&gt;
&amp;lt;pre&amp;gt;./configure --help&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Building and Installing ====&lt;br /&gt;
Just run:&lt;br /&gt;
&amp;lt;pre&amp;gt;make&lt;br /&gt;
make install&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Creating an .app bundle ====&lt;br /&gt;
Assuming that you have used the &amp;lt;code&amp;gt;--enable-osxapp&amp;lt;/code&amp;gt; option during &amp;lt;code&amp;gt;configure&amp;lt;/code&amp;gt;, navigate to Mac OS X packaging directory in Inkscape source code and use the automated script:&lt;br /&gt;
&amp;lt;pre&amp;gt;cd packaging/macosx&lt;br /&gt;
./osx-app.sh -s /path/to/install/prefix/bin/inkscape ../Info.plist macosx&amp;lt;/pre&amp;gt;&lt;br /&gt;
The script copies Inkscape binary and all its dependencies into the app bundle. The &amp;lt;code&amp;gt;-s&amp;lt;/code&amp;gt; options strips libraries from debugging information (the bundle is therefore smaller). Omit this option if you want to keep debugging info.&lt;br /&gt;
&lt;br /&gt;
==== Creating a disk image to distribute Inkscape ====&lt;br /&gt;
Inkscape.app created at the previous step is completely independent from the original location of the libraries and can therefore be distributed. It will only work on one platform though (PPC or Intel): the one you built it on.&lt;br /&gt;
The most widespread way of distributing applications on Mac OS X is via .dmg images. You can created a dmg image of Inkscape, with a nice background, with the script:&lt;br /&gt;
&amp;lt;pre&amp;gt;./osx-dmg.sh&amp;lt;/pre&amp;gt;&lt;br /&gt;
in the packaging directory for Mac OS X.&lt;br /&gt;
&lt;br /&gt;
== Compiling a Universal Binary of Inkscape with X11, using the all-in-one build script ==&lt;br /&gt;
&lt;br /&gt;
To build a Universal Binary of Inkscape you also need to build Universal versions of all its dependencies (i.e., gtk+, cairo, pango, etc).  You can do this using the build-gtk.sh script from the Inkscape repository (it's in packaging/macosx/native-gtk/).&lt;br /&gt;
&lt;br /&gt;
This process is relatively untested, as it is only being used by Michael Wybrow  for official Inkscape release builds.  If you have any troubles using this process then please report them to Michael (mjwybrow on sourceforge).&lt;br /&gt;
&lt;br /&gt;
The process is:&lt;br /&gt;
        export PREFIX=/your/install/prefix&lt;br /&gt;
        export UNIVERSAL_BUILD=Yes&lt;br /&gt;
        ./build-gtk bootstrap&lt;br /&gt;
        ./build-gtk build inkscape&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Compiling Inkscape with native GTK using MacPorts [experimental] ==&lt;br /&gt;
This process will be very similar to compiling a X11 version of Inkscape except for the building of dependencies: you will need to build native versions of GTK and Cairo.&lt;br /&gt;
At the moment (2007-09-31) this process does not produce a usable version of Inkscape but the more people try to use it, the quicker the bugs will be ironed out!&lt;br /&gt;
&lt;br /&gt;
=== Native version of GTK and Cairo ===&lt;br /&gt;
In theory you should be able to install a second MacPorts tree independent from your usual one (in /opt/local-native/ for example) but I did not manage to have the two cohabit so I would advise doing everything in your regular MacPorts tree. However, this should not be too much of a problem thanks to the power of port &amp;quot;variants&amp;quot; and port &amp;quot;deactivation&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
You need to deactivate (suppress from the tree without really uninstalling) current version of gtk, cairo, cairomm and pango:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port deactivate gtk2 cairo cairomm&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then install native variants:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port install cairo +quartz cairomm +quartz gtk2 +quartz&amp;lt;/pre&amp;gt;&lt;br /&gt;
There is currently an incompatibility with gtk and cairo native ports. It is reported in this ticket at MacPorts [http://trac.macports.org/projects/macports/ticket/11745]&lt;br /&gt;
You need to edit the Portfile for gtk2 according to the Portfile patch:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port edit gtk2&amp;lt;/pre&amp;gt;&lt;br /&gt;
and add the patch to the &amp;lt;code&amp;gt;files&amp;lt;/code&amp;gt; directory next to the Portfile. If you edit your file in a Cocoa editor just Command+click on the filename in the window title bar and this will bring a menu with the file hierarchy down to the Portfile. Go one step up and you're there. Otherwise the path is &amp;lt;pre&amp;gt;/opt/localquartz/var/macports/sources/rsync.macports.org/release/ports/x11/gtk2&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Pango without X requirements ===&lt;br /&gt;
Then you need to prevent Pango to try using Xft or X to render fonts. To do this kind of cleanly we'll create a new variant for Pango, called &amp;lt;code&amp;gt;no_x&amp;lt;/code&amp;gt;. So:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo edit pango&amp;lt;/pre&amp;gt;&lt;br /&gt;
and, after configure.arg add:&lt;br /&gt;
&amp;lt;pre&amp;gt;variant no_x description {Remove X and Xft rendering} {&lt;br /&gt;
	configure.args-append --with-x=no&lt;br /&gt;
	depends_lib-delete lib:libX11.6:XFree86 \&lt;br /&gt;
		port:Xft2&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
The deactivate pango and install the new variant:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port deactivate pango&lt;br /&gt;
sudo port install pango +no_x&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Install the rest ===&lt;br /&gt;
Eventually, follow the regular install procedure:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port install libxslt boost boehmgc gtkmm lcms intltool popt&amp;lt;/pre&amp;gt;&lt;br /&gt;
Get inkscape source code and go in the mac OS X specific packaging directory&lt;br /&gt;
&amp;lt;pre&amp;gt;cd packaging/macosx&amp;lt;/pre&amp;gt;&lt;br /&gt;
There edit osx-build.sh to remove the configure option &amp;lt;code&amp;gt;--enable-osxapp&amp;lt;/code&amp;gt; because it puts inkscape in a .app bundle where it is started together with X11, which would defeat the purpose of this native compilation. You can also specify an alternative install prefix if you want. Then&lt;br /&gt;
&amp;lt;pre&amp;gt;./osx-build.sh u a c b i&amp;lt;/pre&amp;gt;&lt;br /&gt;
and a native version of Inkscape is installed in the prefix you specified or in the &amp;lt;code&amp;gt;Build/bin&amp;lt;/code&amp;gt; directory of Inkscape's source code. You can test it by&lt;br /&gt;
&amp;lt;pre&amp;gt; cd ../../Build/bin/&lt;br /&gt;
./inkscape&amp;lt;/pre&amp;gt;&lt;br /&gt;
NB: if you compiled a GTK theme engine against your old GTK install (i.e. the one with X11) and try to use it with the new install, it will complain, so edit &amp;lt;code&amp;gt;~/.gtkrc-2.0&amp;lt;/code&amp;gt; to remove the offending theme.&lt;br /&gt;
&lt;br /&gt;
== Compiling Inkscape as a native application (no X11) ==&lt;br /&gt;
&lt;br /&gt;
To build a native-GTK build of Inkscape, GTK and some of its dependencies must be built with special options. You can do this using the build-gtk.sh script from the Inkscape repository (it's in packaging/macosx/native-gtk/).  This is a modified version of the Imendio native build script, found with instructions on this page:&lt;br /&gt;
http://developer.imendio.com/projects/gtk-macosx/build-instructions&lt;br /&gt;
&lt;br /&gt;
This process is relatively untested. If you have any troubles using this process then please report them to Michael Wybrow (mjwybrow on sourceforge).&lt;br /&gt;
&lt;br /&gt;
The process is:&lt;br /&gt;
       export PREFIX=/your/install/prefix&lt;br /&gt;
       ./build-gtk bootstrap&lt;br /&gt;
       ./build-gtk build inkscape&lt;br /&gt;
&lt;br /&gt;
== Enabling python effects ==&lt;br /&gt;
Many &amp;quot;effects&amp;quot; in the Effect menu of Inkscape use python as a scripting language. Mac OS X ships with python but without some packages that Inkscape uses: [http://pyxml.sourceforge.net/ pyXML] (which will be suppressed as of version 0.46), [http://numpy.scipy.org/ numpy] and [http://codespeak.net/lxml/ lxml]&lt;br /&gt;
&lt;br /&gt;
=== Binary packages ===&lt;br /&gt;
You can install a binary version compiled by us, downloadable with the development builds of Inkscape:&lt;br /&gt;
:http://inkscape.modevia.com/macosx-snap/?M=D&lt;br /&gt;
or in an official stable package for 0.44.PPC or later (their name contains &amp;quot;+python&amp;quot;). &lt;br /&gt;
You need to copy the folders for pyXML (_xmlplus), numpy (numpy) and lxml (*lxml*.egg) to /System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/site-packages (there is a link in the dmg on which the folders can be dropped).&lt;br /&gt;
&lt;br /&gt;
=== Compiling from source ===&lt;br /&gt;
If you prefer, you can install them from source, it is really easy.&lt;br /&gt;
&lt;br /&gt;
==== pyXML ====&lt;br /&gt;
# download the source code from [http://sourceforge.net/project/showfiles.php?group_id=6473 sourceforge]&lt;br /&gt;
# unpack the &amp;lt;code&amp;gt;.tar.gz&amp;lt;/code&amp;gt; file&lt;br /&gt;
# cd into the newly created directory&lt;br /&gt;
# set the variable &amp;lt;code&amp;gt;MACOSX_DEPLOYMENT_TARGET&amp;lt;/code&amp;gt; to version of your operating system (10.3 for Panther, 10.4 for Tiger, 10.5 for Leopard. It probably won't work on previous systems). In bash syntax this means typing:&amp;lt;pre&amp;gt;export MACOSX_DEPLOYMENT_TARGET=10.?&amp;lt;/pre&amp;gt;&lt;br /&gt;
# move the python files and build C extensions by just typing &amp;lt;pre&amp;gt;python setup.py build&amp;lt;/pre&amp;gt;&lt;br /&gt;
# install (the install is system wide so you need administrator rights)&amp;lt;pre&amp;gt;sudo python setup.py install&amp;lt;/pre&amp;gt;and type your password.&lt;br /&gt;
&lt;br /&gt;
==== numpy and lxml====&lt;br /&gt;
# download the source code from [http://sourceforge.net/project/showfiles.php?group_id=1369&amp;amp;package_id=175103 sourceforge numpy repository] or [http://codespeak.net/lxml/index.html#download lxml download section]&lt;br /&gt;
# unpack the &amp;lt;code&amp;gt;.tar.gz&amp;lt;/code&amp;gt; file&lt;br /&gt;
# cd into the newly created directory&lt;br /&gt;
# build C extensions and install (the install is system wide so you need administrator rights)&amp;lt;pre&amp;gt;sudo python setup.py install&amp;lt;/pre&amp;gt;and type your password.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
=== Apple Documentation ===&lt;br /&gt;
* [http://developer.apple.com/documentation/MacOSX/Conceptual/BPRuntimeConfig/BPRuntimeConfig.html Introduction to Runtime Configuration] Covers the Info.plist files, Preferences, Environment variables and has a list of the most important Properties that the Property List should contain.&lt;br /&gt;
&lt;br /&gt;
=== Packaging ===&lt;br /&gt;
&lt;br /&gt;
* [http://www.sveinbjorn.org/platypus Sveinbjorn Thordarson's Website] The author of Platypus, the Script Exec wrapper that launches the Inkscape binary.&lt;br /&gt;
* [http://freespace.ausgamers.com/2005/02/creating-os-x-application-bundles-step.html  Creating OS X application bundles step by step] Covers the bundle concepts, copying libraries into the bundle, editing libraries with the install_name_tool, the Info.plist file and adding an icon.&lt;br /&gt;
* [http://java.sun.com/developer/technicalArticles/JavaLP/JavaToMac3/ Bringing your Java Application to Mac OS X] I would regard this a little dated, and the detail is (unsurprisingly) Java-related, but it is a gentle introduction to the role of the .app bundle and give a most clear account of how to create one.&lt;br /&gt;
* The [http://gimp-app.sourceforge.net/gimp.app.howto.txt Gimp .app Howto] This is a very bare document, and would be of little help to you if you were new to making packages. Note that it seems to refer to a more mature Clipboard technique and Online help than we currently have; and we ought to move to parity in these areas.&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer Documentation]]&lt;/div&gt;</summary>
		<author><name>Jiho</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=CompilingMacOsX&amp;diff=16160</id>
		<title>CompilingMacOsX</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=CompilingMacOsX&amp;diff=16160"/>
		<updated>2007-09-01T10:35:18Z</updated>

		<summary type="html">&lt;p&gt;Jiho: /* Compiling Inkscape using MacPorts [with X11] */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Requirements ==&lt;br /&gt;
To compile Inkscape from source you will need:&lt;br /&gt;
*Mac OS X &amp;gt; 10.3&lt;br /&gt;
*XCode Tools (with gcc)&lt;br /&gt;
*Inkscape's source code. You can get the [http://www.inkscape.org/download.php official release source code], a [http://inkscape.modevia.com/svn-snap/?M=D SVN snapshot] or a copy of the [http://www.inkscape.org/svn.php?lang=en SVN repository].&lt;br /&gt;
*Inkscape's dependencies: glibmm, gtkmm, lmcs, boehm gc... You can use a package distribution system ([http://www.finkproject.org/ Fink] or [http://www.macports.org/ MacPorts], formerly known as [http://darwinports.opendarwin.org/ DarwinPorts]) or Inkscape all-in-one universal build script to install them. Inkscape requires a recent version of gtk, hence only MacPorts can be used at the moment. Once Fink updates gtk it should not be a problem to use it.&lt;br /&gt;
&lt;br /&gt;
== Compiling Inkscape with X11, using MacPorts ==&lt;br /&gt;
&lt;br /&gt;
=== Installing dependencies ===&lt;br /&gt;
You can use MacPorts to list Inkscape dependencies:&lt;br /&gt;
&amp;lt;pre&amp;gt;port deps inkscape&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some are mandatory and you can install them with the command:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port install boehmgc gtkmm intltool libxslt lcms popt boost&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Others provide additional functionality to Inkscape:&lt;br /&gt;
* &amp;lt;code&amp;gt;gnome-vfs&amp;lt;/code&amp;gt; : access to remote servers, in particular import from Open Clipart Library&lt;br /&gt;
* &amp;lt;code&amp;gt;aspell&amp;lt;/code&amp;gt; : check spelling of text elements [Note: I have never seen it working on OS X]&lt;br /&gt;
* &amp;lt;code&amp;gt;libgnomeprintui&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;loudmouth&amp;lt;/code&amp;gt; : jabber library used by InkBoard&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port install gnome-vfs aspell libgnomeprintui loudmouth&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== For the impatient ===&lt;br /&gt;
There is an automated build script for Mac OS X included with Inkscape source code, in the directory packaging/macosx. It has built-in help:&lt;br /&gt;
&amp;lt;pre&amp;gt; cd packaging/macosx/&lt;br /&gt;
./osx-build.sh help&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Basically to update from svn, generate the configure script, configure, build, install and package Inkscape into a double clickable app bundle you just need to issue the command&lt;br /&gt;
&amp;lt;pre&amp;gt;./osx-build.sh update autogen configure build install -s package&amp;lt;/pre&amp;gt;&lt;br /&gt;
or more simply&lt;br /&gt;
&amp;lt;pre&amp;gt;./osx-build.sh u a c b i -s p&amp;lt;/pre&amp;gt;&lt;br /&gt;
or even more simply&lt;br /&gt;
&amp;lt;pre&amp;gt;./osx-build.sh all -s&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Step by step instructions ===&lt;br /&gt;
If you want to know what you are doing or to understand how the build script works, please read the following paragraphs.&lt;br /&gt;
&lt;br /&gt;
==== Setting the build environment ====&lt;br /&gt;
MacPorts's hierarchy (/opt/local/) is not searched for libraries by default. Therefore, before the configuration starts, some environment variables need to be set. The environment variables are presented in bash syntax here. &lt;br /&gt;
&amp;lt;pre&amp;gt;export LIBPREFIX=&amp;quot;/opt/local&amp;quot;&lt;br /&gt;
#  automake seach path&lt;br /&gt;
export CPATH=&amp;quot;$LIBPREFIX/include&amp;quot;&lt;br /&gt;
#  configure search path&lt;br /&gt;
export CPPFLAGS=&amp;quot;-I$LIBPREFIX/include&amp;quot;&lt;br /&gt;
export LDFLAGS=&amp;quot;-L$LIBPREFIX/lib&amp;quot;&lt;br /&gt;
#  compiler arguments&lt;br /&gt;
export CFLAGS=&amp;quot;-O3 -Wall&amp;quot;&lt;br /&gt;
export CXXFLAGS=&amp;quot;$CFLAGS&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also use &amp;lt;code&amp;gt;[http://en.wikipedia.org/wiki/Ccache ccache]&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;sudo port install ccache&amp;lt;/code&amp;gt;) to speed up the compilation a bit. To do so, add compiler variables:&lt;br /&gt;
&amp;lt;pre&amp;gt;export CC=&amp;quot;ccache gcc&amp;quot;&lt;br /&gt;
export CXX=&amp;quot;ccache g++&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Configuring ====&lt;br /&gt;
If you compile Inkscape for the first time from an svn checkout you probably need to build the configure script. Navigate to Inkscape's source directory and run:&lt;br /&gt;
&amp;lt;pre&amp;gt;./autogen.sh&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then run configure with the options &amp;lt;code&amp;gt;--disable-static --enable-shared&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;--prefix&amp;lt;/code&amp;gt; which sets the directory where the build products are placed. It must be somewhere you have write access to.&lt;br /&gt;
&amp;lt;pre&amp;gt;./configure --disable-static --enable-shared --prefix=/path/to/build/products/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I you want to package Inkscape into a double-clickable &amp;lt;code&amp;gt;.app&amp;lt;/code&amp;gt; bundle in order to access it like a regular OS X application (you probably want to do it), you need to add the option &amp;lt;code&amp;gt;--enable-osxapp&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;./configure {...} --enable-osxapp&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you have loudmouth installed and you want to enable whiteboard functionality in Inkscape, add &amp;lt;code&amp;gt;--enable-inkboard&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Other configuration options can be set, check the list of options by issuing:&lt;br /&gt;
&amp;lt;pre&amp;gt;./configure --help&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Building and Installing ====&lt;br /&gt;
Just run:&lt;br /&gt;
&amp;lt;pre&amp;gt;make&lt;br /&gt;
make install&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Creating an .app bundle ====&lt;br /&gt;
Assuming that you have used the &amp;lt;code&amp;gt;--enable-osxapp&amp;lt;/code&amp;gt; option during &amp;lt;code&amp;gt;configure&amp;lt;/code&amp;gt;, navigate to Mac OS X packaging directory in Inkscape source code and use the automated script:&lt;br /&gt;
&amp;lt;pre&amp;gt;cd packaging/macosx&lt;br /&gt;
./osx-app.sh -s /path/to/install/prefix/bin/inkscape ../Info.plist macosx&amp;lt;/pre&amp;gt;&lt;br /&gt;
The script copies Inkscape binary and all its dependencies into the app bundle. The &amp;lt;code&amp;gt;-s&amp;lt;/code&amp;gt; options strips libraries from debugging information (the bundle is therefore smaller). Omit this option if you want to keep debugging info.&lt;br /&gt;
&lt;br /&gt;
==== Creating a disk image to distribute Inkscape ====&lt;br /&gt;
Inkscape.app created at the previous step is completely independent from the original location of the libraries and can therefore be distributed. It will only work on one platform though (PPC or Intel): the one you built it on.&lt;br /&gt;
The most widespread way of distributing applications on Mac OS X is via .dmg images. You can created a dmg image of Inkscape, with a nice background, with the script:&lt;br /&gt;
&amp;lt;pre&amp;gt;./osx-dmg.sh&amp;lt;/pre&amp;gt;&lt;br /&gt;
in the packaging directory for Mac OS X.&lt;br /&gt;
&lt;br /&gt;
== Compiling a Universal Binary of Inkscape with X11, using the all-in-one build script ==&lt;br /&gt;
&lt;br /&gt;
To build a Universal Binary of Inkscape you also need to build Universal versions of all its dependencies (i.e., gtk+, cairo, pango, etc).  You can do this using the build-gtk.sh script from the Inkscape repository (it's in packaging/macosx/native-gtk/).&lt;br /&gt;
&lt;br /&gt;
This process is relatively untested, as it is only being used by Michael Wybrow  for official Inkscape release builds.  If you have any troubles using this process then please report them to Michael (mjwybrow on sourceforge).&lt;br /&gt;
&lt;br /&gt;
The process is:&lt;br /&gt;
        export PREFIX=/your/install/prefix&lt;br /&gt;
        export UNIVERSAL_BUILD=Yes&lt;br /&gt;
        ./build-gtk bootstrap&lt;br /&gt;
        ./build-gtk build inkscape&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Compiling Inkscape with native GTK using MacPorts [experimental] ==&lt;br /&gt;
This process will be very similar to compiling a X11 version of Inkscape except for the building of dependencies: you will need to build native versions of GTK and Cairo.&lt;br /&gt;
At the moment (2007-09-31) this process does not produce a usable version of Inkscape but the more people try to use it, the quicker the bugs will be ironed out!&lt;br /&gt;
&lt;br /&gt;
=== Native version of GTK and Cairo ==&lt;br /&gt;
In theory you should be able to install a second MacPorts tree independent from your usual one (in /opt/local-native/ for example) but I did not manage to have the two cohabit so I would advise doing everything in your regular MacPorts tree. However, this should not be too much of a problem thanks to the power of &amp;quot;variants&amp;quot; and port deactivation.&lt;br /&gt;
You need to deactivate (suppress from the tree without really uninstalling) current version of gtk, cairo, cairomm and pango:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port deactivate gtk2 cairo cairomm&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then install native variants:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port install cairo +quartz cairomm +quartz gtk2 +quartz&amp;lt;/pre&amp;gt;&lt;br /&gt;
There is currently an incompatibility with gtk and cairo native ports. It is reported in this ticket&lt;br /&gt;
You need to edit the Portfile for gtk according to the Portfile patch:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port edit gtk2&amp;lt;/pre&amp;gt;&lt;br /&gt;
and add the patch to the &amp;lt;code&amp;gt;files&amp;lt;/code&amp;gt; directory next to the Portfile. If you edit your file in a Cocoa editor just Command+click on the filename in the window title bar and this will bring a menu with the file hierarchy down to the Portfile. Go one step up and you're there. Otherwise the path is &amp;lt;pre&amp;gt;/opt/localquartz/var/macports/sources/rsync.macports.org/release/ports/x11/gtk2&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to be continued...&lt;br /&gt;
&lt;br /&gt;
== Compiling Inkscape as a native application (no X11) ==&lt;br /&gt;
&lt;br /&gt;
To build a native-GTK build of Inkscape, GTK and some of its dependencies must be built with special options. You can do this using the build-gtk.sh script from the Inkscape repository (it's in packaging/macosx/native-gtk/).  This is a modified version of the Imendio native build script, found with instructions on this page:&lt;br /&gt;
http://developer.imendio.com/projects/gtk-macosx/build-instructions&lt;br /&gt;
&lt;br /&gt;
This process is relatively untested. If you have any troubles using this process then please report them to Michael Wybrow (mjwybrow on sourceforge).&lt;br /&gt;
&lt;br /&gt;
The process is:&lt;br /&gt;
       export PREFIX=/your/install/prefix&lt;br /&gt;
       ./build-gtk bootstrap&lt;br /&gt;
       ./build-gtk build inkscape&lt;br /&gt;
&lt;br /&gt;
== Enabling python effects ==&lt;br /&gt;
Many &amp;quot;effects&amp;quot; in the Effect menu of Inkscape use python as a scripting language. Mac OS X ships with python but without some packages that Inkscape uses: [http://pyxml.sourceforge.net/ pyXML] (which will be suppressed as of version 0.46), [http://numpy.scipy.org/ numpy] and [http://codespeak.net/lxml/ lxml]&lt;br /&gt;
&lt;br /&gt;
=== Binary packages ===&lt;br /&gt;
You can install a binary version compiled by us, downloadable with the development builds of Inkscape:&lt;br /&gt;
:http://inkscape.modevia.com/macosx-snap/?M=D&lt;br /&gt;
or in an official stable package for 0.44.PPC or later (their name contains &amp;quot;+python&amp;quot;). &lt;br /&gt;
You need to copy the folders for pyXML (_xmlplus), numpy (numpy) and lxml (*lxml*.egg) to /System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/site-packages (there is a link in the dmg on which the folders can be dropped).&lt;br /&gt;
&lt;br /&gt;
=== Compiling from source ===&lt;br /&gt;
If you prefer, you can install them from source, it is really easy.&lt;br /&gt;
&lt;br /&gt;
==== pyXML ====&lt;br /&gt;
# download the source code from [http://sourceforge.net/project/showfiles.php?group_id=6473 sourceforge]&lt;br /&gt;
# unpack the &amp;lt;code&amp;gt;.tar.gz&amp;lt;/code&amp;gt; file&lt;br /&gt;
# cd into the newly created directory&lt;br /&gt;
# set the variable &amp;lt;code&amp;gt;MACOSX_DEPLOYMENT_TARGET&amp;lt;/code&amp;gt; to version of your operating system (10.3 for Panther, 10.4 for Tiger, 10.5 for Leopard. It probably won't work on previous systems). In bash syntax this means typing:&amp;lt;pre&amp;gt;export MACOSX_DEPLOYMENT_TARGET=10.?&amp;lt;/pre&amp;gt;&lt;br /&gt;
# move the python files and build C extensions by just typing &amp;lt;pre&amp;gt;python setup.py build&amp;lt;/pre&amp;gt;&lt;br /&gt;
# install (the install is system wide so you need administrator rights)&amp;lt;pre&amp;gt;sudo python setup.py install&amp;lt;/pre&amp;gt;and type your password.&lt;br /&gt;
&lt;br /&gt;
==== numpy and lxml====&lt;br /&gt;
# download the source code from [http://sourceforge.net/project/showfiles.php?group_id=1369&amp;amp;package_id=175103 sourceforge numpy repository] or [http://codespeak.net/lxml/index.html#download lxml download section]&lt;br /&gt;
# unpack the &amp;lt;code&amp;gt;.tar.gz&amp;lt;/code&amp;gt; file&lt;br /&gt;
# cd into the newly created directory&lt;br /&gt;
# build C extensions and install (the install is system wide so you need administrator rights)&amp;lt;pre&amp;gt;sudo python setup.py install&amp;lt;/pre&amp;gt;and type your password.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
=== Apple Documentation ===&lt;br /&gt;
* [http://developer.apple.com/documentation/MacOSX/Conceptual/BPRuntimeConfig/BPRuntimeConfig.html Introduction to Runtime Configuration] Covers the Info.plist files, Preferences, Environment variables and has a list of the most important Properties that the Property List should contain.&lt;br /&gt;
&lt;br /&gt;
=== Packaging ===&lt;br /&gt;
&lt;br /&gt;
* [http://www.sveinbjorn.org/platypus Sveinbjorn Thordarson's Website] The author of Platypus, the Script Exec wrapper that launches the Inkscape binary.&lt;br /&gt;
* [http://freespace.ausgamers.com/2005/02/creating-os-x-application-bundles-step.html  Creating OS X application bundles step by step] Covers the bundle concepts, copying libraries into the bundle, editing libraries with the install_name_tool, the Info.plist file and adding an icon.&lt;br /&gt;
* [http://java.sun.com/developer/technicalArticles/JavaLP/JavaToMac3/ Bringing your Java Application to Mac OS X] I would regard this a little dated, and the detail is (unsurprisingly) Java-related, but it is a gentle introduction to the role of the .app bundle and give a most clear account of how to create one.&lt;br /&gt;
* The [http://gimp-app.sourceforge.net/gimp.app.howto.txt Gimp .app Howto] This is a very bare document, and would be of little help to you if you were new to making packages. Note that it seems to refer to a more mature Clipboard technique and Online help than we currently have; and we ought to move to parity in these areas.&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer Documentation]]&lt;/div&gt;</summary>
		<author><name>Jiho</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=CompilingMacOsX&amp;diff=16159</id>
		<title>CompilingMacOsX</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=CompilingMacOsX&amp;diff=16159"/>
		<updated>2007-09-01T10:34:41Z</updated>

		<summary type="html">&lt;p&gt;Jiho: /* Requirements */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Requirements ==&lt;br /&gt;
To compile Inkscape from source you will need:&lt;br /&gt;
*Mac OS X &amp;gt; 10.3&lt;br /&gt;
*XCode Tools (with gcc)&lt;br /&gt;
*Inkscape's source code. You can get the [http://www.inkscape.org/download.php official release source code], a [http://inkscape.modevia.com/svn-snap/?M=D SVN snapshot] or a copy of the [http://www.inkscape.org/svn.php?lang=en SVN repository].&lt;br /&gt;
*Inkscape's dependencies: glibmm, gtkmm, lmcs, boehm gc... You can use a package distribution system ([http://www.finkproject.org/ Fink] or [http://www.macports.org/ MacPorts], formerly known as [http://darwinports.opendarwin.org/ DarwinPorts]) or Inkscape all-in-one universal build script to install them. Inkscape requires a recent version of gtk, hence only MacPorts can be used at the moment. Once Fink updates gtk it should not be a problem to use it.&lt;br /&gt;
&lt;br /&gt;
== Compiling Inkscape using MacPorts [with X11]==&lt;br /&gt;
&lt;br /&gt;
=== Installing dependencies ===&lt;br /&gt;
You can use MacPorts to list Inkscape dependencies:&lt;br /&gt;
&amp;lt;pre&amp;gt;port deps inkscape&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some are mandatory and you can install them with the command:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port install boehmgc gtkmm intltool libxslt lcms popt boost&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Others provide additional functionality to Inkscape:&lt;br /&gt;
* &amp;lt;code&amp;gt;gnome-vfs&amp;lt;/code&amp;gt; : access to remote servers, in particular import from Open Clipart Library&lt;br /&gt;
* &amp;lt;code&amp;gt;aspell&amp;lt;/code&amp;gt; : check spelling of text elements [Note: I have never seen it working on OS X]&lt;br /&gt;
* &amp;lt;code&amp;gt;libgnomeprintui&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;loudmouth&amp;lt;/code&amp;gt; : jabber library used by InkBoard&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port install gnome-vfs aspell libgnomeprintui loudmouth&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== For the impatient ===&lt;br /&gt;
There is an automated build script for Mac OS X included with Inkscape source code, in the directory packaging/macosx. It has built-in help:&lt;br /&gt;
&amp;lt;pre&amp;gt; cd packaging/macosx/&lt;br /&gt;
./osx-build.sh help&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Basically to update from svn, generate the configure script, configure, build, install and package Inkscape into a double clickable app bundle you just need to issue the command&lt;br /&gt;
&amp;lt;pre&amp;gt;./osx-build.sh update autogen configure build install -s package&amp;lt;/pre&amp;gt;&lt;br /&gt;
or more simply&lt;br /&gt;
&amp;lt;pre&amp;gt;./osx-build.sh u a c b i -s p&amp;lt;/pre&amp;gt;&lt;br /&gt;
or even more simply&lt;br /&gt;
&amp;lt;pre&amp;gt;./osx-build.sh all -s&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Step by step instructions ===&lt;br /&gt;
If you want to know what you are doing or to understand how the build script works, please read the following paragraphs.&lt;br /&gt;
&lt;br /&gt;
==== Setting the build environment ====&lt;br /&gt;
MacPorts's hierarchy (/opt/local/) is not searched for libraries by default. Therefore, before the configuration starts, some environment variables need to be set. The environment variables are presented in bash syntax here. &lt;br /&gt;
&amp;lt;pre&amp;gt;export LIBPREFIX=&amp;quot;/opt/local&amp;quot;&lt;br /&gt;
#  automake seach path&lt;br /&gt;
export CPATH=&amp;quot;$LIBPREFIX/include&amp;quot;&lt;br /&gt;
#  configure search path&lt;br /&gt;
export CPPFLAGS=&amp;quot;-I$LIBPREFIX/include&amp;quot;&lt;br /&gt;
export LDFLAGS=&amp;quot;-L$LIBPREFIX/lib&amp;quot;&lt;br /&gt;
#  compiler arguments&lt;br /&gt;
export CFLAGS=&amp;quot;-O3 -Wall&amp;quot;&lt;br /&gt;
export CXXFLAGS=&amp;quot;$CFLAGS&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also use &amp;lt;code&amp;gt;[http://en.wikipedia.org/wiki/Ccache ccache]&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;sudo port install ccache&amp;lt;/code&amp;gt;) to speed up the compilation a bit. To do so, add compiler variables:&lt;br /&gt;
&amp;lt;pre&amp;gt;export CC=&amp;quot;ccache gcc&amp;quot;&lt;br /&gt;
export CXX=&amp;quot;ccache g++&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Configuring ====&lt;br /&gt;
If you compile Inkscape for the first time from an svn checkout you probably need to build the configure script. Navigate to Inkscape's source directory and run:&lt;br /&gt;
&amp;lt;pre&amp;gt;./autogen.sh&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then run configure with the options &amp;lt;code&amp;gt;--disable-static --enable-shared&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;--prefix&amp;lt;/code&amp;gt; which sets the directory where the build products are placed. It must be somewhere you have write access to.&lt;br /&gt;
&amp;lt;pre&amp;gt;./configure --disable-static --enable-shared --prefix=/path/to/build/products/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I you want to package Inkscape into a double-clickable &amp;lt;code&amp;gt;.app&amp;lt;/code&amp;gt; bundle in order to access it like a regular OS X application (you probably want to do it), you need to add the option &amp;lt;code&amp;gt;--enable-osxapp&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;./configure {...} --enable-osxapp&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you have loudmouth installed and you want to enable whiteboard functionality in Inkscape, add &amp;lt;code&amp;gt;--enable-inkboard&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Other configuration options can be set, check the list of options by issuing:&lt;br /&gt;
&amp;lt;pre&amp;gt;./configure --help&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Building and Installing ====&lt;br /&gt;
Just run:&lt;br /&gt;
&amp;lt;pre&amp;gt;make&lt;br /&gt;
make install&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Creating an .app bundle ====&lt;br /&gt;
Assuming that you have used the &amp;lt;code&amp;gt;--enable-osxapp&amp;lt;/code&amp;gt; option during &amp;lt;code&amp;gt;configure&amp;lt;/code&amp;gt;, navigate to Mac OS X packaging directory in Inkscape source code and use the automated script:&lt;br /&gt;
&amp;lt;pre&amp;gt;cd packaging/macosx&lt;br /&gt;
./osx-app.sh -s /path/to/install/prefix/bin/inkscape ../Info.plist macosx&amp;lt;/pre&amp;gt;&lt;br /&gt;
The script copies Inkscape binary and all its dependencies into the app bundle. The &amp;lt;code&amp;gt;-s&amp;lt;/code&amp;gt; options strips libraries from debugging information (the bundle is therefore smaller). Omit this option if you want to keep debugging info.&lt;br /&gt;
&lt;br /&gt;
==== Creating a disk image to distribute Inkscape ====&lt;br /&gt;
Inkscape.app created at the previous step is completely independent from the original location of the libraries and can therefore be distributed. It will only work on one platform though (PPC or Intel): the one you built it on.&lt;br /&gt;
The most widespread way of distributing applications on Mac OS X is via .dmg images. You can created a dmg image of Inkscape, with a nice background, with the script:&lt;br /&gt;
&amp;lt;pre&amp;gt;./osx-dmg.sh&amp;lt;/pre&amp;gt;&lt;br /&gt;
in the packaging directory for Mac OS X.&lt;br /&gt;
&lt;br /&gt;
== Compiling a Universal Binary of Inkscape with X11, using the all-in-one build script ==&lt;br /&gt;
&lt;br /&gt;
To build a Universal Binary of Inkscape you also need to build Universal versions of all its dependencies (i.e., gtk+, cairo, pango, etc).  You can do this using the build-gtk.sh script from the Inkscape repository (it's in packaging/macosx/native-gtk/).&lt;br /&gt;
&lt;br /&gt;
This process is relatively untested, as it is only being used by Michael Wybrow  for official Inkscape release builds.  If you have any troubles using this process then please report them to Michael (mjwybrow on sourceforge).&lt;br /&gt;
&lt;br /&gt;
The process is:&lt;br /&gt;
        export PREFIX=/your/install/prefix&lt;br /&gt;
        export UNIVERSAL_BUILD=Yes&lt;br /&gt;
        ./build-gtk bootstrap&lt;br /&gt;
        ./build-gtk build inkscape&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Compiling Inkscape with native GTK using MacPorts [experimental] ==&lt;br /&gt;
This process will be very similar to compiling a X11 version of Inkscape except for the building of dependencies: you will need to build native versions of GTK and Cairo.&lt;br /&gt;
At the moment (2007-09-31) this process does not produce a usable version of Inkscape but the more people try to use it, the quicker the bugs will be ironed out!&lt;br /&gt;
&lt;br /&gt;
=== Native version of GTK and Cairo ==&lt;br /&gt;
In theory you should be able to install a second MacPorts tree independent from your usual one (in /opt/local-native/ for example) but I did not manage to have the two cohabit so I would advise doing everything in your regular MacPorts tree. However, this should not be too much of a problem thanks to the power of &amp;quot;variants&amp;quot; and port deactivation.&lt;br /&gt;
You need to deactivate (suppress from the tree without really uninstalling) current version of gtk, cairo, cairomm and pango:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port deactivate gtk2 cairo cairomm&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then install native variants:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port install cairo +quartz cairomm +quartz gtk2 +quartz&amp;lt;/pre&amp;gt;&lt;br /&gt;
There is currently an incompatibility with gtk and cairo native ports. It is reported in this ticket&lt;br /&gt;
You need to edit the Portfile for gtk according to the Portfile patch:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port edit gtk2&amp;lt;/pre&amp;gt;&lt;br /&gt;
and add the patch to the &amp;lt;code&amp;gt;files&amp;lt;/code&amp;gt; directory next to the Portfile. If you edit your file in a Cocoa editor just Command+click on the filename in the window title bar and this will bring a menu with the file hierarchy down to the Portfile. Go one step up and you're there. Otherwise the path is &amp;lt;pre&amp;gt;/opt/localquartz/var/macports/sources/rsync.macports.org/release/ports/x11/gtk2&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to be continued...&lt;br /&gt;
&lt;br /&gt;
== Compiling Inkscape as a native application (no X11) ==&lt;br /&gt;
&lt;br /&gt;
To build a native-GTK build of Inkscape, GTK and some of its dependencies must be built with special options. You can do this using the build-gtk.sh script from the Inkscape repository (it's in packaging/macosx/native-gtk/).  This is a modified version of the Imendio native build script, found with instructions on this page:&lt;br /&gt;
http://developer.imendio.com/projects/gtk-macosx/build-instructions&lt;br /&gt;
&lt;br /&gt;
This process is relatively untested. If you have any troubles using this process then please report them to Michael Wybrow (mjwybrow on sourceforge).&lt;br /&gt;
&lt;br /&gt;
The process is:&lt;br /&gt;
       export PREFIX=/your/install/prefix&lt;br /&gt;
       ./build-gtk bootstrap&lt;br /&gt;
       ./build-gtk build inkscape&lt;br /&gt;
&lt;br /&gt;
== Enabling python effects ==&lt;br /&gt;
Many &amp;quot;effects&amp;quot; in the Effect menu of Inkscape use python as a scripting language. Mac OS X ships with python but without some packages that Inkscape uses: [http://pyxml.sourceforge.net/ pyXML] (which will be suppressed as of version 0.46), [http://numpy.scipy.org/ numpy] and [http://codespeak.net/lxml/ lxml]&lt;br /&gt;
&lt;br /&gt;
=== Binary packages ===&lt;br /&gt;
You can install a binary version compiled by us, downloadable with the development builds of Inkscape:&lt;br /&gt;
:http://inkscape.modevia.com/macosx-snap/?M=D&lt;br /&gt;
or in an official stable package for 0.44.PPC or later (their name contains &amp;quot;+python&amp;quot;). &lt;br /&gt;
You need to copy the folders for pyXML (_xmlplus), numpy (numpy) and lxml (*lxml*.egg) to /System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/site-packages (there is a link in the dmg on which the folders can be dropped).&lt;br /&gt;
&lt;br /&gt;
=== Compiling from source ===&lt;br /&gt;
If you prefer, you can install them from source, it is really easy.&lt;br /&gt;
&lt;br /&gt;
==== pyXML ====&lt;br /&gt;
# download the source code from [http://sourceforge.net/project/showfiles.php?group_id=6473 sourceforge]&lt;br /&gt;
# unpack the &amp;lt;code&amp;gt;.tar.gz&amp;lt;/code&amp;gt; file&lt;br /&gt;
# cd into the newly created directory&lt;br /&gt;
# set the variable &amp;lt;code&amp;gt;MACOSX_DEPLOYMENT_TARGET&amp;lt;/code&amp;gt; to version of your operating system (10.3 for Panther, 10.4 for Tiger, 10.5 for Leopard. It probably won't work on previous systems). In bash syntax this means typing:&amp;lt;pre&amp;gt;export MACOSX_DEPLOYMENT_TARGET=10.?&amp;lt;/pre&amp;gt;&lt;br /&gt;
# move the python files and build C extensions by just typing &amp;lt;pre&amp;gt;python setup.py build&amp;lt;/pre&amp;gt;&lt;br /&gt;
# install (the install is system wide so you need administrator rights)&amp;lt;pre&amp;gt;sudo python setup.py install&amp;lt;/pre&amp;gt;and type your password.&lt;br /&gt;
&lt;br /&gt;
==== numpy and lxml====&lt;br /&gt;
# download the source code from [http://sourceforge.net/project/showfiles.php?group_id=1369&amp;amp;package_id=175103 sourceforge numpy repository] or [http://codespeak.net/lxml/index.html#download lxml download section]&lt;br /&gt;
# unpack the &amp;lt;code&amp;gt;.tar.gz&amp;lt;/code&amp;gt; file&lt;br /&gt;
# cd into the newly created directory&lt;br /&gt;
# build C extensions and install (the install is system wide so you need administrator rights)&amp;lt;pre&amp;gt;sudo python setup.py install&amp;lt;/pre&amp;gt;and type your password.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
=== Apple Documentation ===&lt;br /&gt;
* [http://developer.apple.com/documentation/MacOSX/Conceptual/BPRuntimeConfig/BPRuntimeConfig.html Introduction to Runtime Configuration] Covers the Info.plist files, Preferences, Environment variables and has a list of the most important Properties that the Property List should contain.&lt;br /&gt;
&lt;br /&gt;
=== Packaging ===&lt;br /&gt;
&lt;br /&gt;
* [http://www.sveinbjorn.org/platypus Sveinbjorn Thordarson's Website] The author of Platypus, the Script Exec wrapper that launches the Inkscape binary.&lt;br /&gt;
* [http://freespace.ausgamers.com/2005/02/creating-os-x-application-bundles-step.html  Creating OS X application bundles step by step] Covers the bundle concepts, copying libraries into the bundle, editing libraries with the install_name_tool, the Info.plist file and adding an icon.&lt;br /&gt;
* [http://java.sun.com/developer/technicalArticles/JavaLP/JavaToMac3/ Bringing your Java Application to Mac OS X] I would regard this a little dated, and the detail is (unsurprisingly) Java-related, but it is a gentle introduction to the role of the .app bundle and give a most clear account of how to create one.&lt;br /&gt;
* The [http://gimp-app.sourceforge.net/gimp.app.howto.txt Gimp .app Howto] This is a very bare document, and would be of little help to you if you were new to making packages. Note that it seems to refer to a more mature Clipboard technique and Online help than we currently have; and we ought to move to parity in these areas.&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer Documentation]]&lt;/div&gt;</summary>
		<author><name>Jiho</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=CompilingMacOsX&amp;diff=16156</id>
		<title>CompilingMacOsX</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=CompilingMacOsX&amp;diff=16156"/>
		<updated>2007-08-31T22:26:05Z</updated>

		<summary type="html">&lt;p&gt;Jiho: added the begining of explanations to compile inkscape native with macports&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Requirements ==&lt;br /&gt;
To compile Inkscape from source you will need:&lt;br /&gt;
*Mac OS X 10.4 (10.3 support is on the way, you are welcome to help if you still have a machine running 10.3)&lt;br /&gt;
*XCode 2.3 on OS X 10.4 (i.e. with gcc 4.0.1)&lt;br /&gt;
*Inkscape's source code. You can get the [http://www.inkscape.org/download.php official release source code], a [http://inkscape.modevia.com/svn-snap/?M=D SVN snapshot] or a copy of the [http://www.inkscape.org/svn.php?lang=en SVN repository].&lt;br /&gt;
*Inkscape's dependencies, for example glibmm, gtkmm, lmcs, boehm gc... You can use a package distribution system ([http://www.finkproject.org/ Fink] or [http://www.macports.org/ MacPorts], formerly known as [http://darwinports.opendarwin.org/ DarwinPorts]) or Inkscape all-in-one universal build script to install them. Inkscape requires a recent version of gtk, hence only MacPorts can be used at the moment. Once Fink updates gtk it should not be a problem to use it.&lt;br /&gt;
&lt;br /&gt;
== Compiling Inkscape using MacPorts [with X11]==&lt;br /&gt;
&lt;br /&gt;
=== Installing dependencies ===&lt;br /&gt;
You can use MacPorts to list Inkscape dependencies:&lt;br /&gt;
&amp;lt;pre&amp;gt;port deps inkscape&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some are mandatory and you can install them with the command:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port install boehmgc gtkmm intltool libxslt lcms popt boost&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Others provide additional functionality to Inkscape:&lt;br /&gt;
* &amp;lt;code&amp;gt;gnome-vfs&amp;lt;/code&amp;gt; : access to remote servers, in particular import from Open Clipart Library&lt;br /&gt;
* &amp;lt;code&amp;gt;aspell&amp;lt;/code&amp;gt; : check spelling of text elements [Note: I have never seen it working on OS X]&lt;br /&gt;
* &amp;lt;code&amp;gt;libgnomeprintui&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;loudmouth&amp;lt;/code&amp;gt; : jabber library used by InkBoard&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port install gnome-vfs aspell libgnomeprintui loudmouth&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== For the impatient ===&lt;br /&gt;
There is an automated build script for Mac OS X included with Inkscape source code, in the directory packaging/macosx. It has built-in help:&lt;br /&gt;
&amp;lt;pre&amp;gt; cd packaging/macosx/&lt;br /&gt;
./osx-build.sh help&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Basically to update from svn, generate the configure script, configure, build, install and package Inkscape into a double clickable app bundle you just need to issue the command&lt;br /&gt;
&amp;lt;pre&amp;gt;./osx-build.sh update autogen configure build install -s package&amp;lt;/pre&amp;gt;&lt;br /&gt;
or more simply&lt;br /&gt;
&amp;lt;pre&amp;gt;./osx-build.sh u a c b i -s p&amp;lt;/pre&amp;gt;&lt;br /&gt;
or even more simply&lt;br /&gt;
&amp;lt;pre&amp;gt;./osx-build.sh all -s&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Step by step instructions ===&lt;br /&gt;
If you want to know what you are doing or to understand how the build script works, please read the following paragraphs.&lt;br /&gt;
&lt;br /&gt;
==== Setting the build environment ====&lt;br /&gt;
MacPorts's hierarchy (/opt/local/) is not searched for libraries by default. Therefore, before the configuration starts, some environment variables need to be set. The environment variables are presented in bash syntax here. &lt;br /&gt;
&amp;lt;pre&amp;gt;export LIBPREFIX=&amp;quot;/opt/local&amp;quot;&lt;br /&gt;
#  automake seach path&lt;br /&gt;
export CPATH=&amp;quot;$LIBPREFIX/include&amp;quot;&lt;br /&gt;
#  configure search path&lt;br /&gt;
export CPPFLAGS=&amp;quot;-I$LIBPREFIX/include&amp;quot;&lt;br /&gt;
export LDFLAGS=&amp;quot;-L$LIBPREFIX/lib&amp;quot;&lt;br /&gt;
#  compiler arguments&lt;br /&gt;
export CFLAGS=&amp;quot;-O3 -Wall&amp;quot;&lt;br /&gt;
export CXXFLAGS=&amp;quot;$CFLAGS&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also use &amp;lt;code&amp;gt;[http://en.wikipedia.org/wiki/Ccache ccache]&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;sudo port install ccache&amp;lt;/code&amp;gt;) to speed up the compilation a bit. To do so, add compiler variables:&lt;br /&gt;
&amp;lt;pre&amp;gt;export CC=&amp;quot;ccache gcc&amp;quot;&lt;br /&gt;
export CXX=&amp;quot;ccache g++&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Configuring ====&lt;br /&gt;
If you compile Inkscape for the first time from an svn checkout you probably need to build the configure script. Navigate to Inkscape's source directory and run:&lt;br /&gt;
&amp;lt;pre&amp;gt;./autogen.sh&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then run configure with the options &amp;lt;code&amp;gt;--disable-static --enable-shared&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;--prefix&amp;lt;/code&amp;gt; which sets the directory where the build products are placed. It must be somewhere you have write access to.&lt;br /&gt;
&amp;lt;pre&amp;gt;./configure --disable-static --enable-shared --prefix=/path/to/build/products/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I you want to package Inkscape into a double-clickable &amp;lt;code&amp;gt;.app&amp;lt;/code&amp;gt; bundle in order to access it like a regular OS X application (you probably want to do it), you need to add the option &amp;lt;code&amp;gt;--enable-osxapp&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;./configure {...} --enable-osxapp&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you have loudmouth installed and you want to enable whiteboard functionality in Inkscape, add &amp;lt;code&amp;gt;--enable-inkboard&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Other configuration options can be set, check the list of options by issuing:&lt;br /&gt;
&amp;lt;pre&amp;gt;./configure --help&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Building and Installing ====&lt;br /&gt;
Just run:&lt;br /&gt;
&amp;lt;pre&amp;gt;make&lt;br /&gt;
make install&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Creating an .app bundle ====&lt;br /&gt;
Assuming that you have used the &amp;lt;code&amp;gt;--enable-osxapp&amp;lt;/code&amp;gt; option during &amp;lt;code&amp;gt;configure&amp;lt;/code&amp;gt;, navigate to Mac OS X packaging directory in Inkscape source code and use the automated script:&lt;br /&gt;
&amp;lt;pre&amp;gt;cd packaging/macosx&lt;br /&gt;
./osx-app.sh -s /path/to/install/prefix/bin/inkscape ../Info.plist macosx&amp;lt;/pre&amp;gt;&lt;br /&gt;
The script copies Inkscape binary and all its dependencies into the app bundle. The &amp;lt;code&amp;gt;-s&amp;lt;/code&amp;gt; options strips libraries from debugging information (the bundle is therefore smaller). Omit this option if you want to keep debugging info.&lt;br /&gt;
&lt;br /&gt;
==== Creating a disk image to distribute Inkscape ====&lt;br /&gt;
Inkscape.app created at the previous step is completely independent from the original location of the libraries and can therefore be distributed. It will only work on one platform though (PPC or Intel): the one you built it on.&lt;br /&gt;
The most widespread way of distributing applications on Mac OS X is via .dmg images. You can created a dmg image of Inkscape, with a nice background, with the script:&lt;br /&gt;
&amp;lt;pre&amp;gt;./osx-dmg.sh&amp;lt;/pre&amp;gt;&lt;br /&gt;
in the packaging directory for Mac OS X.&lt;br /&gt;
&lt;br /&gt;
== Compiling a Universal Binary of Inkscape with X11, using the all-in-one build script ==&lt;br /&gt;
&lt;br /&gt;
To build a Universal Binary of Inkscape you also need to build Universal versions of all its dependencies (i.e., gtk+, cairo, pango, etc).  You can do this using the build-gtk.sh script from the Inkscape repository (it's in packaging/macosx/native-gtk/).&lt;br /&gt;
&lt;br /&gt;
This process is relatively untested, as it is only being used by Michael Wybrow  for official Inkscape release builds.  If you have any troubles using this process then please report them to Michael (mjwybrow on sourceforge).&lt;br /&gt;
&lt;br /&gt;
The process is:&lt;br /&gt;
        export PREFIX=/your/install/prefix&lt;br /&gt;
        export UNIVERSAL_BUILD=Yes&lt;br /&gt;
        ./build-gtk bootstrap&lt;br /&gt;
        ./build-gtk build inkscape&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Compiling Inkscape with native GTK using MacPorts [experimental] ==&lt;br /&gt;
This process will be very similar to compiling a X11 version of Inkscape except for the building of dependencies: you will need to build native versions of GTK and Cairo.&lt;br /&gt;
At the moment (2007-09-31) this process does not produce a usable version of Inkscape but the more people try to use it, the quicker the bugs will be ironed out!&lt;br /&gt;
&lt;br /&gt;
=== Native version of GTK and Cairo ==&lt;br /&gt;
In theory you should be able to install a second MacPorts tree independent from your usual one (in /opt/local-native/ for example) but I did not manage to have the two cohabit so I would advise doing everything in your regular MacPorts tree. However, this should not be too much of a problem thanks to the power of &amp;quot;variants&amp;quot; and port deactivation.&lt;br /&gt;
You need to deactivate (suppress from the tree without really uninstalling) current version of gtk, cairo, cairomm and pango:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port deactivate gtk2 cairo cairomm&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then install native variants:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port install cairo +quartz cairomm +quartz gtk2 +quartz&amp;lt;/pre&amp;gt;&lt;br /&gt;
There is currently an incompatibility with gtk and cairo native ports. It is reported in this ticket&lt;br /&gt;
You need to edit the Portfile for gtk according to the Portfile patch:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port edit gtk2&amp;lt;/pre&amp;gt;&lt;br /&gt;
and add the patch to the &amp;lt;code&amp;gt;files&amp;lt;/code&amp;gt; directory next to the Portfile. If you edit your file in a Cocoa editor just Command+click on the filename in the window title bar and this will bring a menu with the file hierarchy down to the Portfile. Go one step up and you're there. Otherwise the path is &amp;lt;pre&amp;gt;/opt/localquartz/var/macports/sources/rsync.macports.org/release/ports/x11/gtk2&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to be continued...&lt;br /&gt;
&lt;br /&gt;
== Compiling Inkscape as a native application (no X11) ==&lt;br /&gt;
&lt;br /&gt;
To build a native-GTK build of Inkscape, GTK and some of its dependencies must be built with special options. You can do this using the build-gtk.sh script from the Inkscape repository (it's in packaging/macosx/native-gtk/).  This is a modified version of the Imendio native build script, found with instructions on this page:&lt;br /&gt;
http://developer.imendio.com/projects/gtk-macosx/build-instructions&lt;br /&gt;
&lt;br /&gt;
This process is relatively untested. If you have any troubles using this process then please report them to Michael Wybrow (mjwybrow on sourceforge).&lt;br /&gt;
&lt;br /&gt;
The process is:&lt;br /&gt;
       export PREFIX=/your/install/prefix&lt;br /&gt;
       ./build-gtk bootstrap&lt;br /&gt;
       ./build-gtk build inkscape&lt;br /&gt;
&lt;br /&gt;
== Enabling python effects ==&lt;br /&gt;
Many &amp;quot;effects&amp;quot; in the Effect menu of Inkscape use python as a scripting language. Mac OS X ships with python but without some packages that Inkscape uses: [http://pyxml.sourceforge.net/ pyXML] (which will be suppressed as of version 0.46), [http://numpy.scipy.org/ numpy] and [http://codespeak.net/lxml/ lxml]&lt;br /&gt;
&lt;br /&gt;
=== Binary packages ===&lt;br /&gt;
You can install a binary version compiled by us, downloadable with the development builds of Inkscape:&lt;br /&gt;
:http://inkscape.modevia.com/macosx-snap/?M=D&lt;br /&gt;
or in an official stable package for 0.44.PPC or later (their name contains &amp;quot;+python&amp;quot;). &lt;br /&gt;
You need to copy the folders for pyXML (_xmlplus), numpy (numpy) and lxml (*lxml*.egg) to /System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/site-packages (there is a link in the dmg on which the folders can be dropped).&lt;br /&gt;
&lt;br /&gt;
=== Compiling from source ===&lt;br /&gt;
If you prefer, you can install them from source, it is really easy.&lt;br /&gt;
&lt;br /&gt;
==== pyXML ====&lt;br /&gt;
# download the source code from [http://sourceforge.net/project/showfiles.php?group_id=6473 sourceforge]&lt;br /&gt;
# unpack the &amp;lt;code&amp;gt;.tar.gz&amp;lt;/code&amp;gt; file&lt;br /&gt;
# cd into the newly created directory&lt;br /&gt;
# set the variable &amp;lt;code&amp;gt;MACOSX_DEPLOYMENT_TARGET&amp;lt;/code&amp;gt; to version of your operating system (10.3 for Panther, 10.4 for Tiger, 10.5 for Leopard. It probably won't work on previous systems). In bash syntax this means typing:&amp;lt;pre&amp;gt;export MACOSX_DEPLOYMENT_TARGET=10.?&amp;lt;/pre&amp;gt;&lt;br /&gt;
# move the python files and build C extensions by just typing &amp;lt;pre&amp;gt;python setup.py build&amp;lt;/pre&amp;gt;&lt;br /&gt;
# install (the install is system wide so you need administrator rights)&amp;lt;pre&amp;gt;sudo python setup.py install&amp;lt;/pre&amp;gt;and type your password.&lt;br /&gt;
&lt;br /&gt;
==== numpy and lxml====&lt;br /&gt;
# download the source code from [http://sourceforge.net/project/showfiles.php?group_id=1369&amp;amp;package_id=175103 sourceforge numpy repository] or [http://codespeak.net/lxml/index.html#download lxml download section]&lt;br /&gt;
# unpack the &amp;lt;code&amp;gt;.tar.gz&amp;lt;/code&amp;gt; file&lt;br /&gt;
# cd into the newly created directory&lt;br /&gt;
# build C extensions and install (the install is system wide so you need administrator rights)&amp;lt;pre&amp;gt;sudo python setup.py install&amp;lt;/pre&amp;gt;and type your password.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
=== Apple Documentation ===&lt;br /&gt;
* [http://developer.apple.com/documentation/MacOSX/Conceptual/BPRuntimeConfig/BPRuntimeConfig.html Introduction to Runtime Configuration] Covers the Info.plist files, Preferences, Environment variables and has a list of the most important Properties that the Property List should contain.&lt;br /&gt;
&lt;br /&gt;
=== Packaging ===&lt;br /&gt;
&lt;br /&gt;
* [http://www.sveinbjorn.org/platypus Sveinbjorn Thordarson's Website] The author of Platypus, the Script Exec wrapper that launches the Inkscape binary.&lt;br /&gt;
* [http://freespace.ausgamers.com/2005/02/creating-os-x-application-bundles-step.html  Creating OS X application bundles step by step] Covers the bundle concepts, copying libraries into the bundle, editing libraries with the install_name_tool, the Info.plist file and adding an icon.&lt;br /&gt;
* [http://java.sun.com/developer/technicalArticles/JavaLP/JavaToMac3/ Bringing your Java Application to Mac OS X] I would regard this a little dated, and the detail is (unsurprisingly) Java-related, but it is a gentle introduction to the role of the .app bundle and give a most clear account of how to create one.&lt;br /&gt;
* The [http://gimp-app.sourceforge.net/gimp.app.howto.txt Gimp .app Howto] This is a very bare document, and would be of little help to you if you were new to making packages. Note that it seems to refer to a more mature Clipboard technique and Online help than we currently have; and we ought to move to parity in these areas.&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer Documentation]]&lt;/div&gt;</summary>
		<author><name>Jiho</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=CompilingMacOsX&amp;diff=16155</id>
		<title>CompilingMacOsX</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=CompilingMacOsX&amp;diff=16155"/>
		<updated>2007-08-31T21:25:00Z</updated>

		<summary type="html">&lt;p&gt;Jiho: /* Compiling Inkscape using MacPorts */ updated the list of dependencies&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Requirements ==&lt;br /&gt;
To compile Inkscape from source you will need:&lt;br /&gt;
*Mac OS X 10.4 (10.3 support is on the way, you are welcome to help if you still have a machine running 10.3)&lt;br /&gt;
*XCode 2.3 on OS X 10.4 (i.e. with gcc 4.0.1)&lt;br /&gt;
*Inkscape's source code. You can get the [http://www.inkscape.org/download.php official release source code], a [http://inkscape.modevia.com/svn-snap/?M=D SVN snapshot] or a copy of the [http://www.inkscape.org/svn.php?lang=en SVN repository].&lt;br /&gt;
*Inkscape's dependencies, for example glibmm, gtkmm, lmcs, boehm gc... You can use a package distribution system ([http://www.finkproject.org/ Fink] or [http://www.macports.org/ MacPorts], formerly known as [http://darwinports.opendarwin.org/ DarwinPorts]) or Inkscape all-in-one universal build script to install them. Inkscape requires a recent version of gtk, hence only MacPorts can be used at the moment. Once Fink updates gtk it should not be a problem to use it.&lt;br /&gt;
&lt;br /&gt;
== Compiling Inkscape using MacPorts [with X11]==&lt;br /&gt;
&lt;br /&gt;
=== Installing dependencies ===&lt;br /&gt;
You can use MacPorts to list Inkscape dependencies:&lt;br /&gt;
&amp;lt;pre&amp;gt;port deps inkscape&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some are mandatory and you can install them with the command:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port install boehmgc gtkmm intltool libxslt lcms popt boost&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Others provide additional functionality to Inkscape:&lt;br /&gt;
* &amp;lt;code&amp;gt;gnome-vfs&amp;lt;/code&amp;gt; : access to remote servers, in particular import from Open Clipart Library&lt;br /&gt;
* &amp;lt;code&amp;gt;aspell&amp;lt;/code&amp;gt; : check spelling of text elements [Note: I have never seen it working on OS X]&lt;br /&gt;
* &amp;lt;code&amp;gt;libgnomeprintui&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;loudmouth&amp;lt;/code&amp;gt; : jabber library used by InkBoard&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port install gnome-vfs aspell libgnomeprintui loudmouth&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== For the impatient ===&lt;br /&gt;
There is an automated build script for Mac OS X included with Inkscape source code, in the directory packaging/macosx. It has built-in help:&lt;br /&gt;
&amp;lt;pre&amp;gt; cd packaging/macosx/&lt;br /&gt;
./osx-build.sh help&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Basically to update from svn, generate the configure script, configure, build, install and package Inkscape into a double clickable app bundle you just need to issue the command&lt;br /&gt;
&amp;lt;pre&amp;gt;./osx-build.sh update autogen configure build install -s package&amp;lt;/pre&amp;gt;&lt;br /&gt;
or more simply&lt;br /&gt;
&amp;lt;pre&amp;gt;./osx-build.sh u a c b i -s p&amp;lt;/pre&amp;gt;&lt;br /&gt;
or even more simply&lt;br /&gt;
&amp;lt;pre&amp;gt;./osx-build.sh all -s&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Step by step instructions ===&lt;br /&gt;
If you want to know what you are doing or to understand how the build script works, please read the following paragraphs.&lt;br /&gt;
&lt;br /&gt;
==== Setting the build environment ====&lt;br /&gt;
MacPorts's hierarchy (/opt/local/) is not searched for libraries by default. Therefore, before the configuration starts, some environment variables need to be set. The environment variables are presented in bash syntax here. &lt;br /&gt;
&amp;lt;pre&amp;gt;export LIBPREFIX=&amp;quot;/opt/local&amp;quot;&lt;br /&gt;
#  automake seach path&lt;br /&gt;
export CPATH=&amp;quot;$LIBPREFIX/include&amp;quot;&lt;br /&gt;
#  configure search path&lt;br /&gt;
export CPPFLAGS=&amp;quot;-I$LIBPREFIX/include&amp;quot;&lt;br /&gt;
export LDFLAGS=&amp;quot;-L$LIBPREFIX/lib&amp;quot;&lt;br /&gt;
#  compiler arguments&lt;br /&gt;
export CFLAGS=&amp;quot;-O3 -Wall&amp;quot;&lt;br /&gt;
export CXXFLAGS=&amp;quot;$CFLAGS&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also use &amp;lt;code&amp;gt;[http://en.wikipedia.org/wiki/Ccache ccache]&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;sudo port install ccache&amp;lt;/code&amp;gt;) to speed up the compilation a bit. To do so, add compiler variables:&lt;br /&gt;
&amp;lt;pre&amp;gt;export CC=&amp;quot;ccache gcc&amp;quot;&lt;br /&gt;
export CXX=&amp;quot;ccache g++&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Configuring ====&lt;br /&gt;
If you compile Inkscape for the first time from an svn checkout you probably need to build the configure script. Navigate to Inkscape's source directory and run:&lt;br /&gt;
&amp;lt;pre&amp;gt;./autogen.sh&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then run configure with the options &amp;lt;code&amp;gt;--disable-static --enable-shared&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;--prefix&amp;lt;/code&amp;gt; which sets the directory where the build products are placed. It must be somewhere you have write access to.&lt;br /&gt;
&amp;lt;pre&amp;gt;./configure --disable-static --enable-shared --prefix=/path/to/build/products/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I you want to package Inkscape into a double-clickable &amp;lt;code&amp;gt;.app&amp;lt;/code&amp;gt; bundle in order to access it like a regular OS X application (you probably want to do it), you need to add the option &amp;lt;code&amp;gt;--enable-osxapp&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;./configure {...} --enable-osxapp&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you have loudmouth installed and you want to enable whiteboard functionality in Inkscape, add &amp;lt;code&amp;gt;--enable-inkboard&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Other configuration options can be set, check the list of options by issuing:&lt;br /&gt;
&amp;lt;pre&amp;gt;./configure --help&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Building and Installing ====&lt;br /&gt;
Just run:&lt;br /&gt;
&amp;lt;pre&amp;gt;make&lt;br /&gt;
make install&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Creating an .app bundle ====&lt;br /&gt;
Assuming that you have used the &amp;lt;code&amp;gt;--enable-osxapp&amp;lt;/code&amp;gt; option during &amp;lt;code&amp;gt;configure&amp;lt;/code&amp;gt;, navigate to Mac OS X packaging directory in Inkscape source code and use the automated script:&lt;br /&gt;
&amp;lt;pre&amp;gt;cd packaging/macosx&lt;br /&gt;
./osx-app.sh -s /path/to/install/prefix/bin/inkscape ../Info.plist macosx&amp;lt;/pre&amp;gt;&lt;br /&gt;
The script copies Inkscape binary and all its dependencies into the app bundle. The &amp;lt;code&amp;gt;-s&amp;lt;/code&amp;gt; options strips libraries from debugging information (the bundle is therefore smaller). Omit this option if you want to keep debugging info.&lt;br /&gt;
&lt;br /&gt;
==== Creating a disk image to distribute Inkscape ====&lt;br /&gt;
Inkscape.app created at the previous step is completely independent from the original location of the libraries and can therefore be distributed. It will only work on one platform though (PPC or Intel): the one you built it on.&lt;br /&gt;
The most widespread way of distributing applications on Mac OS X is via .dmg images. You can created a dmg image of Inkscape, with a nice background, with the script:&lt;br /&gt;
&amp;lt;pre&amp;gt;./osx-dmg.sh&amp;lt;/pre&amp;gt;&lt;br /&gt;
in the packaging directory for Mac OS X.&lt;br /&gt;
&lt;br /&gt;
== Compiling a universal binary of Inkscape using the all-in-one build script ==&lt;br /&gt;
&lt;br /&gt;
To build a universal build of Inkscape you also need to build Universal versions of all its dependencies (i.e., gtk+, cairo, pango, etc).  You can do this using the build-gtk.sh script from the Inkscape repository (it's in packaging/macosx/native-gtk/).&lt;br /&gt;
&lt;br /&gt;
This process is relatively untested, as it is only being used by Michael Wybrow  for official Inkscape release builds.  If you have any troubles using this process then please report them to Michael (mjwybrow on sourceforge).&lt;br /&gt;
&lt;br /&gt;
The process is:&lt;br /&gt;
        export PREFIX=/your/install/prefix&lt;br /&gt;
        export UNIVERSAL_BUILD=Yes&lt;br /&gt;
        ./build-gtk bootstrap&lt;br /&gt;
        ./build-gtk build inkscape&lt;br /&gt;
&lt;br /&gt;
== Compiling Inkscape as a native application (no X11) ==&lt;br /&gt;
&lt;br /&gt;
To build a native-GTK build of Inkscape, GTK and some of its dependencies must be built with special options. You can do this using the build-gtk.sh script from the Inkscape repository (it's in packaging/macosx/native-gtk/).  This is a modified version of the Imendio native build script, found with instructions on this page:&lt;br /&gt;
http://developer.imendio.com/projects/gtk-macosx/build-instructions&lt;br /&gt;
&lt;br /&gt;
This process is relatively untested. If you have any troubles using this process then please report them to Michael Wybrow (mjwybrow on sourceforge).&lt;br /&gt;
&lt;br /&gt;
The process is:&lt;br /&gt;
       export PREFIX=/your/install/prefix&lt;br /&gt;
       ./build-gtk bootstrap&lt;br /&gt;
       ./build-gtk build inkscape&lt;br /&gt;
&lt;br /&gt;
== Enabling python effects ==&lt;br /&gt;
Many &amp;quot;effects&amp;quot; in the Effect menu of Inkscape use python as a scripting language. Mac OS X ships with python but without some packages that Inkscape uses: [http://pyxml.sourceforge.net/ pyXML] (which will be suppressed as of version 0.46), [http://numpy.scipy.org/ numpy] and [http://codespeak.net/lxml/ lxml]&lt;br /&gt;
&lt;br /&gt;
=== Binary packages ===&lt;br /&gt;
You can install a binary version compiled by us, downloadable with the development builds of Inkscape:&lt;br /&gt;
:http://inkscape.modevia.com/macosx-snap/?M=D&lt;br /&gt;
or in an official stable package for 0.44.PPC or later (their name contains &amp;quot;+python&amp;quot;). &lt;br /&gt;
You need to copy the folders for pyXML (_xmlplus), numpy (numpy) and lxml (*lxml*.egg) to /System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/site-packages (there is a link in the dmg on which the folders can be dropped).&lt;br /&gt;
&lt;br /&gt;
=== Compiling from source ===&lt;br /&gt;
If you prefer, you can install them from source, it is really easy.&lt;br /&gt;
&lt;br /&gt;
==== pyXML ====&lt;br /&gt;
# download the source code from [http://sourceforge.net/project/showfiles.php?group_id=6473 sourceforge]&lt;br /&gt;
# unpack the &amp;lt;code&amp;gt;.tar.gz&amp;lt;/code&amp;gt; file&lt;br /&gt;
# cd into the newly created directory&lt;br /&gt;
# set the variable &amp;lt;code&amp;gt;MACOSX_DEPLOYMENT_TARGET&amp;lt;/code&amp;gt; to version of your operating system (10.3 for Panther, 10.4 for Tiger, 10.5 for Leopard. It probably won't work on previous systems). In bash syntax this means typing:&amp;lt;pre&amp;gt;export MACOSX_DEPLOYMENT_TARGET=10.?&amp;lt;/pre&amp;gt;&lt;br /&gt;
# move the python files and build C extensions by just typing &amp;lt;pre&amp;gt;python setup.py build&amp;lt;/pre&amp;gt;&lt;br /&gt;
# install (the install is system wide so you need administrator rights)&amp;lt;pre&amp;gt;sudo python setup.py install&amp;lt;/pre&amp;gt;and type your password.&lt;br /&gt;
&lt;br /&gt;
==== numpy and lxml====&lt;br /&gt;
# download the source code from [http://sourceforge.net/project/showfiles.php?group_id=1369&amp;amp;package_id=175103 sourceforge numpy repository] or [http://codespeak.net/lxml/index.html#download lxml download section]&lt;br /&gt;
# unpack the &amp;lt;code&amp;gt;.tar.gz&amp;lt;/code&amp;gt; file&lt;br /&gt;
# cd into the newly created directory&lt;br /&gt;
# build C extensions and install (the install is system wide so you need administrator rights)&amp;lt;pre&amp;gt;sudo python setup.py install&amp;lt;/pre&amp;gt;and type your password.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
=== Apple Documentation ===&lt;br /&gt;
* [http://developer.apple.com/documentation/MacOSX/Conceptual/BPRuntimeConfig/BPRuntimeConfig.html Introduction to Runtime Configuration] Covers the Info.plist files, Preferences, Environment variables and has a list of the most important Properties that the Property List should contain.&lt;br /&gt;
&lt;br /&gt;
=== Packaging ===&lt;br /&gt;
&lt;br /&gt;
* [http://www.sveinbjorn.org/platypus Sveinbjorn Thordarson's Website] The author of Platypus, the Script Exec wrapper that launches the Inkscape binary.&lt;br /&gt;
* [http://freespace.ausgamers.com/2005/02/creating-os-x-application-bundles-step.html  Creating OS X application bundles step by step] Covers the bundle concepts, copying libraries into the bundle, editing libraries with the install_name_tool, the Info.plist file and adding an icon.&lt;br /&gt;
* [http://java.sun.com/developer/technicalArticles/JavaLP/JavaToMac3/ Bringing your Java Application to Mac OS X] I would regard this a little dated, and the detail is (unsurprisingly) Java-related, but it is a gentle introduction to the role of the .app bundle and give a most clear account of how to create one.&lt;br /&gt;
* The [http://gimp-app.sourceforge.net/gimp.app.howto.txt Gimp .app Howto] This is a very bare document, and would be of little help to you if you were new to making packages. Note that it seems to refer to a more mature Clipboard technique and Online help than we currently have; and we ought to move to parity in these areas.&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer Documentation]]&lt;/div&gt;</summary>
		<author><name>Jiho</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=CompilingMacOsX&amp;diff=16120</id>
		<title>CompilingMacOsX</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=CompilingMacOsX&amp;diff=16120"/>
		<updated>2007-08-20T07:34:18Z</updated>

		<summary type="html">&lt;p&gt;Jiho: /* Enabling python effects */ modified to include info about lxml&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Requirements ==&lt;br /&gt;
To compile Inkscape from source you will need:&lt;br /&gt;
*Mac OS X 10.4 (10.3 support is on the way, you are welcome to help if you still have a machine running 10.3)&lt;br /&gt;
*XCode 2.3 on OS X 10.4 (i.e. with gcc 4.0.1)&lt;br /&gt;
*Inkscape's source code. You can get the [http://www.inkscape.org/download.php official release source code], a [http://inkscape.modevia.com/svn-snap/?M=D SVN snapshot] or a copy of the [http://www.inkscape.org/svn.php?lang=en SVN repository].&lt;br /&gt;
*Inkscape's dependencies, for example glibmm, gtkmm, lmcs, boehm gc... You can use a package distribution system ([http://www.finkproject.org/ Fink] or [http://www.macports.org/ MacPorts], formerly known as [http://darwinports.opendarwin.org/ DarwinPorts]) or Inkscape all-in-one universal build script to install them. Inkscape requires a recent version of gtk, hence only MacPorts can be used at the moment. Once Fink updates gtk it should not be a problem to use it.&lt;br /&gt;
&lt;br /&gt;
== Compiling Inkscape using Mac/DarwinPorts ==&lt;br /&gt;
&lt;br /&gt;
=== Installing dependencies ===&lt;br /&gt;
You can use DarwinPorts to list Inkscape dependencies:&lt;br /&gt;
&amp;lt;pre&amp;gt;port deps inkscape&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some are mandatory and you can install them with the command:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port install boehmgc gtkmm gnome-vfs intltool libxslt lcms popt boost&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Others provide additional functionality to Inkscape:&lt;br /&gt;
* &amp;lt;code&amp;gt;aspell&amp;lt;/code&amp;gt; : check spelling of text elements [Note: I have never seen it working on OS X]&lt;br /&gt;
* &amp;lt;code&amp;gt;libgnomeprintui&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;loudmouth&amp;lt;/code&amp;gt; : jabber library used by InkBoard&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port install aspell libgnomeprintui loudmouth&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== For the impatient ===&lt;br /&gt;
There is an automated build script for Mac OS X included with Inkscape source code, in the directory packaging/macosx. It has builtin help:&lt;br /&gt;
&amp;lt;pre&amp;gt; cd packaging/macosx/&lt;br /&gt;
./osx-build.sh help&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Basically to configure, build, install and package Inkscape into a double clickable app bundle you just need to issue the command&lt;br /&gt;
&amp;lt;pre&amp;gt;./osx-build.sh conf build install -s package&amp;lt;/pre&amp;gt;&lt;br /&gt;
or more simply&lt;br /&gt;
&amp;lt;pre&amp;gt;./osx-build.sh c b i -s p&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Step by step instructions ===&lt;br /&gt;
If you want to know what you do or to understand how the build script works, please read the following paragraphs.&lt;br /&gt;
&lt;br /&gt;
==== Setting the build environment ====&lt;br /&gt;
DarwinPorts's hierarchy (/opt/local/) is not searched for libraries by default. Therefore, before the configuration starts, some environment variables need to be set. The environment variables are presented in bash syntax here. &lt;br /&gt;
&amp;lt;pre&amp;gt;export LIBPREFIX=&amp;quot;/opt/local&amp;quot;&lt;br /&gt;
#  automake seach path&lt;br /&gt;
export CPATH=&amp;quot;$LIBPREFIX/include&amp;quot;&lt;br /&gt;
#  configure search path&lt;br /&gt;
export CPPFLAGS=&amp;quot;-I$LIBPREFIX/include&amp;quot;&lt;br /&gt;
export LDFLAGS=&amp;quot;-L$LIBPREFIX/lib&amp;quot;&lt;br /&gt;
#  compiler arguments&lt;br /&gt;
export CFLAGS=&amp;quot;-O3 -Wall&amp;quot;&lt;br /&gt;
export CXXFLAGS=&amp;quot;$CFLAGS&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also use &amp;lt;code&amp;gt;[http://en.wikipedia.org/wiki/Ccache ccache]&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;sudo port install ccache&amp;lt;/code&amp;gt;) to speed up the compilation a bit. To do so, add compiler variables:&lt;br /&gt;
&amp;lt;pre&amp;gt;export CC=&amp;quot;ccache gcc&amp;quot;&lt;br /&gt;
export CXX=&amp;quot;ccache g++&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Configuring ====&lt;br /&gt;
If you compile Inkscape for the first time from an svn checkout you probably need to build the configure script. Navigate to Inkscape's source directory and run:&lt;br /&gt;
&amp;lt;pre&amp;gt;./autogen.sh&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then run configure with the options &amp;lt;code&amp;gt;--disable-static --enable-shared&amp;lt;/code&amp;gt; and  &amp;lt;code&amp;gt;--prefix&amp;lt;/code&amp;gt; which sets the directory where the build products are placed. It must be somewhere you have write access to.&lt;br /&gt;
&amp;lt;pre&amp;gt;./configure --disable-static --enable-shared --prefix=/path/to/build/products/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I you want to package Inkscape into a double-clickable &amp;lt;code&amp;gt;.app&amp;lt;/code&amp;gt; bundle in order to access it like a regular OS X application (you probably want to do it), you need to add the option &amp;lt;code&amp;gt;--enable-osxapp&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;./configure {...} --enable-osxapp&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you have loudmouth installed and you want to enable whiteboard functionality in Inkscape, add &amp;lt;code&amp;gt;--enable-inkboard&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Other configuration options can be set, check the list of options by issuing:&lt;br /&gt;
&amp;lt;pre&amp;gt;./configure --help&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Building and Installing ====&lt;br /&gt;
Just run:&lt;br /&gt;
&amp;lt;pre&amp;gt;make&lt;br /&gt;
make install&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Creating an .app bundle ====&lt;br /&gt;
Assuming that you have used the &amp;lt;code&amp;gt;--enable-osxapp&amp;lt;/code&amp;gt; option during &amp;lt;code&amp;gt;configure&amp;lt;/code&amp;gt;, navigate to Mac OS X packaging directory in Inkscape source code and use the automated script:&lt;br /&gt;
&amp;lt;pre&amp;gt;cd packaging/macosx&lt;br /&gt;
./osx-app.sh -s /path/to/install/prefix/bin/inkscape ../Info.plist macosx&amp;lt;/pre&amp;gt;&lt;br /&gt;
The script copies Inkscape binary and all its dependencies into the app bundle. The &amp;lt;code&amp;gt;-s&amp;lt;/code&amp;gt; options strips libraries from debugging information (the bundle is therefore smaller). Omit this option if you want to keep debugging info.&lt;br /&gt;
&lt;br /&gt;
==== Creating a disk image to distribute Inkscape ====&lt;br /&gt;
Inkscape.app created at the previous step is completely independant from the original location of the librairies and can therefore be distributed. It will only work on one platform though (PPC or Intel): the one you built it on.&lt;br /&gt;
The most widespread way of distributing applications on Mac OS X is via .dmg images. You can created a dmg image of Inkscape, with a nice background, with the script:&lt;br /&gt;
&amp;lt;pre&amp;gt;./osx-dmg.sh&amp;lt;/pre&amp;gt;&lt;br /&gt;
in the packaging directory for Mac OS X.&lt;br /&gt;
&lt;br /&gt;
== Compiling a universal binary of Inkscape using the all-in-one build script ==&lt;br /&gt;
&lt;br /&gt;
To build a universal build of Inkscape you also need to build Universal versions of all its dependencies (i.e., gtk+, cairo, pango, etc).  You can do this using the build-gtk.sh script from the Inkscape repository (it's in packaging/macosx/native-gtk/).&lt;br /&gt;
&lt;br /&gt;
This process is relatively untested, as it is only being used by Michael Wybrow  for official Inkscape release builds.  If you have any troubles using this process then please report them to Michael (mjwybrow on sourceforge).&lt;br /&gt;
&lt;br /&gt;
The process is:&lt;br /&gt;
        export PREFIX=/your/install/prefix&lt;br /&gt;
        export UNIVERSAL_BUILD=Yes&lt;br /&gt;
        ./build-gtk bootstrap&lt;br /&gt;
        ./build-gtk build inkscape&lt;br /&gt;
&lt;br /&gt;
== Compiling Inkscape as a native application (no X11) ==&lt;br /&gt;
&lt;br /&gt;
To build a native-GTK build of Inkscape, GTK and some of its dependencies must be built with special options. You can do this using the build-gtk.sh script from the Inkscape repository (it's in packaging/macosx/native-gtk/).  This is a modified version of the Imendio native build script, found with instructions on this page:&lt;br /&gt;
http://developer.imendio.com/projects/gtk-macosx/build-instructions&lt;br /&gt;
&lt;br /&gt;
This process is relatively untested. If you have any troubles using this process then please report them to Michael Wybrow (mjwybrow on sourceforge).&lt;br /&gt;
&lt;br /&gt;
The process is:&lt;br /&gt;
       export PREFIX=/your/install/prefix&lt;br /&gt;
       ./build-gtk bootstrap&lt;br /&gt;
       ./build-gtk build inkscape&lt;br /&gt;
&lt;br /&gt;
== Enabling python effects ==&lt;br /&gt;
Many &amp;quot;effects&amp;quot; in the Effect menu of Inkscape use python as a scripting language. Mac OS X ships with python but without some packages that Inkscape uses: [http://pyxml.sourceforge.net/ pyXML] (which will be suppressed as of version 0.46), [http://numpy.scipy.org/ numpy] and [http://codespeak.net/lxml/ lxml]&lt;br /&gt;
&lt;br /&gt;
=== Binary packages ===&lt;br /&gt;
You can install a binary version compiled by us, downloadable with the development builds of Inkscape:&lt;br /&gt;
:http://inkscape.modevia.com/macosx-snap/?M=D&lt;br /&gt;
or in an official stable package for 0.44.PPC or later (their name contains &amp;quot;+python&amp;quot;). &lt;br /&gt;
You need to copy the folders for pyXML (_xmlplus), numpy (numpy) and lxml (*lxml*.egg) to /System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/site-packages (there is a link in the dmg on which the folders can be dropped).&lt;br /&gt;
&lt;br /&gt;
=== Compiling from source ===&lt;br /&gt;
If you prefer, you can install them from source, it is really easy.&lt;br /&gt;
&lt;br /&gt;
==== pyXML ====&lt;br /&gt;
# download the source code from [http://sourceforge.net/project/showfiles.php?group_id=6473 sourceforge]&lt;br /&gt;
# unpack the &amp;lt;code&amp;gt;.tar.gz&amp;lt;/code&amp;gt; file&lt;br /&gt;
# cd into the newly created directory&lt;br /&gt;
# set the variable &amp;lt;code&amp;gt;MACOSX_DEPLOYMENT_TARGET&amp;lt;/code&amp;gt; to version of your operating system (10.3 for Panther, 10.4 for Tiger, 10.5 for Leopard. It probably won't work on previous systems). In bash syntax this means typing:&amp;lt;pre&amp;gt;export MACOSX_DEPLOYMENT_TARGET=10.?&amp;lt;/pre&amp;gt;&lt;br /&gt;
# move the python files and build C extensions by just typing &amp;lt;pre&amp;gt;python setup.py build&amp;lt;/pre&amp;gt;&lt;br /&gt;
# install (the install is system wide so you need administrator rights)&amp;lt;pre&amp;gt;sudo python setup.py install&amp;lt;/pre&amp;gt;and type your password.&lt;br /&gt;
&lt;br /&gt;
==== numpy and lxml====&lt;br /&gt;
# download the source code from [http://sourceforge.net/project/showfiles.php?group_id=1369&amp;amp;package_id=175103 sourceforge numpy repository] or [http://codespeak.net/lxml/index.html#download lxml download section]&lt;br /&gt;
# unpack the &amp;lt;code&amp;gt;.tar.gz&amp;lt;/code&amp;gt; file&lt;br /&gt;
# cd into the newly created directory&lt;br /&gt;
# build C extensions and install (the install is system wide so you need administrator rights)&amp;lt;pre&amp;gt;sudo python setup.py install&amp;lt;/pre&amp;gt;and type your password.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
=== Apple Documentation ===&lt;br /&gt;
* [http://developer.apple.com/documentation/MacOSX/Conceptual/BPRuntimeConfig/BPRuntimeConfig.html Introduction to Runtime Configuration] Covers the Info.plist files, Preferences, Environment variables and has a list of the most important Properties that the Property List should contain.&lt;br /&gt;
&lt;br /&gt;
=== Packaging ===&lt;br /&gt;
&lt;br /&gt;
* [http://www.sveinbjorn.org/platypus Sveinbjorn Thordarson's Website] The author of Platypus, the Script Exec wrapper that launches the Inkscape binary.&lt;br /&gt;
* [http://freespace.ausgamers.com/2005/02/creating-os-x-application-bundles-step.html  Creating OS X application bundles step by step] Covers the bundle concepts, copying libraries into the bundle, editing libraries with the install_name_tool, the Info.plist file and adding an icon.&lt;br /&gt;
* [http://java.sun.com/developer/technicalArticles/JavaLP/JavaToMac3/ Bringing your Java Application to Mac OS X] I would regard this a little dated, and the detail is (unsurprisingly) Java-related, but it is a gentle introduction to the role of the .app bundle and give a most clear account of how to create one.&lt;br /&gt;
* The [http://gimp-app.sourceforge.net/gimp.app.howto.txt Gimp .app Howto] This is a very bare document, and would be of little help to you if you were new to making packages. Note that it seems to refer to a more mature Clipboard technique and Online help than we currently have; and we ought to move to parity in these areas.&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer Documentation]]&lt;/div&gt;</summary>
		<author><name>Jiho</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=CompilingMacOsX&amp;diff=16119</id>
		<title>CompilingMacOsX</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=CompilingMacOsX&amp;diff=16119"/>
		<updated>2007-08-20T07:28:16Z</updated>

		<summary type="html">&lt;p&gt;Jiho: /* Installing dependencies */ placed boost as a mandatory dependency&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Requirements ==&lt;br /&gt;
To compile Inkscape from source you will need:&lt;br /&gt;
*Mac OS X 10.4 (10.3 support is on the way, you are welcome to help if you still have a machine running 10.3)&lt;br /&gt;
*XCode 2.3 on OS X 10.4 (i.e. with gcc 4.0.1)&lt;br /&gt;
*Inkscape's source code. You can get the [http://www.inkscape.org/download.php official release source code], a [http://inkscape.modevia.com/svn-snap/?M=D SVN snapshot] or a copy of the [http://www.inkscape.org/svn.php?lang=en SVN repository].&lt;br /&gt;
*Inkscape's dependencies, for example glibmm, gtkmm, lmcs, boehm gc... You can use a package distribution system ([http://www.finkproject.org/ Fink] or [http://www.macports.org/ MacPorts], formerly known as [http://darwinports.opendarwin.org/ DarwinPorts]) or Inkscape all-in-one universal build script to install them. Inkscape requires a recent version of gtk, hence only MacPorts can be used at the moment. Once Fink updates gtk it should not be a problem to use it.&lt;br /&gt;
&lt;br /&gt;
== Compiling Inkscape using Mac/DarwinPorts ==&lt;br /&gt;
&lt;br /&gt;
=== Installing dependencies ===&lt;br /&gt;
You can use DarwinPorts to list Inkscape dependencies:&lt;br /&gt;
&amp;lt;pre&amp;gt;port deps inkscape&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some are mandatory and you can install them with the command:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port install boehmgc gtkmm gnome-vfs intltool libxslt lcms popt boost&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Others provide additional functionality to Inkscape:&lt;br /&gt;
* &amp;lt;code&amp;gt;aspell&amp;lt;/code&amp;gt; : check spelling of text elements [Note: I have never seen it working on OS X]&lt;br /&gt;
* &amp;lt;code&amp;gt;libgnomeprintui&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;loudmouth&amp;lt;/code&amp;gt; : jabber library used by InkBoard&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port install aspell libgnomeprintui loudmouth&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== For the impatient ===&lt;br /&gt;
There is an automated build script for Mac OS X included with Inkscape source code, in the directory packaging/macosx. It has builtin help:&lt;br /&gt;
&amp;lt;pre&amp;gt; cd packaging/macosx/&lt;br /&gt;
./osx-build.sh help&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Basically to configure, build, install and package Inkscape into a double clickable app bundle you just need to issue the command&lt;br /&gt;
&amp;lt;pre&amp;gt;./osx-build.sh conf build install -s package&amp;lt;/pre&amp;gt;&lt;br /&gt;
or more simply&lt;br /&gt;
&amp;lt;pre&amp;gt;./osx-build.sh c b i -s p&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Step by step instructions ===&lt;br /&gt;
If you want to know what you do or to understand how the build script works, please read the following paragraphs.&lt;br /&gt;
&lt;br /&gt;
==== Setting the build environment ====&lt;br /&gt;
DarwinPorts's hierarchy (/opt/local/) is not searched for libraries by default. Therefore, before the configuration starts, some environment variables need to be set. The environment variables are presented in bash syntax here. &lt;br /&gt;
&amp;lt;pre&amp;gt;export LIBPREFIX=&amp;quot;/opt/local&amp;quot;&lt;br /&gt;
#  automake seach path&lt;br /&gt;
export CPATH=&amp;quot;$LIBPREFIX/include&amp;quot;&lt;br /&gt;
#  configure search path&lt;br /&gt;
export CPPFLAGS=&amp;quot;-I$LIBPREFIX/include&amp;quot;&lt;br /&gt;
export LDFLAGS=&amp;quot;-L$LIBPREFIX/lib&amp;quot;&lt;br /&gt;
#  compiler arguments&lt;br /&gt;
export CFLAGS=&amp;quot;-O3 -Wall&amp;quot;&lt;br /&gt;
export CXXFLAGS=&amp;quot;$CFLAGS&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also use &amp;lt;code&amp;gt;[http://en.wikipedia.org/wiki/Ccache ccache]&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;sudo port install ccache&amp;lt;/code&amp;gt;) to speed up the compilation a bit. To do so, add compiler variables:&lt;br /&gt;
&amp;lt;pre&amp;gt;export CC=&amp;quot;ccache gcc&amp;quot;&lt;br /&gt;
export CXX=&amp;quot;ccache g++&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Configuring ====&lt;br /&gt;
If you compile Inkscape for the first time from an svn checkout you probably need to build the configure script. Navigate to Inkscape's source directory and run:&lt;br /&gt;
&amp;lt;pre&amp;gt;./autogen.sh&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then run configure with the options &amp;lt;code&amp;gt;--disable-static --enable-shared&amp;lt;/code&amp;gt; and  &amp;lt;code&amp;gt;--prefix&amp;lt;/code&amp;gt; which sets the directory where the build products are placed. It must be somewhere you have write access to.&lt;br /&gt;
&amp;lt;pre&amp;gt;./configure --disable-static --enable-shared --prefix=/path/to/build/products/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I you want to package Inkscape into a double-clickable &amp;lt;code&amp;gt;.app&amp;lt;/code&amp;gt; bundle in order to access it like a regular OS X application (you probably want to do it), you need to add the option &amp;lt;code&amp;gt;--enable-osxapp&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;./configure {...} --enable-osxapp&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you have loudmouth installed and you want to enable whiteboard functionality in Inkscape, add &amp;lt;code&amp;gt;--enable-inkboard&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Other configuration options can be set, check the list of options by issuing:&lt;br /&gt;
&amp;lt;pre&amp;gt;./configure --help&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Building and Installing ====&lt;br /&gt;
Just run:&lt;br /&gt;
&amp;lt;pre&amp;gt;make&lt;br /&gt;
make install&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Creating an .app bundle ====&lt;br /&gt;
Assuming that you have used the &amp;lt;code&amp;gt;--enable-osxapp&amp;lt;/code&amp;gt; option during &amp;lt;code&amp;gt;configure&amp;lt;/code&amp;gt;, navigate to Mac OS X packaging directory in Inkscape source code and use the automated script:&lt;br /&gt;
&amp;lt;pre&amp;gt;cd packaging/macosx&lt;br /&gt;
./osx-app.sh -s /path/to/install/prefix/bin/inkscape ../Info.plist macosx&amp;lt;/pre&amp;gt;&lt;br /&gt;
The script copies Inkscape binary and all its dependencies into the app bundle. The &amp;lt;code&amp;gt;-s&amp;lt;/code&amp;gt; options strips libraries from debugging information (the bundle is therefore smaller). Omit this option if you want to keep debugging info.&lt;br /&gt;
&lt;br /&gt;
==== Creating a disk image to distribute Inkscape ====&lt;br /&gt;
Inkscape.app created at the previous step is completely independant from the original location of the librairies and can therefore be distributed. It will only work on one platform though (PPC or Intel): the one you built it on.&lt;br /&gt;
The most widespread way of distributing applications on Mac OS X is via .dmg images. You can created a dmg image of Inkscape, with a nice background, with the script:&lt;br /&gt;
&amp;lt;pre&amp;gt;./osx-dmg.sh&amp;lt;/pre&amp;gt;&lt;br /&gt;
in the packaging directory for Mac OS X.&lt;br /&gt;
&lt;br /&gt;
== Compiling a universal binary of Inkscape using the all-in-one build script ==&lt;br /&gt;
&lt;br /&gt;
To build a universal build of Inkscape you also need to build Universal versions of all its dependencies (i.e., gtk+, cairo, pango, etc).  You can do this using the build-gtk.sh script from the Inkscape repository (it's in packaging/macosx/native-gtk/).&lt;br /&gt;
&lt;br /&gt;
This process is relatively untested, as it is only being used by Michael Wybrow  for official Inkscape release builds.  If you have any troubles using this process then please report them to Michael (mjwybrow on sourceforge).&lt;br /&gt;
&lt;br /&gt;
The process is:&lt;br /&gt;
        export PREFIX=/your/install/prefix&lt;br /&gt;
        export UNIVERSAL_BUILD=Yes&lt;br /&gt;
        ./build-gtk bootstrap&lt;br /&gt;
        ./build-gtk build inkscape&lt;br /&gt;
&lt;br /&gt;
== Compiling Inkscape as a native application (no X11) ==&lt;br /&gt;
&lt;br /&gt;
To build a native-GTK build of Inkscape, GTK and some of its dependencies must be built with special options. You can do this using the build-gtk.sh script from the Inkscape repository (it's in packaging/macosx/native-gtk/).  This is a modified version of the Imendio native build script, found with instructions on this page:&lt;br /&gt;
http://developer.imendio.com/projects/gtk-macosx/build-instructions&lt;br /&gt;
&lt;br /&gt;
This process is relatively untested. If you have any troubles using this process then please report them to Michael Wybrow (mjwybrow on sourceforge).&lt;br /&gt;
&lt;br /&gt;
The process is:&lt;br /&gt;
       export PREFIX=/your/install/prefix&lt;br /&gt;
       ./build-gtk bootstrap&lt;br /&gt;
       ./build-gtk build inkscape&lt;br /&gt;
&lt;br /&gt;
== Enabling python effects ==&lt;br /&gt;
Many &amp;quot;effects&amp;quot; in the Effect menu of Inkscape use python as a scripting language. Mac OS X ships with python but without some packages that Inkscape uses: [http://pyxml.sourceforge.net/ pyXML] and [http://numpy.scipy.org/ numpy].&lt;br /&gt;
&lt;br /&gt;
=== Binary packages ===&lt;br /&gt;
You can install a binary version compiled by us (thanks to krolco for the Intel version) downloadable with the developement builds of Inkscape:&lt;br /&gt;
:http://inkscape.modevia.com/macosx-snap/?M=D&lt;br /&gt;
or in an official stable package for 0.44.PPC or later (their name contains &amp;quot;+python&amp;quot;). &lt;br /&gt;
You need to copy the folders for pyXML (_xmlplus) and numpy (numpy) to /Library/Python/2.3/site-packages/ (there is a link in the dmg on which the folders can be droped).&lt;br /&gt;
&lt;br /&gt;
On OS X 10.3, the _xmlplus and numpy folders should be copied to /System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/site-packages.  This is a symlink back to /Library/Python/2.3 (note lack of &amp;quot;site-packages&amp;quot;!).&lt;br /&gt;
&lt;br /&gt;
=== Compiling from source ===&lt;br /&gt;
If you prefer or if you are on an Intel machine, you can install them from source, it is really easy.&lt;br /&gt;
&lt;br /&gt;
==== pyXML ====&lt;br /&gt;
# download the source code from [http://sourceforge.net/project/showfiles.php?group_id=6473 sourceforge]&lt;br /&gt;
# unpack the &amp;lt;code&amp;gt;.tar.gz&amp;lt;/code&amp;gt; file&lt;br /&gt;
# cd into the newly created directory&lt;br /&gt;
# set the variable &amp;lt;code&amp;gt;MACOSX_DEPLOYMENT_TARGET&amp;lt;/code&amp;gt; to version of your operating system (10.3 for Panther, 10.4 for Tiger, 10.5 for Leopard. It probably won't work on previous systems). In bash syntax this means typing:&amp;lt;pre&amp;gt;export MACOSX_DEPLOYMENT_TARGET=10.?&amp;lt;/pre&amp;gt;&lt;br /&gt;
# move the python files and build C extensions by just typing &amp;lt;pre&amp;gt;python setup.py build&amp;lt;/pre&amp;gt;&lt;br /&gt;
# install (the install is system wide so you need administrator rights)&amp;lt;pre&amp;gt;sudo python setup.py install&amp;lt;/pre&amp;gt;and type your password.&lt;br /&gt;
&lt;br /&gt;
==== numpy ====&lt;br /&gt;
# download the source code from [http://sourceforge.net/project/showfiles.php?group_id=1369&amp;amp;package_id=175103 sourceforge]&lt;br /&gt;
# unpack the &amp;lt;code&amp;gt;.tar.gz&amp;lt;/code&amp;gt; file&lt;br /&gt;
# cd into the newly created directory&lt;br /&gt;
# build C extensions and install (the install is system wide so you need administrator rights)&amp;lt;pre&amp;gt;sudo python setup.py install&amp;lt;/pre&amp;gt;and type your password.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
=== Apple Documentation ===&lt;br /&gt;
* [http://developer.apple.com/documentation/MacOSX/Conceptual/BPRuntimeConfig/BPRuntimeConfig.html Introduction to Runtime Configuration] Covers the Info.plist files, Preferences, Environment variables and has a list of the most important Properties that the Property List should contain.&lt;br /&gt;
&lt;br /&gt;
=== Packaging ===&lt;br /&gt;
&lt;br /&gt;
* [http://www.sveinbjorn.org/platypus Sveinbjorn Thordarson's Website] The author of Platypus, the Script Exec wrapper that launches the Inkscape binary.&lt;br /&gt;
* [http://freespace.ausgamers.com/2005/02/creating-os-x-application-bundles-step.html  Creating OS X application bundles step by step] Covers the bundle concepts, copying libraries into the bundle, editing libraries with the install_name_tool, the Info.plist file and adding an icon.&lt;br /&gt;
* [http://java.sun.com/developer/technicalArticles/JavaLP/JavaToMac3/ Bringing your Java Application to Mac OS X] I would regard this a little dated, and the detail is (unsurprisingly) Java-related, but it is a gentle introduction to the role of the .app bundle and give a most clear account of how to create one.&lt;br /&gt;
* The [http://gimp-app.sourceforge.net/gimp.app.howto.txt Gimp .app Howto] This is a very bare document, and would be of little help to you if you were new to making packages. Note that it seems to refer to a more mature Clipboard technique and Online help than we currently have; and we ought to move to parity in these areas.&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer Documentation]]&lt;/div&gt;</summary>
		<author><name>Jiho</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=CompilingMacOsX&amp;diff=14220</id>
		<title>CompilingMacOsX</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=CompilingMacOsX&amp;diff=14220"/>
		<updated>2007-04-17T16:24:49Z</updated>

		<summary type="html">&lt;p&gt;Jiho: /* Binary packages for PPC users */ modified to take in account that we have Intel version now&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Requirements ==&lt;br /&gt;
To compile Inkscape from source you will need:&lt;br /&gt;
*Mac OS X 10.4 (10.3 support is on the way, you are welcome to help if you still have a machine running 10.3)&lt;br /&gt;
*XCode 2.3 on OS X 10.4 (i.e. with gcc 4.0.1)&lt;br /&gt;
*Inkscape's source code. You can get the [http://www.inkscape.org/download.php official release source code], a [http://inkscape.modevia.com/svn-snap/?M=D SVN snapshot] or a copy of the [http://www.inkscape.org/svn.php?lang=en SVN repository].&lt;br /&gt;
*Inkscape's dependencies, for example glibmm, gtkmm, lmcs, boehm gc... You can use a package distribution system ([http://www.finkproject.org/ Fink] or [http://www.macports.org/ MacPorts], formerly known as [http://darwinports.opendarwin.org/ DarwinPorts]) or Inkscape all-in-one universal build script to install them. Inkscape requires a recent version of gtk, hence only MacPorts can be used at the moment. Once Fink updates gtk it should not be a problem to use it.&lt;br /&gt;
&lt;br /&gt;
== Compiling Inkscape using Mac/DarwinPorts ==&lt;br /&gt;
&lt;br /&gt;
=== Installing dependencies ===&lt;br /&gt;
You can use DarwinPorts to list Inkscape dependencies:&lt;br /&gt;
&amp;lt;pre&amp;gt;port deps inkscape&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some are mandatory and you can install them with the command:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port install boehmgc gtkmm gnome-vfs intltool libxslt lcms popt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Others provide additional functionality to Inkscape:&lt;br /&gt;
* &amp;lt;code&amp;gt;aspell&amp;lt;/code&amp;gt; : check spelling of text elements [Note: I have never seen it working on OS X]&lt;br /&gt;
* &amp;lt;code&amp;gt;boost&amp;lt;/code&amp;gt; : auto-organisation of connectors [Note: is boost still needed?]&lt;br /&gt;
* &amp;lt;code&amp;gt;libgnomeprintui&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;loudmouth&amp;lt;/code&amp;gt; : jabber library used by InkBoard&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port install aspell boost libgnomeprintui loudmouth&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== For the impatient ===&lt;br /&gt;
There is an automated build script for Mac OS X included with Inkscape source code, in the directory packaging/macosx. It has builtin help:&lt;br /&gt;
&amp;lt;pre&amp;gt; cd packaging/macosx/&lt;br /&gt;
./osx-build.sh help&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Basically to configure, build, install and package Inkscape into a double clickable app bundle you just need to issue the command&lt;br /&gt;
&amp;lt;pre&amp;gt;./osx-build.sh conf build install -s package&amp;lt;/pre&amp;gt;&lt;br /&gt;
or more simply&lt;br /&gt;
&amp;lt;pre&amp;gt;./osx-build.sh c b i -s p&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Step by step instructions ===&lt;br /&gt;
If you want to know what you do or to understand how the build script works, please read the following paragraphs.&lt;br /&gt;
&lt;br /&gt;
==== Setting the build environment ====&lt;br /&gt;
DarwinPorts's hierarchy (/opt/local/) is not searched for libraries by default. Therefore, before the configuration starts, some environment variables need to be set. The environment variables are presented in bash syntax here. &lt;br /&gt;
&amp;lt;pre&amp;gt;export LIBPREFIX=&amp;quot;/opt/local&amp;quot;&lt;br /&gt;
#  automake seach path&lt;br /&gt;
export CPATH=&amp;quot;$LIBPREFIX/include&amp;quot;&lt;br /&gt;
#  configure search path&lt;br /&gt;
export CPPFLAGS=&amp;quot;-I$LIBPREFIX/include&amp;quot;&lt;br /&gt;
export LDFLAGS=&amp;quot;-L$LIBPREFIX/lib&amp;quot;&lt;br /&gt;
#  compiler arguments&lt;br /&gt;
export CFLAGS=&amp;quot;-O3 -Wall&amp;quot;&lt;br /&gt;
export CXXFLAGS=&amp;quot;$CFLAGS&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also use &amp;lt;code&amp;gt;[http://en.wikipedia.org/wiki/Ccache ccache]&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;sudo port install ccache&amp;lt;/code&amp;gt;) to speed up the compilation a bit. To do so, add compiler variables:&lt;br /&gt;
&amp;lt;pre&amp;gt;export CC=&amp;quot;ccache gcc&amp;quot;&lt;br /&gt;
export CXX=&amp;quot;ccache g++&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Configuring ====&lt;br /&gt;
If you compile Inkscape for the first time from an svn checkout you probably need to build the configure script. Navigate to Inkscape's source directory and run:&lt;br /&gt;
&amp;lt;pre&amp;gt;./autogen.sh&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then run configure with the options &amp;lt;code&amp;gt;--disable-static --enable-shared&amp;lt;/code&amp;gt; and  &amp;lt;code&amp;gt;--prefix&amp;lt;/code&amp;gt; which sets the directory where the build products are placed. It must be somewhere you have write access to.&lt;br /&gt;
&amp;lt;pre&amp;gt;./configure --disable-static --enable-shared --prefix=/path/to/build/products/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I you want to package Inkscape into a double-clickable &amp;lt;code&amp;gt;.app&amp;lt;/code&amp;gt; bundle in order to access it like a regular OS X application (you probably want to do it), you need to add the option &amp;lt;code&amp;gt;--enable-osxapp&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;./configure {...} --enable-osxapp&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you have loudmouth installed and you want to enable whiteboard functionality in Inkscape, add &amp;lt;code&amp;gt;--enable-inkboard&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Other configuration options can be set, check the list of options by issuing:&lt;br /&gt;
&amp;lt;pre&amp;gt;./configure --help&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Building and Installing ====&lt;br /&gt;
Just run:&lt;br /&gt;
&amp;lt;pre&amp;gt;make&lt;br /&gt;
make install&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Creating an .app bundle ====&lt;br /&gt;
Assuming that you have used the &amp;lt;code&amp;gt;--enable-osxapp&amp;lt;/code&amp;gt; option during &amp;lt;code&amp;gt;configure&amp;lt;/code&amp;gt;, navigate to Mac OS X packaging directory in Inkscape source code and use the automated script:&lt;br /&gt;
&amp;lt;pre&amp;gt;cd packaging/macosx&lt;br /&gt;
./osx-app.sh -s /path/to/install/prefix/bin/inkscape ../Info.plist macosx&amp;lt;/pre&amp;gt;&lt;br /&gt;
The script copies Inkscape binary and all its dependencies into the app bundle. The &amp;lt;code&amp;gt;-s&amp;lt;/code&amp;gt; options strips libraries from debugging information (the bundle is therefore smaller). Omit this option if you want to keep debugging info.&lt;br /&gt;
&lt;br /&gt;
==== Creating a disk image to distribute Inkscape ====&lt;br /&gt;
Inkscape.app created at the previous step is completely independant from the original location of the librairies and can therefore be distributed. It will only work on one platform though (PPC or Intel): the one you built it on.&lt;br /&gt;
The most widespread way of distributing applications on Mac OS X is via .dmg images. You can created a dmg image of Inkscape, with a nice background, with the script:&lt;br /&gt;
&amp;lt;pre&amp;gt;./osx-dmg.sh&amp;lt;/pre&amp;gt;&lt;br /&gt;
in the packaging directory for Mac OS X.&lt;br /&gt;
&lt;br /&gt;
== Compiling a universal binary of Inkscape using the all-in-one build script ==&lt;br /&gt;
Michael's text to go here&lt;br /&gt;
&lt;br /&gt;
== Compiling Inkscape as a native application (no X11) ==&lt;br /&gt;
Derek Hinchliffe's text to go here&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Enabling python effects ==&lt;br /&gt;
Many &amp;quot;effects&amp;quot; in the Effect menu of Inkscape use python as a scripting language. Mac OS X ships with python but without some packages that Inkscape uses: [http://pyxml.sourceforge.net/ pyXML] and [http://numpy.scipy.org/ numpy].&lt;br /&gt;
&lt;br /&gt;
=== Binary packages ===&lt;br /&gt;
You can install a binary version compiled by us (thanks to krolco for the Intel version) downloadable with the developement builds of Inkscape:&lt;br /&gt;
:http://inkscape.modevia.com/macosx-snap/?M=D&lt;br /&gt;
or in an official stable package for 0.44.PPC or later (their name contains &amp;quot;+python&amp;quot;). &lt;br /&gt;
You need to copy the folders for pyXML (_xmlplus) and numpy (numpy) to /Library/Python/2.3/site-packages/ (there is a link in the dmg on which the folders can be droped).&lt;br /&gt;
&lt;br /&gt;
=== Compiling from source ===&lt;br /&gt;
If you prefer or if you are on an Intel machine, you can install them from source, it is really easy.&lt;br /&gt;
&lt;br /&gt;
==== pyXML ====&lt;br /&gt;
# download the source code from [http://sourceforge.net/project/showfiles.php?group_id=6473 sourceforge]&lt;br /&gt;
# unpack the &amp;lt;code&amp;gt;.tar.gz&amp;lt;/code&amp;gt; file&lt;br /&gt;
# cd into the newly created directory&lt;br /&gt;
# set the variable &amp;lt;code&amp;gt;MACOSX_DEPLOYMENT_TARGET&amp;lt;/code&amp;gt; to version of your operating system (10.3 for Panther, 10.4 for Tiger, 10.5 for Leopard. It probably won't work on previous systems). In bash syntax this means typing:&amp;lt;pre&amp;gt;export MACOSX_DEPLOYMENT_TARGET=10.?&amp;lt;/pre&amp;gt;&lt;br /&gt;
# move the python files and build C extensions by just typing &amp;lt;pre&amp;gt;python setup.py build&amp;lt;/pre&amp;gt;&lt;br /&gt;
# install (the install is system wide so you need administrator rights)&amp;lt;pre&amp;gt;sudo python setup.py install&amp;lt;/pre&amp;gt;and type your password.&lt;br /&gt;
&lt;br /&gt;
==== numpy ====&lt;br /&gt;
# download the source code from [http://sourceforge.net/project/showfiles.php?group_id=1369&amp;amp;package_id=175103 sourceforge]&lt;br /&gt;
# unpack the &amp;lt;code&amp;gt;.tar.gz&amp;lt;/code&amp;gt; file&lt;br /&gt;
# cd into the newly created directory&lt;br /&gt;
# build C extensions and install (the install is system wide so you need administrator rights)&amp;lt;pre&amp;gt;sudo python setup.py install&amp;lt;/pre&amp;gt;and type your password.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
=== Apple Documentation ===&lt;br /&gt;
* [http://developer.apple.com/documentation/MacOSX/Conceptual/BPRuntimeConfig/BPRuntimeConfig.html Introduction to Runtime Configuration] Covers the Info.plist files, Preferences, Environment variables and has a list of the most important Properties that the Property List should contain.&lt;br /&gt;
&lt;br /&gt;
=== Packaging ===&lt;br /&gt;
&lt;br /&gt;
* [http://www.sveinbjorn.org/platypus Sveinbjorn Thordarson's Website] The author of Platypus, the Script Exec wrapper that launches the Inkscape binary.&lt;br /&gt;
* [http://freespace.ausgamers.com/2005/02/creating-os-x-application-bundles-step.html  Creating OS X application bundles step by step] Covers the bundle concepts, copying libraries into the bundle, editing libraries with the install_name_tool, the Info.plist file and adding an icon.&lt;br /&gt;
* [http://java.sun.com/developer/technicalArticles/JavaLP/JavaToMac3/ Bringing your Java Application to Mac OS X] I would regard this a little dated, and the detail is (unsurprisingly) Java-related, but it is a gentle introduction to the role of the .app bundle and give a most clear account of how to create one.&lt;br /&gt;
* The [http://gimp-app.sourceforge.net/gimp.app.howto.txt Gimp .app Howto] This is a very bare document, and would be of little help to you if you were new to making packages. Note that it seems to refer to a more mature Clipboard technique and Online help than we currently have; and we ought to move to parity in these areas.&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer Documentation]]&lt;/div&gt;</summary>
		<author><name>Jiho</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=CompilingMacOsX&amp;diff=14023</id>
		<title>CompilingMacOsX</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=CompilingMacOsX&amp;diff=14023"/>
		<updated>2007-03-23T22:48:08Z</updated>

		<summary type="html">&lt;p&gt;Jiho: /* numpy */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Requirements ==&lt;br /&gt;
To compile Inkscape from source you will need:&lt;br /&gt;
*Mac OS X 10.4 (10.3 support is on the way, you are welcome to help if you still have a machine running 10.3)&lt;br /&gt;
*XCode 2.3 on OS X 10.4 (i.e. with gcc 4.0.1)&lt;br /&gt;
*Inkscape's source code. You can get the [http://www.inkscape.org/download.php official release source code], a [http://inkscape.modevia.com/svn-snap/?M=D SVN snapshot] or a copy of the [http://www.inkscape.org/svn.php?lang=en SVN repository].&lt;br /&gt;
*Inkscape's dependencies, for example glibmm, gtkmm, lmcs, boehm gc... You can use a package distribution system ([http://www.finkproject.org/ Fink] or [http://www.macports.org/ MacPorts], formerly known as [http://darwinports.opendarwin.org/ DarwinPorts]) or Inkscape all-in-one universal build script to install them. Inkscape requires a recent version of gtk, hence only MacPorts can be used at the moment. Once Fink updates gtk it should not be a problem to use it.&lt;br /&gt;
&lt;br /&gt;
== Compiling Inkscape using Mac/DarwinPorts ==&lt;br /&gt;
&lt;br /&gt;
=== Installing dependencies ===&lt;br /&gt;
You can use DarwinPorts to list Inkscape dependencies:&lt;br /&gt;
&amp;lt;pre&amp;gt;port deps inkscape&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some are mandatory and you can install them with the command:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port install boehmgc gtkmm gnome-vfs intltool libxslt lcms popt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Others provide additional functionality to Inkscape:&lt;br /&gt;
* &amp;lt;code&amp;gt;aspell&amp;lt;/code&amp;gt; : check spelling of text elements [Note: I have never seen it working on OS X]&lt;br /&gt;
* &amp;lt;code&amp;gt;boost&amp;lt;/code&amp;gt; : auto-organisation of connectors [Note: is boost still needed?]&lt;br /&gt;
* &amp;lt;code&amp;gt;libgnomeprintui&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;loudmouth&amp;lt;/code&amp;gt; : jabber library used by InkBoard&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port install aspell boost libgnomeprintui loudmouth&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== For the impatient ===&lt;br /&gt;
There is an automated build script for Mac OS X included with Inkscape source code, in the directory packaging/macosx. It has builtin help:&lt;br /&gt;
&amp;lt;pre&amp;gt; cd packaging/macosx/&lt;br /&gt;
./osx-build.sh help&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Basically to configure, build, install and package Inkscape into a double clickable app bundle you just need to issue the command&lt;br /&gt;
&amp;lt;pre&amp;gt;./osx-build.sh conf build install -s package&amp;lt;/pre&amp;gt;&lt;br /&gt;
or more simply&lt;br /&gt;
&amp;lt;pre&amp;gt;./osx-build.sh c b i -s p&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Step by step instructions ===&lt;br /&gt;
If you want to know what you do or to understand how the build script works, please read the following paragraphs.&lt;br /&gt;
&lt;br /&gt;
==== Setting the build environment ====&lt;br /&gt;
DarwinPorts's hierarchy (/opt/local/) is not searched for libraries by default. Therefore, before the configuration starts, some environment variables need to be set. The environment variables are presented in bash syntax here. &lt;br /&gt;
&amp;lt;pre&amp;gt;export LIBPREFIX=&amp;quot;/opt/local&amp;quot;&lt;br /&gt;
#  automake seach path&lt;br /&gt;
export CPATH=&amp;quot;$LIBPREFIX/include&amp;quot;&lt;br /&gt;
#  configure search path&lt;br /&gt;
export CPPFLAGS=&amp;quot;-I$LIBPREFIX/include&amp;quot;&lt;br /&gt;
export LDFLAGS=&amp;quot;-L$LIBPREFIX/lib&amp;quot;&lt;br /&gt;
#  compiler arguments&lt;br /&gt;
export CFLAGS=&amp;quot;-O3 -Wall&amp;quot;&lt;br /&gt;
export CXXFLAGS=&amp;quot;$CFLAGS&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also use &amp;lt;code&amp;gt;[http://en.wikipedia.org/wiki/Ccache ccache]&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;sudo port install ccache&amp;lt;/code&amp;gt;) to speed up the compilation a bit. To do so, add compiler variables:&lt;br /&gt;
&amp;lt;pre&amp;gt;export CC=&amp;quot;ccache gcc&amp;quot;&lt;br /&gt;
export CXX=&amp;quot;ccache g++&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Configuring ====&lt;br /&gt;
If you compile Inkscape for the first time from an svn checkout you probably need to build the configure script. Navigate to Inkscape's source directory and run:&lt;br /&gt;
&amp;lt;pre&amp;gt;./autogen.sh&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then run configure with the options &amp;lt;code&amp;gt;--disable-static --enable-shared&amp;lt;/code&amp;gt; and  &amp;lt;code&amp;gt;--prefix&amp;lt;/code&amp;gt; which sets the directory where the build products are placed. It must be somewhere you have write access to.&lt;br /&gt;
&amp;lt;pre&amp;gt;./configure --disable-static --enable-shared --prefix=/path/to/build/products/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I you want to package Inkscape into a double-clickable &amp;lt;code&amp;gt;.app&amp;lt;/code&amp;gt; bundle in order to access it like a regular OS X application (you probably want to do it), you need to add the option &amp;lt;code&amp;gt;--enable-osxapp&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;./configure {...} --enable-osxapp&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you have loudmouth installed and you want to enable whiteboard functionality in Inkscape, add &amp;lt;code&amp;gt;--enable-inkboard&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Other configuration options can be set, check the list of options by issuing:&lt;br /&gt;
&amp;lt;pre&amp;gt;./configure --help&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Building and Installing ====&lt;br /&gt;
Just run:&lt;br /&gt;
&amp;lt;pre&amp;gt;make&lt;br /&gt;
make install&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Creating an .app bundle ====&lt;br /&gt;
Assuming that you have used the &amp;lt;code&amp;gt;--enable-osxapp&amp;lt;/code&amp;gt; option during &amp;lt;code&amp;gt;configure&amp;lt;/code&amp;gt;, navigate to Mac OS X packaging directory in Inkscape source code and use the automated script:&lt;br /&gt;
&amp;lt;pre&amp;gt;cd packaging/macosx&lt;br /&gt;
./osx-app.sh -s /path/to/install/prefix/bin/inkscape ../Info.plist macosx&amp;lt;/pre&amp;gt;&lt;br /&gt;
The script copies Inkscape binary and all its dependencies into the app bundle. The &amp;lt;code&amp;gt;-s&amp;lt;/code&amp;gt; options strips libraries from debugging information (the bundle is therefore smaller). Omit this option if you want to keep debugging info.&lt;br /&gt;
&lt;br /&gt;
==== Creating a disk image to distribute Inkscape ====&lt;br /&gt;
Inkscape.app created at the previous step is completely independant from the original location of the librairies and can therefore be distributed. It will only work on one platform though (PPC or Intel): the one you built it on.&lt;br /&gt;
The most widespread way of distributing applications on Mac OS X is via .dmg images. You can created a dmg image of Inkscape, with a nice background, with the script:&lt;br /&gt;
&amp;lt;pre&amp;gt;./osx-dmg.sh&amp;lt;/pre&amp;gt;&lt;br /&gt;
in the packaging directory for Mac OS X.&lt;br /&gt;
&lt;br /&gt;
== Compiling a universal binary of Inkscape using the all-in-one build script ==&lt;br /&gt;
Michael's text to go here&lt;br /&gt;
&lt;br /&gt;
== Compiling Inkscape as a native application (no X11) ==&lt;br /&gt;
Derek Hinchliffe's text to go here&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Enabling python effects ==&lt;br /&gt;
Many &amp;quot;effects&amp;quot; in the Effect menu of Inkscape use python as a scripting language. Mac OS X ships with python but without some packages that Inkscape uses: [http://pyxml.sourceforge.net/ pyXML] and [http://numpy.scipy.org/ numpy].&lt;br /&gt;
&lt;br /&gt;
=== Binary packages for PPC users ===&lt;br /&gt;
[Note: could someone do this for Intel users as well? you need to set your environment to use Python 2.3 from Apple]&lt;br /&gt;
If you are on a PPC machine, you can install a binary version downloadable with the developement builds of Inkscape:&lt;br /&gt;
:http://inkscape.modevia.com/macosx-snap/?M=D&lt;br /&gt;
or in an official stable package for 0.44 or later (their name contains &amp;quot;+python&amp;quot;). You need to copy them to /Library/Python/2.3/site-packages/ (there is usually a direct link in the dmg on which the folders can be droped).&lt;br /&gt;
&lt;br /&gt;
=== Compiling from source ===&lt;br /&gt;
If you prefer or if you are on an Intel machine, you can install them from source, it is really easy.&lt;br /&gt;
&lt;br /&gt;
==== pyXML ====&lt;br /&gt;
# download the source code from [http://sourceforge.net/project/showfiles.php?group_id=6473 sourceforge]&lt;br /&gt;
# unpack the &amp;lt;code&amp;gt;.tar.gz&amp;lt;/code&amp;gt; file&lt;br /&gt;
# cd into the newly created directory&lt;br /&gt;
# set the variable &amp;lt;code&amp;gt;MACOSX_DEPLOYMENT_TARGET&amp;lt;/code&amp;gt; to version of your operating system (10.3 for Panther, 10.4 for Tiger, 10.5 for Leopard. It probably won't work on previous systems). In bash syntax this means typing:&amp;lt;pre&amp;gt;export MACOSX_DEPLOYMENT_TARGET=10.?&amp;lt;/pre&amp;gt;&lt;br /&gt;
# move the python files and build C extensions by just typing &amp;lt;pre&amp;gt;python setup.py build&amp;lt;/pre&amp;gt;&lt;br /&gt;
# install (the install is system wide so you need administrator rights)&amp;lt;pre&amp;gt;sudo python setup.py install&amp;lt;/pre&amp;gt;and type your password.&lt;br /&gt;
&lt;br /&gt;
==== numpy ====&lt;br /&gt;
# download the source code from [http://sourceforge.net/project/showfiles.php?group_id=1369&amp;amp;package_id=175103 sourceforge]&lt;br /&gt;
# unpack the &amp;lt;code&amp;gt;.tar.gz&amp;lt;/code&amp;gt; file&lt;br /&gt;
# cd into the newly created directory&lt;br /&gt;
# build C extensions and install (the install is system wide so you need administrator rights)&amp;lt;pre&amp;gt;sudo python setup.py install&amp;lt;/pre&amp;gt;and type your password.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
=== Apple Documentation ===&lt;br /&gt;
* [http://developer.apple.com/documentation/MacOSX/Conceptual/BPRuntimeConfig/BPRuntimeConfig.html Introduction to Runtime Configuration] Covers the Info.plist files, Preferences, Environment variables and has a list of the most important Properties that the Property List should contain.&lt;br /&gt;
&lt;br /&gt;
=== Packaging ===&lt;br /&gt;
&lt;br /&gt;
* [http://www.sveinbjorn.org/platypus Sveinbjorn Thordarson's Website] The author of Platypus, the Script Exec wrapper that launches the Inkscape binary.&lt;br /&gt;
* [http://freespace.ausgamers.com/2005/02/creating-os-x-application-bundles-step.html  Creating OS X application bundles step by step] Covers the bundle concepts, copying libraries into the bundle, editing libraries with the install_name_tool, the Info.plist file and adding an icon.&lt;br /&gt;
* [http://java.sun.com/developer/technicalArticles/JavaLP/JavaToMac3/ Bringing your Java Application to Mac OS X] I would regard this a little dated, and the detail is (unsurprisingly) Java-related, but it is a gentle introduction to the role of the .app bundle and give a most clear account of how to create one.&lt;br /&gt;
* The [http://gimp-app.sourceforge.net/gimp.app.howto.txt Gimp .app Howto] This is a very bare document, and would be of little help to you if you were new to making packages. Note that it seems to refer to a more mature Clipboard technique and Online help than we currently have; and we ought to move to parity in these areas.&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer Documentation]]&lt;/div&gt;</summary>
		<author><name>Jiho</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=CompilingMacOsX&amp;diff=14022</id>
		<title>CompilingMacOsX</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=CompilingMacOsX&amp;diff=14022"/>
		<updated>2007-03-23T22:46:30Z</updated>

		<summary type="html">&lt;p&gt;Jiho: /* Creating an .app bundle */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Requirements ==&lt;br /&gt;
To compile Inkscape from source you will need:&lt;br /&gt;
*Mac OS X 10.4 (10.3 support is on the way, you are welcome to help if you still have a machine running 10.3)&lt;br /&gt;
*XCode 2.3 on OS X 10.4 (i.e. with gcc 4.0.1)&lt;br /&gt;
*Inkscape's source code. You can get the [http://www.inkscape.org/download.php official release source code], a [http://inkscape.modevia.com/svn-snap/?M=D SVN snapshot] or a copy of the [http://www.inkscape.org/svn.php?lang=en SVN repository].&lt;br /&gt;
*Inkscape's dependencies, for example glibmm, gtkmm, lmcs, boehm gc... You can use a package distribution system ([http://www.finkproject.org/ Fink] or [http://www.macports.org/ MacPorts], formerly known as [http://darwinports.opendarwin.org/ DarwinPorts]) or Inkscape all-in-one universal build script to install them. Inkscape requires a recent version of gtk, hence only MacPorts can be used at the moment. Once Fink updates gtk it should not be a problem to use it.&lt;br /&gt;
&lt;br /&gt;
== Compiling Inkscape using Mac/DarwinPorts ==&lt;br /&gt;
&lt;br /&gt;
=== Installing dependencies ===&lt;br /&gt;
You can use DarwinPorts to list Inkscape dependencies:&lt;br /&gt;
&amp;lt;pre&amp;gt;port deps inkscape&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some are mandatory and you can install them with the command:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port install boehmgc gtkmm gnome-vfs intltool libxslt lcms popt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Others provide additional functionality to Inkscape:&lt;br /&gt;
* &amp;lt;code&amp;gt;aspell&amp;lt;/code&amp;gt; : check spelling of text elements [Note: I have never seen it working on OS X]&lt;br /&gt;
* &amp;lt;code&amp;gt;boost&amp;lt;/code&amp;gt; : auto-organisation of connectors [Note: is boost still needed?]&lt;br /&gt;
* &amp;lt;code&amp;gt;libgnomeprintui&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;loudmouth&amp;lt;/code&amp;gt; : jabber library used by InkBoard&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port install aspell boost libgnomeprintui loudmouth&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== For the impatient ===&lt;br /&gt;
There is an automated build script for Mac OS X included with Inkscape source code, in the directory packaging/macosx. It has builtin help:&lt;br /&gt;
&amp;lt;pre&amp;gt; cd packaging/macosx/&lt;br /&gt;
./osx-build.sh help&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Basically to configure, build, install and package Inkscape into a double clickable app bundle you just need to issue the command&lt;br /&gt;
&amp;lt;pre&amp;gt;./osx-build.sh conf build install -s package&amp;lt;/pre&amp;gt;&lt;br /&gt;
or more simply&lt;br /&gt;
&amp;lt;pre&amp;gt;./osx-build.sh c b i -s p&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Step by step instructions ===&lt;br /&gt;
If you want to know what you do or to understand how the build script works, please read the following paragraphs.&lt;br /&gt;
&lt;br /&gt;
==== Setting the build environment ====&lt;br /&gt;
DarwinPorts's hierarchy (/opt/local/) is not searched for libraries by default. Therefore, before the configuration starts, some environment variables need to be set. The environment variables are presented in bash syntax here. &lt;br /&gt;
&amp;lt;pre&amp;gt;export LIBPREFIX=&amp;quot;/opt/local&amp;quot;&lt;br /&gt;
#  automake seach path&lt;br /&gt;
export CPATH=&amp;quot;$LIBPREFIX/include&amp;quot;&lt;br /&gt;
#  configure search path&lt;br /&gt;
export CPPFLAGS=&amp;quot;-I$LIBPREFIX/include&amp;quot;&lt;br /&gt;
export LDFLAGS=&amp;quot;-L$LIBPREFIX/lib&amp;quot;&lt;br /&gt;
#  compiler arguments&lt;br /&gt;
export CFLAGS=&amp;quot;-O3 -Wall&amp;quot;&lt;br /&gt;
export CXXFLAGS=&amp;quot;$CFLAGS&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also use &amp;lt;code&amp;gt;[http://en.wikipedia.org/wiki/Ccache ccache]&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;sudo port install ccache&amp;lt;/code&amp;gt;) to speed up the compilation a bit. To do so, add compiler variables:&lt;br /&gt;
&amp;lt;pre&amp;gt;export CC=&amp;quot;ccache gcc&amp;quot;&lt;br /&gt;
export CXX=&amp;quot;ccache g++&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Configuring ====&lt;br /&gt;
If you compile Inkscape for the first time from an svn checkout you probably need to build the configure script. Navigate to Inkscape's source directory and run:&lt;br /&gt;
&amp;lt;pre&amp;gt;./autogen.sh&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then run configure with the options &amp;lt;code&amp;gt;--disable-static --enable-shared&amp;lt;/code&amp;gt; and  &amp;lt;code&amp;gt;--prefix&amp;lt;/code&amp;gt; which sets the directory where the build products are placed. It must be somewhere you have write access to.&lt;br /&gt;
&amp;lt;pre&amp;gt;./configure --disable-static --enable-shared --prefix=/path/to/build/products/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I you want to package Inkscape into a double-clickable &amp;lt;code&amp;gt;.app&amp;lt;/code&amp;gt; bundle in order to access it like a regular OS X application (you probably want to do it), you need to add the option &amp;lt;code&amp;gt;--enable-osxapp&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;./configure {...} --enable-osxapp&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you have loudmouth installed and you want to enable whiteboard functionality in Inkscape, add &amp;lt;code&amp;gt;--enable-inkboard&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Other configuration options can be set, check the list of options by issuing:&lt;br /&gt;
&amp;lt;pre&amp;gt;./configure --help&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Building and Installing ====&lt;br /&gt;
Just run:&lt;br /&gt;
&amp;lt;pre&amp;gt;make&lt;br /&gt;
make install&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Creating an .app bundle ====&lt;br /&gt;
Assuming that you have used the &amp;lt;code&amp;gt;--enable-osxapp&amp;lt;/code&amp;gt; option during &amp;lt;code&amp;gt;configure&amp;lt;/code&amp;gt;, navigate to Mac OS X packaging directory in Inkscape source code and use the automated script:&lt;br /&gt;
&amp;lt;pre&amp;gt;cd packaging/macosx&lt;br /&gt;
./osx-app.sh -s /path/to/install/prefix/bin/inkscape ../Info.plist macosx&amp;lt;/pre&amp;gt;&lt;br /&gt;
The script copies Inkscape binary and all its dependencies into the app bundle. The &amp;lt;code&amp;gt;-s&amp;lt;/code&amp;gt; options strips libraries from debugging information (the bundle is therefore smaller). Omit this option if you want to keep debugging info.&lt;br /&gt;
&lt;br /&gt;
==== Creating a disk image to distribute Inkscape ====&lt;br /&gt;
Inkscape.app created at the previous step is completely independant from the original location of the librairies and can therefore be distributed. It will only work on one platform though (PPC or Intel): the one you built it on.&lt;br /&gt;
The most widespread way of distributing applications on Mac OS X is via .dmg images. You can created a dmg image of Inkscape, with a nice background, with the script:&lt;br /&gt;
&amp;lt;pre&amp;gt;./osx-dmg.sh&amp;lt;/pre&amp;gt;&lt;br /&gt;
in the packaging directory for Mac OS X.&lt;br /&gt;
&lt;br /&gt;
== Compiling a universal binary of Inkscape using the all-in-one build script ==&lt;br /&gt;
Michael's text to go here&lt;br /&gt;
&lt;br /&gt;
== Compiling Inkscape as a native application (no X11) ==&lt;br /&gt;
Derek Hinchliffe's text to go here&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Enabling python effects ==&lt;br /&gt;
Many &amp;quot;effects&amp;quot; in the Effect menu of Inkscape use python as a scripting language. Mac OS X ships with python but without some packages that Inkscape uses: [http://pyxml.sourceforge.net/ pyXML] and [http://numpy.scipy.org/ numpy].&lt;br /&gt;
&lt;br /&gt;
=== Binary packages for PPC users ===&lt;br /&gt;
[Note: could someone do this for Intel users as well? you need to set your environment to use Python 2.3 from Apple]&lt;br /&gt;
If you are on a PPC machine, you can install a binary version downloadable with the developement builds of Inkscape:&lt;br /&gt;
:http://inkscape.modevia.com/macosx-snap/?M=D&lt;br /&gt;
or in an official stable package for 0.44 or later (their name contains &amp;quot;+python&amp;quot;). You need to copy them to /Library/Python/2.3/site-packages/ (there is usually a direct link in the dmg on which the folders can be droped).&lt;br /&gt;
&lt;br /&gt;
=== Compiling from source ===&lt;br /&gt;
If you prefer or if you are on an Intel machine, you can install them from source, it is really easy.&lt;br /&gt;
&lt;br /&gt;
==== pyXML ====&lt;br /&gt;
# download the source code from [http://sourceforge.net/project/showfiles.php?group_id=6473 sourceforge]&lt;br /&gt;
# unpack the &amp;lt;code&amp;gt;.tar.gz&amp;lt;/code&amp;gt; file&lt;br /&gt;
# cd into the newly created directory&lt;br /&gt;
# set the variable &amp;lt;code&amp;gt;MACOSX_DEPLOYMENT_TARGET&amp;lt;/code&amp;gt; to version of your operating system (10.3 for Panther, 10.4 for Tiger, 10.5 for Leopard. It probably won't work on previous systems). In bash syntax this means typing:&amp;lt;pre&amp;gt;export MACOSX_DEPLOYMENT_TARGET=10.?&amp;lt;/pre&amp;gt;&lt;br /&gt;
# move the python files and build C extensions by just typing &amp;lt;pre&amp;gt;python setup.py build&amp;lt;/pre&amp;gt;&lt;br /&gt;
# install (the install is system wide so you need administrator rights)&amp;lt;pre&amp;gt;sudo python setup.py install&amp;lt;/pre&amp;gt;and type your password.&lt;br /&gt;
&lt;br /&gt;
==== numpy ====&lt;br /&gt;
# download the source code from [http://sourceforge.net/project/showfiles.php?group_id=1369&amp;amp;package_id=175103 sourceforge]&lt;br /&gt;
# unpack the &amp;lt;code&amp;gt;.tar.gz&amp;lt;/code&amp;gt; file&lt;br /&gt;
# cd into the newly created directory&lt;br /&gt;
# move the python files and build C extensions by just typing &amp;lt;pre&amp;gt;python setup.py build&amp;lt;/pre&amp;gt;&lt;br /&gt;
# install (the install is system wide so you need administrator rights)&amp;lt;pre&amp;gt;sudo python setup.py install&amp;lt;/pre&amp;gt;and type your password.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
=== Apple Documentation ===&lt;br /&gt;
* [http://developer.apple.com/documentation/MacOSX/Conceptual/BPRuntimeConfig/BPRuntimeConfig.html Introduction to Runtime Configuration] Covers the Info.plist files, Preferences, Environment variables and has a list of the most important Properties that the Property List should contain.&lt;br /&gt;
&lt;br /&gt;
=== Packaging ===&lt;br /&gt;
&lt;br /&gt;
* [http://www.sveinbjorn.org/platypus Sveinbjorn Thordarson's Website] The author of Platypus, the Script Exec wrapper that launches the Inkscape binary.&lt;br /&gt;
* [http://freespace.ausgamers.com/2005/02/creating-os-x-application-bundles-step.html  Creating OS X application bundles step by step] Covers the bundle concepts, copying libraries into the bundle, editing libraries with the install_name_tool, the Info.plist file and adding an icon.&lt;br /&gt;
* [http://java.sun.com/developer/technicalArticles/JavaLP/JavaToMac3/ Bringing your Java Application to Mac OS X] I would regard this a little dated, and the detail is (unsurprisingly) Java-related, but it is a gentle introduction to the role of the .app bundle and give a most clear account of how to create one.&lt;br /&gt;
* The [http://gimp-app.sourceforge.net/gimp.app.howto.txt Gimp .app Howto] This is a very bare document, and would be of little help to you if you were new to making packages. Note that it seems to refer to a more mature Clipboard technique and Online help than we currently have; and we ought to move to parity in these areas.&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer Documentation]]&lt;/div&gt;</summary>
		<author><name>Jiho</name></author>
	</entry>
</feed>