Follow us on:

主页 » 资源 » FAQ

Contents

通用

什么是 Inkscape?

Inkscape 是一款开放源代码的矢量图像编辑器,类似 Adobe Illustrator、 Corel Draw、 Freehand 或者 Xara X。不同的是 Inkscape 使用 Scalable Vector Graphics(SVG)——一种开放的基于 W3C XML 的标准,作为默认的文档格式。

什么是矢量图?

相对于诸如 Photoshop 或者 Gimp 这样的光栅(位图)图像编辑器,Inkscape 使用矢量格式保存其图像信息。矢量图像是一种分辨率无关的对实际形状和对象的描述,以便你能看到图像。一个光栅化引擎使用这些信息并决定如何在任意分辨率或者缩放级别上绘制每一条线段或者曲线。

相反的,位图(光栅)图像总是绑定一个特定的分辨率并将图像保存为一个像素矩阵。

对于位图来说,矢量图像是一种补充,而不是替代。位图和矢量图有各自的用途,对于不同类型的事物具有各自的用处。位图更适合照片和某些类型的艺术品,而矢量图则更适合设计徽标、带有文字的图片、技术说明等。

请注意 Inkscape 也可以导出和显示位图。导入的位图将成为你的矢量图像中另一个对象,你可以像对待其它类型的对象那样处理它(移动、变形、剪裁等等)。

什么是“Scalable Vector Graphics(SVG)”?

Scalable Vector Graphics(SVG)是一款开放的,工业标准的,基于 XML 的矢量图像格式,由 W3C 开发。它正以迅猛的势头被业界广为接纳。今天,绝大部分矢量图像编辑器可以导入和导出 SVG,先进的浏览器(如 Firefox 和 Opera)可以无需使用插件直接现实它。对于 Internet Explorer,来自 Adobe 的SVG Viewer 插件可以显示 SVG。要了解更多,请阅读下面的#SVG 主题

Inkscape 已经适合常规用户使用了吗?

是的!尽管 Inkscape 还不具备领先的矢量图像编辑器的所有特性,最新的版本还是提供了大量基本的矢量图像编辑功能。在许多差别迥异的项目中(例如 Web 图像、技术图表、图标、创意图、徽标以及地图等领域)都有使用 Inkscape 的成功故事。举个例子,维基百科中成千上万的图片是使用 Inkscape 创建的,它还是 openclipart 中以及这里的内容中大多数也是使用 Inkscape 创建的。我们总是尝试让代码库对真正的用户有实用价值,我们相信开发人员和用户之间紧密的反馈循环将带来最好的结果。现在,你可以在你其他工具之外开始使用 Inkscape 了!

Inkscape 可以运行在哪些平台上?

我们为 Linux、 Windows 2000/2003/XP(安装文件)和 OSX(dmg 包)提供二进制包。我们知道 Inkscape 已经成功的用于 FreeBSD 以及其它 Unix-like 的操作系统上。不支持 Windows 98/ME,也许以后会。

Inkscape 项目是如何开始的?

Inkscape 最初是作为 Sodipodi 的一个分支开始的,那是 2003 年晚些时候,由四名 Sodopodi 开发人员发起:Bryce Harrington、 MenTaLguY、 Nathan Hurst 以及 Ted Gould。我们的使命是创建一个完全兼容 Scalable Vector Graphics(SVG) 的绘图工具,使用 C++ 以及新的更加用户友好的接口(Gnome HIG 兼容),以及构筑开放的,面向社区的开发进程。在短短数月这个项目发布了若干版本,展现了一系列意义重大的新特性和改进,并迅速奠定了 Inkscape 作为一款值得关注的开放源代码项目的基础。

“Inkscape”的意思是什么?

这个名字来源于两个英语单词“ink(墨水)”以及“scape(用于构词时表示景色)”。使用墨水的钢笔画是绘图的一种常见形态,通常用于绘制草图并能在纸上长期保存,暗指 Inkscape 可以用于生产工作中。景色指的是像风景、海景这样大量对象的一个视图,暗喻了矢量绘图的面向对象本质。

我可以使用它创建网页吗?

还不能,尽管许多用户将 Inkscape 用于网页建模或者生成诸如 banner、徽标、图标等等的 web 图形。

伴随这 web 浏览器(例如 Firefox 或者 Opera)对 SVG 的支持,直接使用 SVG 变得更具可能。使用 Firefox 1.5 或者更高版本,你可以打开任何 Inkscape SVG 文档,Firefox 会正确的显示它们。理论上说, SVG 和 XHTML 可以在同一个文档中一起使用,所以有兴趣的用户和开发人员可以在将来探讨这方面的可能性。

我可以使用它创建动画吗?

不能,Inkscape 还不支持 SVG 动画。它是用于二维图形的。当然你可以从 Inkscape 导出图像并用于 Flash 或者 GIF 动画中。从 2006 年二月, Blender 可以导入 SVG 数据并挤压或拉伸它们用于渲染三维图形。

会有 Inkscape 1.00 吗?它会是什么样子的呢?

如果我们持续不懈的开发,我们总会到达 1.00 的,但是现在还不到讨论这个日子的时候。

在到达具有里程碑意义的 1.00 之前,还需要富有成效的工作来确保不会遗漏一些零碎的细节,需要有决心来创建更加稳定的程序以及抹平那些犄角旮旯的不和谐的因素。这些都需要时间,直到这些都完成了,Inkscape 可以发布具有本质改进的版本了。

为 Inkscape 做贡献

我可以怎样帮助这个项目?

抓取源代码并开始根据你的需要修改。当你满意了你可以发送补丁来和大家分享你的工作成果。我们还需要用户文档的作者以及国际化(I18N)的翻译人员。

我们对待贡献的态度非常严肃,并遵循“先打补丁后讨论”的原则,所以你的工作很可能非常快的就出现在代码仓库中。当然还有许多规则和标准必须遵循,但是我们尝试让它们显而易见且不让人意外。

有没有不需要编码的途径可以帮助这个项目?

毫无疑问!当然有许多代码需要编写,但是为了让这个项目获得成功,还有大量的非编程的任务也需要完成:

讨论和测试 Bug

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

帮助新用户

In addition to making a good drawing application, 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.

开发(非代码编写)

Spread the word - Inkscape Marketing and Evangelism

Increasing the size of the userbase is important. The network effects of more interested users means more potential contributors and hopefully people saying nice things about us, and giving Inkscape word of mouth advertising which we believe is important. All our users and developers serve as ambassadors for Inkscape and others will judge Inkscape based on how well we behave. It is important that we all be polite and friendly and make Inkscape a project people like using and enjoy working on, all other evangelism follows on naturally from there. Generally though for building the community we prefer quality over quantity so be careful not to go too overboard with evangelizing or the "hard sell". We want to work with other applications, rather than "killing" off other software and such comments are counter productive. We need to manage expectations. We want users to be pleasantly surprised by how much Inkscape does, not disappointed that it does not match other programs feature for feature. Inkscape should be thought of as providing artists another way to be creative which complements their existing skills and tools.

我可从哪获得 Inkscape 的 banner?

Here's one:

http://www.inkscape.org/images/inkscape_80x15.png

Feel free to contribute your own banners or buttons for promoting Inkscape. The best ones will be linked here.

我该如何避免在邮件列表中触发口水战?

Inkscape prides itself on maintaining a friendly community, however we're all passionate and have different ideas, so sometimes discussions can get heated. However, when folks start taking firm positions on things it is easy for arguments to get out of hand and become unproductive, possibly even driving valuable contributors away from the project. So we place a high priority on striving to keep mailing list discussions civil.

Here are some tips for effectively communicating in the Inkscape community

1) Make your argument first and foremost without comparison. Really great features can stand on their own and are obviously great from the use cases users give. Most often comparisons won't strengthen your case. In fact they can often weaken your case because there is a built up resistance to this bandwagon sort of reasoning. Many people use Inkscape to escape from the software you want to compare it with. :-)

2) Don't assume that developers, users and industry professionals are mutually exclusive groups. Itch driven development means quite the opposite. Developers are users developing the software for their own uses. Some developers are industry professionals using Inkscape for their livelihood daily. This also means that arguments that start with generalizations about user wants and expectations have to struggle against the fact that the users are developing the software the way they want it.

3) Don't assume that resistance to your idea indicates rampant disregard for non-developer-users needs and wants. Many of the developers spend large amounts of time conversing with users in person, on IRC and on the mailing list. We know when issues are important because we can hear the consensus. As anecdotal evidence most of the features I have coded have been in direct response to the needs and requests of users who came with polite and persistent concerns.

Indeed, since Inkscape developers typically judge by user consensus, an effective way to prove a point is to show a pattern of demand for the change from a range of users, or to demonstrate how your change will satisfy a large number of user requests. (This isn't to say that what the unwashed masses ask for is always correct, but there are generally strong correlations.)

4) Street cred is earned, not demanded. :-) This is just a hard fact about community life. The project needs contributors to live and thrive, and everyone loves seeing new blood getting involved, and will bend over backwards to help. The more you involve yourself; the more you give of your own blood, sweat and tears, the more the community will respond to you. The great part is that simple contributions really do matter.

Remember Inkscape's slogan, "Patch first, discuss later." This is not just an aphorism; oftentimes the principles in an argument won't really understand all the factors until they can see the thing in practice, even if just a mockup or prototype. Presenting your ideas as a patch also bypasses the concern that others are going to have to put in the labor to implement the ideas.

5) Always remember we all share common goals. If nothing else, we all want to see Inkscape made better. When a discussion feels like it's starting to get hot, it's time for the arguers to seek areas of agreement, and focus on those.

使用 Inkscape

如何旋转对象?

Inkscape 旋转对象的方式与 CorelDraw,Xara 等程序相同,而不是采用单独的“旋转”工具。当你想要旋转一个对象的时候,先选择“选择”工具(箭头),单击对象,然后再单击一次,这时对象周围的控制柄会变成旋转控制柄,拖动它们就可以旋转对象了。你也可以使用变换对话框(Ctrl+Shift+M)来进行精确地旋转,或使用键盘上的“ [ ”键和“ ] ”键进行旋转。

如何改变文本的颜色?

文本与Inkscape中的对象并无不同,你可以使用任意颜色作为文本的填色或者笔廓。打开“填色与笔廓”对话框,设置不同的颜色或者复制其他的对象然后在文本上粘贴风格。这与在其他对象,如矩形对象上是一样的。此外,如果你在文本中使用 Shift+箭头或者鼠标拖拽选择了其中的部分文本,那么你对于文本的设置只会应用到你应经选择的文本文字上,而不是全部的文本文字。

如何在绘图中插入数学符号或其它特殊符号?

When editing text on canvas, press Ctrl+U, then type the Unicode code point of the symbol you need. A preview of the symbol is shown in the statusbar. When done, press Enter. A list of Unicode codes can be found at unicode.org; for example, the integral sign character is "222b". You must have a font installed on your system that has this character; otherwise what you'll see is a placeholder rectangle.

When editing text on the Text tab of the Text and Font dialog, you can use any GTK input modes that your GTK installation supports. Consult GTK documentation for details.

When saving your work in eps format, we recommend to set the option "convert text to path" in the export dialog box, to preserve the symbol.

如何使用 Inkscape 绘制正弦曲线?

In 0.43, Inkscape includes an extension called Function Plotter (before that it was called Wavy). It can be used to create sine curves or any other function graphs. Other software, such as Xfig, KiG, or KSEG can also be used to create complex curves and then export to SVG for use in Inkscape.

如何度量距离和角度?

Inkscape does not yet have a dedicated Measure tool. However, the Pen tool can be used in its stead. Switch to Pen (Shift+F6), click at one end of the segment you want to measure, and move the mouse (without clicking) to its other end. In the statusbar, you will see the distance and angle measurement. Then press Esc to cancel.

The angle is measured by default from 3 o'clock origin counterclockwise (the mathematical convention), but in Preferences you can switch this to using compass-like measurement (from 12 o'clock, clockwise).

Starting from 0.44 we also have the Measure Path extension that will measure the length of an arbitrary path.

Inkscape 支持调色板吗?我该在哪“保存”配色已备将来使用呢?

Starting from 0.42, palettes are supported using the same file format as the GNU Image Manipulation Program (GIMP Colour Palettes, .gpl). 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 term palettes had been already been used in Inkscape to describe a particular type of dialog windows, the term "swatches" was adopted to describe this feature.

如何让扩展工作?

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 Effect requirements; if you're on MacOSX, see the instructions at CompilingMacOsX#Enabling python effects.

如何打印教程?从 Inkscape 打印它们似乎不合适,而我又不想从屏幕上阅读教程。

All tutorials in all languages are available online in HTML at this page and can be easily printed from your browser.

在 Inkscape 中,我可以使用不同的设置来创建新的文档吗?

Yes. When you do File > New (Ctrl+N) or start a new Inkscape session, Inkscape loads the default template document which stores page format, grid and guide parameters, snapping and export settings, etc. It can even contain any pre-created objects. You can save any document as the default template by writing it to ~/.inkscape/templates/default.svg on Linux and [inkscape dir]/share/templates/default.svg on Windows. If you save it under any other name than default.svg in the same folder, it will appear in the File > New submenu but will not load automatically unless chosen.

有没有办法将渐变应用到一个笔划上并且能跟着笔划弯曲?

A stroke can be painted with a gradient, but that gradient will not bend with the stroke. It will remain linear or elliptic. If you meant something like this, then SVG can emulate such effects using SVG Filters which Inkscape does not yet support.

There are, however, a couple of workarounds. One is described here. The other is to use the Blend extension to create a blend between two curved paths painted with different colors or opacity levels; with enough intermediate steps, such a blend will look almost like an arbitrarily curved gradient.

我试着建立一个色彩平铺的副本,但是平铺不允许我改变颜色。

The original object from which you're cloning must have its fill or stroke unset (not removed, but unset!) for this to work. Use the "?" button in the Fill&stroke dialog to unset fill, or use the "Unset" command in the right-click menu of the selected style indicator in the statusbar. If the original is a group, only some of the objects in the group may have unset fill, and only these objects will change colors in the tiling.

我试着将一个透明度的渐变应用到一个对象上,但是整个对象消失了。

Note that per SVG rules, black color is opaque in a mask (i.e. it obscures the object under it); white color is transparent (the object shows through). What's more, the "no color" fill or full transparency is equivalent to "transparent black", i.e. (rather counterintuitively) also becomes opaque in a mask. So, if you want to make your object gradually masked out, create the masking gradient either from white to transparent, or from white to black. The detailed rules of SVG masks are defined in [1].

使用 Inkscape 导出的 PNG 有参差不齐的的边界/没有抗锯齿效果/有滑稽的背景。

This is a problem with whatever you use to view these PNG files, not with Inkscape. For example, Internet Explorer prior to version 7 cannot show PNG files with transparency properly. Use e.g. Firefox to view your PNGs. If you absolutely must support IE 6, you can't have transparent background in PNG; change it to opaque in Document Preferences and export the PNG file again.

If you want to open the exported PNG bitmaps in MS-Word, you will also have to change the alpha-opacity (in document-properties dialog) to full, and then export -- the result will be much better.

我有两个边界精确邻接的对象,但是在某些缩放级别上,还可以看到缝隙。

That's a known problem of our renderer (as well as many other renderers, for example Xara's). Antialiased display sometimes results in not-fully-opaque pixels along the boundary of two objects even if there's absolutely no gap between them. There are several ways to avoid this problem. If your boundary is horizontal or vertical, you can suppress antialiasing by pixel-snapping (see next question). Often, you can just union the two shapes so they become one and the seam disappears. If this is not possible, just add a small overlap to the abutting shapes. If this isn't possible either (for example, due to transparency of these objects), sometimes blurring can help: in Inkscape 0.45+, you can group the two objects and slightly blur the group to make the seam disappear.

如何禁用抗锯齿功能?

With the current renderer, it is not possible to completely get rid of antialiasing. However, it is possible to partially suppress it on export. Usually, antialiasing is unwelcome in horizontal and vertical lines which become "blurred". To work around this, make sure your horizontal/vertical edges are snapped on the pixel grid, and all strokes are a whole number of pixels wide. Then, export bitmap at the default 90dpi so that 1 px unit corresponds to 1 bitmap pixel. In the resulting bitmap, snapped color boundaries will be perfectly crisp.

Inkscape 可以从命令行调用吗?

Yes, Inkscape has a powerful command line interface and can be used in scripts for a variety of tasks, such as exporting and format conversions. For details, refer to the manual page (online, or via the Help > Command line options command, or by man inkscape on Unix).

我在 Windows 中,似乎命令行参数不能工作!

Actually, things like exporting or converting to plain SVG do work, they just do not output anything to the console. This is because Inkscape on Windows is a GUI application and is not allowed to have any console output. This means that query options (such as --query-x) will not work at all. But this can be fixed if you recompile Inkscape as a console application. See this page for general Windows compilation instructions; edit the file Makefile.mingw.common in the source tree's root directory and replace

-lgc -mwindows -lws2_32 -lintl

with

-lgc -mconsole -lws2_32 -lintl -lgdi32 -lcomdlg32

then recompile. This will give you an inkscape.exe which works exactly as it does on Linux with regard to command line parameters and console output. If you regularly use Inkscape's command line interface on Windows, please send a message to the inkscape-devel list and we may consider providing such a console executable in our official Inkscape Windows builds.

如何让 Alt+click 和 Alt+drag 能在 Linux 下工作?

Alt+click and Alt+drag are very useful Inkscape shortcuts ("select under" and "move selected" in Selector, "node sculpting" in Node tool). However, on Linux Alt+click and Alt+drag are often reserved by the window manager for manipulating the windows. You need to disable this function in your window manager so it becomes usable in Inkscape.

KDE

For example, in KDE this is done in Control Center > Desktop > Window Behavior > Window Actions.

XFCE4

Please read xfwm4.html

GNOME

Go to System > Preferences > Windows. You are presented with three options to move windows around: "Alt", "Ctrl" or "Super" (Windows logo key). Choose "Super".

在 Linux 中使用非拉丁字符的文件名出现问题

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

$  G_BROKEN_FILENAMES=1
$  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. Read more details.

如何让 Alt+click 和 Alt+drag 能在 Mac OS X 下工作?

If you find yourself unable to use Inkscape functions that require the ALT key (such as Node Sculpting) you will need to turn off the "Emulate three button mouse" under the Input Preferences for X11.

我工作在使用 xxx 操作系统的机器上,默认的语言是 yyy,但是我想 Inkscpae 的菜单使用 zzz(通常是英语),我该如何设置?

Linux
Fist type locale -a in the console
to find out, which locale settings are supported on your system and how they were written.
export LANGUAGE="C" in the commandline switches to the default language (English).
export LANGUAGE="de_DE.utf-8" changes the language to german. This command works only temporary. After a system restart the original locale is active. The
used locale has to be installed with inkscape on your computer (else, Inkscape falls back to the default language).
MacOSX
The official Mac OS X way is to provide .lproj files which enables applications to pick up the
preferred language
from the System Preferences dialog; however, this is probably some considerable
way into the future. It might be possible to set up a scheme involving langauge :: packs, otherwise the linux methods may work.
Windows
Easy way
Create a batch file in your inkscape installation directory. Call it inkscape.bat.
Add the lines (replace with your LANG setting)
@set LANG=de_DE
@start inkscape.exe
Save and double-click to use it.
Using System Settings: Either delete the yyy language files, or change the language by setting the LANGUAGE environment variable.
A. Deleting the yyy language files
Beware, this change the behaviour for all inkscape users on this machine
1. Locate the installation directory.
2. Enter the Inkscape\locale directory
3. Locate the directory with the two letter locale you don't want to use.
4. Rename (or remove) this directory to something like disable_de or x_es
5. Restart inkscape and the default English (en) locale will be used.
B. Setting the LANGUAGE environment variable
Probably this only works when you have administrator (or poweruser?) rights on your pc.
1. Go to the control panel, doubleclick on "System".
2. Select the "Advanced" tab, and press the "Environment variables" button.
3. You can either add the 'LANGUAGE' variable to the current user or to all users (system variables). Press the 'New' button and enter 'LANGUAGE' as the variable name, and 'C' as value if you want to select the default language (English) or e.g. 'de' if you want to set the language to german.

我在我的 Windows 中安装了新的字体,但是 Inkscpae 没有找到它。

This was a bug in versions of Inkscape up to 0.43, caused by using an obsolete font cache. This cache is stored in the file called .fonts.cache-1. This file may be in your Windows folder, or in your Temp folder, or in "My documents" folder, or in the folder listed in the $HOME environment variable. Use file search by name to locate this file. Then simply delete this file and restart Inkscape; now it will see the new fonts.

我已经在 OS X 10.4.x 上安装了 Inkscape,但是当我运行它时没有任何反应。

Under OS X 10.4.x, even on very fast machines, Inkscape versions prior to 0.44 could take a long time to start the very first time they were run. This was due to a fontconfig cache workaround that wasn't properly implemented by the launcher code. The problem has been fixed in 0.44 (though not in the prereleases 0-3).

在 Linux 上,Inkscape 崩溃了,返回“invalid pointer”信息

If your Inkscape crashes on start with the error message that looks like

*** glibc detected *** free(): invalid pointer: 0x086143b0 ***

this is caused by GCC versions incompatibility which affects C++ applications. Your Inkscape is compiled by a different version of GCC than the C++ libraries it uses. Recompile either Inkscape itself or its C++ libraries (libstdc++, libsigc++, libglibmm and libgtkmm) with the single GCC version and the problem will go away.

SVG 主题

Inkscape 的 SVG 文档是有效的 SVG 格式吗?

Yes. Inkscape does not yet support all features of SVG, but all files it generates are valid SVG (with the partial and temporary exception of flowed text, see below). All standard-conformant SVG renderers show them the same as in Inkscape. If they do not, it's a bug. If this bug is in Inkscape, we will fix it (especially if you help us by reporting it!).

关于流动文本的情况如何?

When flowed text support was added to Inkscape, it was conformant to the then-current unfinished draft of SVG 1.2 specification (and was always described as an experimental feature). Unfortunately, in further SVG 1.2 drafts, the W3C decided to change the way this feature is specified. Currently SVG 1.2 is still not finished, and as a result, very few SVG renderers currently implement either the old or the new syntax of SVG 1.2 flowed text. So, technically, Inkscape SVG files that use flowed text are not valid SVG 1.1, and usually cause problems (errors or just black boxes with no text).

However, due to the utility of this much-requested feature, we decided to leave it available to users. When the final SVG 1.2 specification is published, we will change our flowed text implementation to be fully conformant to it, and will provide a way to migrate the older flowed text objects to the new format.

Until that is done, however, you should not use flowed text in documents that you intend to use outside of Inkscape. Flowed text is created by clicking and dragging in the Text tool, while simple click creates plain SVG 1.1 text; so, if you don't really need the flowing aspect, just use click to position text cursor instead of dragging to create a frame. If however you really need flowed text, you will have to convert it to regular (non-flowed) text by the "Convert to text" command in the Text menu. This command fully preserves the appearance and formatting of your flowed text but makes it non-flowed and SVG 1.1-compliant.

什么?那么,是不是当保存文档时保存的是“Insscape SVG”而不是“Plain SVG”?

Inkscape SVG files use the Inkscape namespace to store some extra information used by the program. Other SVG programs will not understand these extensions, but this is OK because the extensions only affect how the document is edited, not how it looks. Extensions must not cause any rendering problems in SVG-compliant renderers. However, some non-compliant renderers may have trouble with the presence of the extensions, or you may want to save some space by dropping the Inkscape information (if you're not planning to edit the file in Inkscape again). This is what the "Plain SVG" option is provided for.

Inkscape 实现了哪些 SVG 特性?

The main parts of SVG that Inkscape does not support yet are filters (except Gaussian blur which is supported starting from 0.45), animation, and SVG fonts. The rest mostly works, though of course there are bugs that we're always fixing. For a comparison of Inkscape and other open source SVG tools on the W3C SVG test suite, look here.

我手工创建了 SVG。当我用 Inkscape 打开它在保存的时候,会不会所有东西都混到一块了?

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

There is ongoing work to allow Inkscape to better preserve hand-created SVG markup but it is a very difficult task requiring a lot of infrastructure work and will happen very gradually - but help is always appreciated.

Inkscape 和 X 渲染器显示我的 SVG 看起来不同。该怎么办?

That depends on X. We accept Batik and Adobe SVG plugin 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 submit a bug; don't forget to attach a sample of the problem file to the bug report, and ideally include screenshots too.

Inkscape 和其它程序

为什么从 Sodipodi 分离出来?

Inkscape started as a code fork of Sodipodi. The main reasons were 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 vector illustration tool. Inkscape's development approach emphasizes open developer access to the codebase, as well as using and contributing back to 3rd party libraries and standards such as HIG, CSS, etc. in preference to custom solutions. Reusing existing shared solutions helps developer to focus on the core work of Inkscape.

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

Inkscape 和 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. Ideally both Inkscape and Dia can share various bits of code infrastructure and third party libraries.

它有意于替换 Flash 吗?

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. (See also SMIL)

Inkscape 是 GIMP 或者 Photoshop 的替代品吗?

In most cases, no. They're used for two very different things. Inkscape is used for creating vector drawings, such as laying out a poster or creating a fancy logo, whereas bitmap editors are for working on raster images, such as touching up a photograph. In many projects, you would need to use both Inkscape and a bitmap editor (such as GIMP), for example, to add bitmap effects to an image exported from Inkscape.

However, currently bitmap editors are often used for common tasks they are not well equipped for, such as creating web page layouts, logos, or technical line art. In most cases, this is because users are not aware of the power (or even the existence) of the modern vector editors. Inkscape wants to amend this situation, and to raise a vector editor to the status of an essential desktop tool for everyone, rather than an exotic specialized tool that only professionals use.

Inkscape 会成为 Gnome-Office 的一部分吗?

Inkscape will need to mature a bit further before this can be considered. Specifically, better support for embedding (Bonobo) is needed, and the Gnome-Print subsystem needs to be tested more thoroughly (help very much appreciated here). If you can compile a recent version of Inkscape and help us with testing it would be very useful.

Inkscape 可以导入/导出哪些格式?

Inkscape natively supports opening only SVG and SVGZ (gzipped SVG) formats.

Inkscape can natively save as SVG, SVGZ, Postscript/EPS/EPSi, Adobe Illustrator (*.ai), LaTeX (*.tex), and POVRay (*.pov).

With the help of extensions, Inkscape can open/save as PDF, EPS, AI, Dia, Sketch and some others.

Inkscape can natively import most raster formats (JPG, PNG, GIF, etc.) as bitmap images, but it can only export PNG bitmaps.

See FileTypes for discussion about file formats that people would like to see supported, and third-party tools that can be used to convert files to or from SVG.

如何使用 Inkscape 处理 *.cdr (Corel Draw 矢量绘图文件)?我的图片在 *.cdr 文件中而我打算以 *.SVG 继续工作。

  1. Open CDR file Corel Draw. Save it as CGM file. It will save only vector graphics. It will not save bitmap graphics.
  2. Open CGM file in OpenOffice Impress. Copy to Open Office Draw and insert original JPG or another bitmap graphics. Save file as ODG And you can continue in Open Office Draw program.)
  3. Select all (CTRL+A)
  4. Export as SVG.
  5. Open SVG file in Inkscape and correct mistakes if they appear.

我从 Adobe Illustrator 导出了一个 SVG 文件,使用 Inkscape 编辑后再导入 AI,但是我的修改不见了!

That's because Adobe cheats. It creates a valid SVG, but apart from the SVG code it also writes to the file, in encoded binary form, the entire AI-format source file of the image. Inkscape, of course, edits the SVG part of the image and leaves the encoded binary untouched. But when you import the SVG file back to AI, it completely disregards the SVG code with its edits and reads directly from the encoded AI binary. Therefore, any SVG changes are lost. To work around it, in Inkscape open the XML Editor and remove the non-SVG elements (everything not with the svg: prefix in its name).

开发主题

Inkscape 的开发目标是什么?

Inkscape wants to be a complete SVG-compliant vector graphics editor. Apart from standards compliance, our primary goals are stability, performance, state of the art vector graphics features, and an efficient and innovative user interface.

Inkscape 使用哪个语言和工具创建?

The codebase Inkscape inherited from Sodipodi was C/Gtk based. There is an ongoing effort to convert the codebase to C++/Gtkmm. The ultimate goal is to simplify the code and make it more maintainable. We invite you to join us. Just don't mention Qt. :)

What is your position on code sharing with other projects?

Yes, sharing of code libraries with other projects is highly desirable, 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.

如何创建 Inkscpae 扩展?

You don't need to know much, if anything, about Inkscape internals to create a useful extension. Aaron Spike, the author of most Python extensions that come with Inkscape, wrote a helpful web page (including a series of tutorials) on creating extensions in Python (Perl and Ruby are also supported).

有什么好的办法来熟悉这些代码?

You can start with the Doxygen documentation. There you can find not only the usual Doxygen stuff but also different categorized views into the inkscape source.

In the Documentation section of the Inkscape 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.

代码库有多大?是如何组织的?

The latest statistics are available at this page. The code is somewhat modular, but less so than we would like. If you're interested in some specific part of the codebase, feel free to ask developers.

你们使用哪个渲染引擎?

Currently we use our own renderer called livarot. We plan to migrate to Cairo when it is mature enough.

开发平台是?

Most developers work on Linux. However it is also possible to compile Inkscape on Windows; this page provides detailed instructions for this as well as for cross-compiling Windows binaries on Linux.

在 Linux 下通过 Subversion 下载代码的命令是?

Generic directions are under the Subversion link on the inkscape sourceforge page. Note, however, that the command given on the sourceforge page will check out all modules of the Inkscape project and all branches of those modules.

These commands will download the requested module into a directory named either trunk or BRANCH_NAME, depending on whether you chose to check out the trunk or a branch.

svn switch https://svn.sourceforge.net/svnroot/inkscape/MODULE_NAME/branches/BRANCH_NAME

in your working copy, where MODULE_NAME is the name of the module you are working in, and BRANCH_NAME is the name of the branch that you want to switch to.

svn switch https://svn.sourceforge.net/svnroot/inkscape/MODULE_NAME/tags/BRANCH_NAME

Note that Subversion supports the ability to move individual subdirectories of a working copy of a module to different branches of that module, so if you want to switch an entire working copy to a different branch, run svn switch in the root directory of the working copy.

你们是如何从用户请求的功能中进行选择并加以实现的?

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.

我更喜欢界面看起来像……

Understandably, many users are accustomed to other programs (such as Illustrator, the GIMP, etc.) and would prefer Inkscape to follow them in design. Inkscape developers are constantly examining other projects and on the look for better interface ideas. 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 strive to find our own balance of compatibility with common drawing programs, wishes of our userbase, good workflow, creativity of our developers, and compliance with UI guidelines. It's unlikely that this balance will meet every user's wish, or achieve 100% compliance with the various platform specific Interface Guidelines, or include every developer's idea, and if it did it probably wouldn't be as good.  ;-)

Usually when we discuss interface look and feel, we arrive at the conclusion that, really, it should be configurable so that each user can flip a few switches and get an app that is most cozy to them. However, flexibility should not be used as an excuse not to make tough decisions when they are called for.

法律

Inkscape 采用哪一种授权进行发?

GNU GENERAL PUBLIC LICENSE Version 2, June 1991 [2]。简单说来,这意味着你可以因为任意用途自由使用和发布 Inkscpae,商业的和非商业的,没有任何限制。你还可以自由地根据你的需要修改程序,唯一的限制是你必须你的发布版本的源代码。