Frequently asked questions

From Inkscape Wiki
Revision as of 15:23, 13 June 2005 by (talk)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Frequently Asked Questions

Q: How did Inkscape start?

Inkscape was founded in 2003 by four Sodipodi developers, Bryce Harrington, MenTaLguY, Nathan Hurst, and Ted Gould, with the mission of creating a fully compliant SVG drawing tool written in C++ with a new, HIG-compliant interface and an open, community-oriented development process. Within several months the project had produced several releases, demonstrating a sequence of significant new features and improvements to the codebase and quickly established Inkscape as noteworthy Open Source project.

Q: Is Inkscape ready for regular users to use?

Yes, while it's far from being a replacement for commercialware, the codebase provides for a large portion of basic vector editing capabilities. We strive to follow Sodipodi's tradition of always keeping the codebase usable for real users, as we believe that a tight iteration cycle between users and developers will give best results.

Q: What are Inkscape's Development Goals?

Inkscape seeks to implement a complete SVG-compliant vector graphics editor. Uses of such an editor include a broad range - logos, vector artwork, technical diagraming, map making, and more.

Q: How are feature requests selected for implementing?

Many developers become involved because they wish to "scratch an itch", so of course if they wish to work on a particular feature, then by definition that one will receive implementational attention. This is the primary mechanism by which features get implemented.

Inkscape also strives to take user requests for features seriously, especially if they're easy to do or mesh with what one of the existing developers already wants to do, or if the user has helped the project in other ways.

If you have a feature that you'd really like to see implemented, but others aren't working on, the right thing to do is delve into the code and develop it yourself. We put great importance on keeping the development process open and straightforward with exactly this in mind.

Q: What does 'Inkscape' mean?

The name is made up of the two English words 'Ink' and 'Scape'. Ink is a common substance for drawings, and is used when the sketched work is ready to be permanently committed to paper, and thus evokes the idea that Inkscape is a ready for production work. A scape is a view of a large number of objects, such as an ocean-scape, and thus alludes to the object-oriented nature of vector imagery.

Q: What's the difference between Inkscape and Dia?

Dia is for technical diagrams like database charts, class diagrams, etc., whereas Inkscape is for vector drawing such as logos, posters, scalable icons, etc.

SVG is a useful format for creating diagrams, though, so we hope as Inkscape grows as a fully-featured SVG editor, it will also be useful for making attractive diagrams too. Several of us hope Inkscape will become a useful technical drawing tool and work on features with that goal in mind. However, Dia provides a number of useful capabilities such as support for UML, autogeneration of diagrams, etc. that are well beyond the scope of a general SVG editor.

Q: Is it possible to create webpages with it?

No, although a number of users have found it useful for doing webpage mockups or generating some look and feel imagery such as banners, logos, icons, etc.

SVG and xhtml are XML-based formats, and in theory can be used together within the same document, so it would not be out of scope for interested users or developers to explore this possibility further.

Q: Is this intended to replace Flash?

No, while SVG is often identified as a "Flash replacement", SVG has a huge range of other uses outside that of vector animation. Replacing Flash is not one of Inkscape's primary intents. If SVG can replace Flash, and Inkscape can help, that's great, but there's a lot more to SVG than web animation that is worth exploring.

Q: Will there be an Inkscape 1.00? What would it be like?

Assuming development continues steadily, we will inevitably hit 1.00, but no particular development event has been planned to coincide this release, although it will likely include a few congratulatory beers.

Q: Will Inkscape be part of the Gnome-Office?

Inkscape will need to mature a bit further before this can be considered. Specifically, better Bonobo support is needed, and the Gnome-Print subsystem needs to be tested more thoroughly.

Q: I'd prefer the interface look like......

Understandably, many users are accustomed to other existing programs such as Illustrator, Gimp, and the like, and could prefer that Inkscape follow them in design. The Inkscape developers are constantly on the look for better interface ideas, although a large motivation is to make the application follow the GNOME Human Interface Guidelines, which has a number of rules in how the interface is made. The Inkscape developers also seek advice and ideas from other GUI app designers, such as the GIMP crew, AbiWord, and Gnumeric; they've been at it longer and we view them as an excellent source of battle tested experience.

But please understand that the Inkscape interface will, at the end of the day, be the "Inkscape interface". We will find our own balance of compatibility with common drawing programs, wishes of our userbase, good workflow, creativity of our developers, and compliance with specs. It's unlikely that this balance will meet every user's wish, or achieve 100% compliance with the HIG, or include every developer's idea, and if it did it probably wouldn't be as good.  ;-)

Usually when we discuss interface look & feel needs, we arrive at the conclusion that really, it should be configurable so that each user can flip a few switches and gain an app that is most cozy to them. Hopefully we can evolve in that direction.

Q: What is the position on code sharing with other projects?

Yes, sharing of code libraries with other projects is highly desireable, provided the right conditions exist. A good candidate for a library will be mature, widely distributed, well documented, and actively maintained. It should not introduce massive dependency problems for end-users and should be stable, powerful, and lightweight. It should strive to do one thing, and do it well. Libraries that don't meet all the criteria will be considered on a case-by-case basis.

Q: Why the split from Sodipodi?

Mainly just differences in objectives and in development approach. Inkscape's objective is to be a fully compliant SVG editor, whereas for Sodipodi SVG is more a means-to-an-end of being a powerful vector illustration tool. Inkscape's development approach emphasizes open developer access to the codebase, as well as to use and contribute back to 3rd party libraries and standards such as HIG, CSS, etc. in preference to custom solutions.

For background, it may also be worth reviewing Lauris' <a href="">Sodipodi direction</a> post from Oct 2003, and his thoughts on SVG, licensing, and the value of splitting the project into two independent branches.

Q: I have hand-created SVG. Will everything be messed up, if I load and save it with Inkscape?

Inkscape strives to avoid changing the SVG just because it does not recognize some of the SVG elements, however it *does* make changes:

  • All objects will get unique "id" attributes. If already existing and unique, they will be preserved, otherwise one will be derived from node name.
  • Some sodipodi namespaced metadata will be added to the beginning of document.
  • If you change anything in gradient, given gradient will be moved to standardized place into <defs> node at the beginning of document and broken up into 2 linked gradients - one defining color vector, another one position.
  • Saving document as 'plain SVG' actually invokes exporter. All objects will be reconstructed from parsed data, but overall object hierarchy will be preserved.
  • Changing any style property forces reconstructing of the whole 'style' attribute.
  • The style of the SVG file will be changed to follow the formatting style hardcoded into Inkscape.

Q: Can Inkscape be used from the commandline?

Yes, indeed it can. For details refer to the manual page via man inkscape after you've installed it.

Q: How can I help?

Grab the code and start hacking on whatever draws your attention. Send in a patch when you're happy with it and ready share your efforts with others. We also need writers and translators for the user manual and interface i18n files.

We take contributions very seriously and follow the principle of "patch first, discuss later", so it is highly likely your efforts will appear in the development codebase swiftly. There are of course rules and standards that must be followed, but we try to keep them unsurprising and obvious.

Q: Are there non-coding ways to help?

Certainly! While there is certainly a lot of coding work to be done, there are also a lot of other non-programming tasks needed to make the project successful:

Bug wrangling and testing:

Identifying and characterizing bugs can help a HUGE amount by reducing the amount of development time required to fix them.

  • Find and <a href="/report_bugs.php">report bugs</a>. This is critical need for ensuring the quality of the code.
  • Review and verify reported bugs. Sometimes the bug reports don't have enough info, or are hard to reproduce. Try seeing if the bug occurs for you too, and add details to the description.
  • Performance Testing - Create SVG's that stress out Inkscape, and post them as test cases to the Inkscape bug tracker, with your time measurements.
  • Compatibility Testing. Compare the rendering of SVG's in Inkscape with other apps like Batik and Cairo, and report differences found (to both projects).
  • Bug prioritization. Bugs that are marked priority '5' are new bugs. Review them and set them to high/medium/low priority according to their severity. See <a href="">Updating Tracker Items</a> in wiki for details.

Helping fellow users

In addition to making a good drawing app, it's also extremely important to us to build a good community around it; you can help us achieve this goal directly, by helping other users. Above all, keep in mind that we want to maintain Inkscape's community as a nice, polite place so encourage good behavior through your own interactions with others in the group.

  • Write tutorials. If something isn't already documented in a tutorial, write up a description of how to use it.
  • Participate on inkscape-user@. Answer questions that pop up on the mailing list from other users. Also, share your tips and tricks, and demo new ways of using Inkscape for cool stuff.
  • Create clipart. You can upload it to the <a href=""></a> project.
  • Give Inkscape classes. Teach people local to you about using Inkscape. Or give presentations at local events, Linux group meetings, etc. about Inkscape (and other Open Source art tools.)

Development (no coding needed)

  • Translations. Information on how to create translations for the interface is available on the <a ref="/cgi-bin/">TranslationInformation</a> page in Wiki.
  • Design Icons and SVG themes. Create new icons for existing themes or start a new icon theme. Also see <a href="">http://librsvg.sourceforg</a>
  • Mockup new dialogs. Draw up ideas for improving or adding dialogs. These are handy to the UI developers for figuring out what to do.
  • Improve packaging. Figure out how to make the package for your operating system or Linux distribution install and work better. See <a href="/cgi-bin/">CreatingDists</a> in Wiki.
  • Add extensions. For file input/output, special features, etc. Inkscape is able to tie into external programs. Create new .inx files to hook these up for use in Inkscape. Also, if you're comfortable scripting in Perl, Python, etc. have a shot at improving the extensions, too!
  • Create templates. See the Inkscape share/templates directory.
  • Work in Wiki. Wiki is a great place for gathering development info but always needs updating, copyediting, and elaboration.
  • Plan future development. Review and help update the <a href="/cgi-bin/">Roadmap</a> in Wiki. Basically, talk with developers about what they're working on, planning to work on, or recently finished, and update the roadmap accordingly.

Spread the word - Inkscape PR

Increasing the size of the userbase is important (although for building the community we prefer quality over quantity so be careful to not go too overboard with evangelizing or the "hard sell". We want to work with other applications, rather than "killing" off other software.

  • Write Articles. Get articles published in various online (or even printed) magazines and blogs. Don't forget to include a link to Inkscape!
  • Create Screenshots. Especially for new features.
  • Create Examples. <a href="/screenshots/examples/">Examples</a> are useful for showcasing different ways Inkscape can be used. Create some screenshots and text, and submit to the web wranglers (via the inkscape-devel mailing list) to add to the site.
  • Work on the Website. Help on the website is ALWAYS appreciated. Knowledge of HTML is required; PHP know-how is helpful. Check out the website code from CVS and send patches, or request direct CVS and shell access for doing on-going work.
  • Give presentations. Give talks at expos, symposia, and other big events about Inkscape. Be sure to announce it on a inkscape mailing list so we can post it to the Inkscape website.
  • Recruit more developers. Find people with an interest in doing coding, and encourage them to work on Inkscape.

Q: What's a good way to get familiar with the code?

In the Documentation section of the website you can find some high level diagrams, and links to other documentation that's been produced such as the man page. Historically, this codebase has not been kept well documented so expect to find many areas where the only recourse is to work through the code itself. However, we place importance on working to change this, and to flesh out the documentation further as we go.

Some developers have found that testing patches is a good way to quickly get exposure to the code, as you see how other developers have approached making changes to the codebase. Other developers like to pick an interesting feature request (or perhaps a feature wish of their own) and focus on figuring out how to implement it. Occasionally we also have large scale grunt-work type changes that need to be applied to the codebase, and these can be easy ways to provide significant contributions with very little experience.

Getting beyond initial exposure, to the next stage of understanding of the codebase, is challenging due to the lack of documentation, however with some determination it can be done. Some developers find that fixing a crash bug by tracing execution through the various subsystems, brings good insights into program flow. Sometimes it is educational to start from an interesting dialog box and tracing function calls in the code. Or perhaps to start with the SVG file loader and follow the flow into and through the parser. Other developers have found that writing inline comments into the code files to be highly useful in gaining understanding of a particular area, with the fringe benefit of making that bit of code easy for future developers to pick up, too.

Once you feel far enough up the learning curve, implementing features will firm up your experience and understanding of the codebase. Be certain to also write test cases and documentation, as this will be of great help to future developers and thus ensure the longevity of the codebase.

Q: What is the Linux command to download the code through CVS?

Directions are under the <a href="">CVS</a> link on the <a href="">inkscape sourceforge page</a>.

    cvs login
    cvs -z3 co inkscape

where you'd replace 'modulename' with 'inkscape'. Other modulenames you can check out include: 'experimental', our development "scratchpad" for working up prototypes; 'inkscape_web', which holds our website files; and 'inkscape_project', which holds config files and other project-level things.

Q: Inkscape and renderer X show my SVGs differently. What to do?

That depends on X. We accept <a href="">Batik</a> and <a href="">Adobe SVG plugin</a>

as authoritative SVG renderers because they are backed by some of the the authors of the SVG standard and really care about compliance. This may not be true for other renderers. So if you are having a problem with some renderer, please try the same file with either Batik or Adobe, or better yet, with both (they are free and cross-platform). If you still see a discrepancy with Inkscape rendering, we want to look into it. Please <a href="">submit a bug</a> and don't forget to attach the problem file to the bug report.

Q: I'm having problems with non-Latin filenames on Linux - help!

If your locale charset is not UTF-8, then you need to have this environment variable set:

    $  export G_BROKEN_FILENAMES

This is necessary for Glib filename conversion from the locale charset to UTF-8 (used in SVG) and back to work. See <a href="">this page</a> for more details.

Q: My math symbol or other special font is available on my computer, and shows correctly in the "Font" tab of the "Text and Font" dialog, but does not appear on the Inkscape canvas when I press "Apply". What should I do?

A: At this time, you must enter the character's Unicode codepoint as a hexadecimal number, when entering text directly on the canvas (unfortunately, as of Inkscape 0.40 this can not yet be done in the "Text" tab of the "Text and Font" dialog; if you cannot find a table of Unicode encodings on your computer, see the list at <a href=""></a>; for example, the integral sign character in the Math Symbol font is "222b"). After selecting the desired font in the "Font" tab of the "Text and Font" dialog, enter text on the canvas by choosing the "Create and Edit Text Objects" tool, and then typing "Ctrl+U". Enter the 4-character UTF-8 encoding in the "Unicode:" dialog box that appears at the bottom of the canvas. (Note: when saving your work in eps format, make sure that the option "convert text to path" is checked in the dialog box that appears, to preserve the symbol).

Q: How can sine curves be programmatically made in Inkscape?

A: You cannot do this in Inkscape, but can achieve it in GnuPlot, and then export as SVG:

    $ set terminal svg
    $ set output "/tmp/sin.svg"
    $ plot sin(x)
    $ exit

...and import /tmp/sin.svg. If you run into a problem with "invalid xml" or some such, perhaps try opening the file in vim and deleting the newline at the end of line 3 (Fitzsimmons reported this was required to make Inkscape load it).

To get at the underlying path, you'll need to ungroup the object. The structure is group ( group (plot, legend), grid, rest), so you'll want to ungroup twice.

Q: Does Inkscape support palettes? Where can I "store" and save colours for further use?

In CVS palettes are supported (so they will be in 0.42), using the same file format as GIMP. The name used in Inkscape for the feature is "swatches". When selecting this terminology, we surveyed a number of different programs and found that both "palettes" and "swatches" were commonly found. Since the former term had been used to describe other UI elements in Inkscape, the latter term was adopted for this feature.

Q: What is "Inkscape SVG" as opposed to "Plain SVG" when saving a document?

Inkscape has extended SVG a bit to add information used by the program. This is entirely permitted by the SVG standard, however since they're Inkscape-specific, most other SVG programs will not understand them. In theory, this should not cause any rendering problems; the other applications should safely ignore the extensions and display the document correctly. However, some programs may have trouble with the presence of the extensions, thus the "Plain SVG" option is provided to save the file with no extensions.

Q: How do I get extensions working?

The extensions mechanism allows you to use external programs and scripts written in any language to augment Inkscape's capabilities. The tricky part is satisfying all of the dependencies of the external programs. For help satisfying dependencies of individual extensions check GettingExtensionsWorking. If you are specifically interested in Effects go straight to GettingEffectsWorking.

=== Q: How can I print the tutorials on A4 paper? The tutorials look very nice, but printing them the usual way does not work, and I dont like reading on screen. ===

Currently this cannot be achieved from within Inkscape. However, all tutorials are available online at <a href=""></a> and can be easily printed.

Q: Where can I get a banner for Inkscape?

A: Here:

Q: Is there any way in SVG to specify a stroke that has a gradient applied across it, along its length?