~inkscape.dev/inkscape/trunk

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
=head1 NAME

Inkscape - an SVG (Scalable Vector Graphics) editing program.

=head1 SYNOPSIS

C<inkscape [options] [filename ...]>

options:

    -?, --help        
        --usage       
    -V, --version

    -f, --file=FILENAME               

    -e, --export-png=FILENAME         
    -a, --export-area=x0:y0:x1:y1     
    -C, --export-area-page
    -D, --export-area-drawing
        --export-area-snap
    -i, --export-id=ID     
    -j, --export-id-only     
    -t, --export-use-hints
    -b, --export-background=COLOR     
    -y, --export-background-opacity=VALUE     
    -d, --export-dpi=DPI              
    -w, --export-width=WIDTH          
    -h, --export-height=HEIGHT        

    -P, --export-ps=FILENAME
    -E, --export-eps=FILENAME
    -A, --export-pdf=FILENAME
        --export-latex

    -T, --export-text-to-path
        --export-ignore-filters

    -l, --export-plain-svg=FILENAME             

    -p, --print=PRINTER

    -I, --query-id=ID     
    -X, --query-x
    -Y, --query-y
    -W, --query-width
    -H, --query-height
    -S, --query-all

    -x, --extension-directory

        --verb-list
        --verb=VERB-ID
        --select=OBJECT-ID

        --shell

    -g, --with-gui                    
    -z, --without-gui                 

        --vacuum-defs

        --g-fatal-warnings

=head1 DESCRIPTION

B<Inkscape> is a GUI editor for B<Scalable Vector Graphics (SVG)> format
drawing files, with capabilities similar to B<Adobe Illustrator>,
B<CorelDraw>, B<Xara Xtreme>, etc. Inkscape features include versatile
shapes, bezier paths, freehand drawing, multi-line text, text on path,
alpha blending, arbitrary affine transforms, gradient and pattern fills, node
editing, many export and import formats including PNG and PDF, grouping, 
layers, live clones, and a lot more.  The interface is
designed to be comfortable and efficient for skilled users, while
remaining conformant to B<GNOME> standards so that users familiar with
other GNOME applications can learn its interface rapidly.

B<SVG> is a W3C standard XML format for 2D vector drawing. It allows
defining objects in the drawing using points, paths, and primitive
shapes.  Colors, fonts, stroke width, and so forth are specified as
`style' attributes to these objects.  The intent is that since SVG is a
standard, and since its files are text/xml, it will be
possible to use SVG files in a sizeable number of programs and for a
wide range of uses.

B<Inkscape> uses SVG as its native document format, and has the goal of
becoming the most fully compliant drawing program for SVG files
available in the Open Source community.


=head1 OPTIONS

=over 8

=item B<-?>, B<--help>

Show help message

=item B<-V>, B<--version>

Show Inkscape version and build date.

=item B<-a> I<x0:y0:x1:y1>, B<--export-area>=I<x0:y0:x1:y1>

In PNG export, set the exported area in SVG user units (anonymous length units normally used
in Inkscape SVG).  The default is to export the entire document page.  The point (0,0)
is the lower-left corner.

=item B<-C>, B<--export-area-page>

In PNG, PDF, PS, and EPS export, exported area is the page. This is the default
for PNG, PDF, and PS, so you don't need to specify this unless you are using --export-id 
to export a specific object. In EPS, however, this is not the default; moreover, for EPS, 
the specification of the format does not allow its bounding box to extend beyond its content. 
This means that when --export-area-page is used with EPS export, the page bounding box 
will be trimmed inwards to the bounding box of the content if it is smaller.

=item B<-D>, B<--export-area-drawing>

In PNG, PDF, PS, and EPS export, exported area is the drawing (not page), i.e. the bounding box
of all objects of the document (or of the exported object if --export-id is used). 
With this option, the exported image will
display all the visible objects of the document without margins or cropping. This is the default
export area for EPS. For PNG, it can be used in combination with --export-use-hints.

=item B<--export-area-snap>

For PNG export, snap the export area outwards to the nearest integer SVG user unit (px) values. If you are using the 
default export resolution of 90 dpi and your graphics are pixel-snapped to minimize antialiasing, this switch 
allows you to preserve this alignment even if you are exporting some object's bounding 
box (with --export-id or --export-area-drawing) which is itself not pixel-aligned.

=item B<-b> I<COLOR>, B<--export-background>=I<COLOR>

Background color of exported PNG.
This may be any SVG supported color string, for example "#ff007f" or "rgb(255, 0, 128)".
If not set,
then the page color set in Inkscape in the Document Options dialog will be used (stored in the pagecolor= attribute of sodipodi:namedview).

=item B<-d> I<DPI>, B<--export-dpi>=I<DPI>

The resolution used for PNG export.
It is also used for fallback rasterization of filtered objects
when exporting to PS, EPS, or PDF (unless you specify --export-ignore-filters to suppress
rasterization). The default is 90 dpi, which corresponds to 1 SVG user unit 
(px, also called "user unit") exporting to 1 bitmap pixel.
This value overrides the DPI hint if used with --export-use-hints.

=item B<-e> I<FILENAME>, B<--export-png>=I<FILENAME>

Specify the filename for PNG export.
If it already exists, the file will be overwritten without asking.

=item B<-f> I<FILENAME>, B<--file>=I<FILENAME>

Open specified document(s).
Option string may be omitted, i.e. you can list the filenames without -f.

=item B<-g>, B<--with-gui>

Try to use the GUI (on Unix, use the X server even if $DISPLAY is not set).

=item B<-h> I<HEIGHT>, B<--export-height>=I<HEIGHT>

The height of generated bitmap in pixels.
This value overrides the --export-dpi setting (or the DPI hint if used with --export-use-hints). 

=item B<-i> I<ID>, B<--export-id>=I<ID>

For PNG, PS, EPS, and PDF export, the id attribute value of the object that you want 
to export from the document; all other objects are not exported.  By
default the exported area is the bounding box of the object; you can override this using
--export-area (PNG only) or --export-area-page.

=item B<-j>, B<--export-id-only>

Only export to PNG the object whose id is given in --export-id. All other objects are hidden and won't 
show in export even if they overlay the exported object. 
Without --export-id, this option is ignored. For PDF export, this is the default, so this option has no effect.

=item B<-l>, B<--export-plain-svg>=I<FILENAME>

Export document(s) to plain SVG format, without sodipodi: or inkscape: namespaces and without RDF metadata.

=item B<-x>, B<--extension-directory>

Lists the current extension directory that Inkscape is configured to use and
then exits.  This is used for external extension to use the same configuration
as the original Inkscape installation.

=item B<--verb-list>

Lists all the verbs that are available in Inkscape by ID.  This ID can be
used in defining keymaps or menus.  It can also be used with the --verb
command line option.

=item B<--verb>=I<VERB-ID>, B<--select>=I<OBJECT-ID>

These two options work together to provide some basic scripting for
Inkscape from the command line.  They both can occur as many times as
needed on the command line and are executed in order on every document that
is specified.

The --verb command will execute a specific verb as if it
was called from a menu or button.  Dialogs will appear if that is part
of the verb.  To get a list of the verb IDs available, use the --verb-list
command line option.

The --select command will cause objects that have the ID
specified to be selected.  This allows various verbs to act upon them.  To
remove all the selections use --verb=EditDeselect.  The object IDs
available are dependent on the document specified to load.

=item B<-p> I<PRINTER>, B<--print>=I<PRINTER>

Print document(s) to the specified printer using `lpr -P PRINTER'.
Alternatively, use `| COMMAND' to specify a different command to pipe to,
or use `> FILENAME' to write the PostScript output to a file instead of printing.
Remember to do appropriate quoting for your shell, e.g.

inkscape --print='| ps2pdf - mydoc.pdf' mydoc.svg

=item B<-t>, B<--export-use-hints>

Use export filename and DPI hints stored in the exported object (only with --export-id).
These hints are set automatically when you export selection from within Inkscape.
So, for example, if you export a shape with id="path231" as /home/me/shape.png at 300 dpi from document.svg using Inkscape GUI, and save the document,
then later you will be able to reexport that shape to the same file with the same resolution simply with 

inkscape -i path231 -t document.svg

If you use --export-dpi, --export-width, or --export-height with this option,
then the DPI hint will be ignored and the value from the command line will be used.
If you use --export-png with this option,
then the filename hint will be ignored and the filename from the command line will be used. 

=item B<-w> I<WIDTH>, B<--export-width>=I<WIDTH>

The width of generated bitmap in pixels.
This value overrides the --export-dpi setting (or the DPI hint if used with --export-use-hints). 

=item B<-y> I<VALUE>, B<--export-background-opacity>=I<VALUE>

Opacity of the background of exported PNG.
This may be a value either between 0.0 and 1.0 (0.0 meaning full transparency, 1.0 full opacity)
or greater than 1 up to 255 (255 meaning full opacity).
If not set and the -b option is not used,
then the page opacity set in Inkscape in the Document Options dialog will be used (stored in the inkscape:pageopacity= attribute of sodipodi:namedview).
If not set but the -b option is used,
then the value of 255 (full opacity) will be used. 

=item B<-P> I<FILENAME>, B<--export-ps>=I<FILENAME>

Export document(s) to PostScript format. Note that PostScript does not support transparency, so any transparent objects in the original SVG will be automatically rasterized. Used fonts are subset and embedded. The default export area is page; you can set it to drawing by --export-area-drawing. You can 
specify --export-id to export a single object (all other are hidden); in that case 
export area is that object's bounding box, but can be set to page by --export-area-page.

=item B<-E> I<FILENAME>, B<--export-eps>=I<FILENAME>

Export document(s) to Encapsulated PostScript format. Note that PostScript does not support transparency, so any transparent objects in the original SVG will be automatically rasterized. Used fonts are subset and embedded. The default export area is drawing; you can set it to page, however see --export-area-page for applicable limitation. You can specify --export-id to export a single object (all other are hidden).

=item B<-A> I<FILENAME>, B<--export-pdf>=I<FILENAME>

Export document(s) to PDF format. This format preserves the 
transparency in the original SVG. Used fonts are subset and embedded. 
The default export area is page; you can set it to drawing by --export-area-drawing. You can 
specify --export-id to export a single object (all other are hidden); in that case 
export area is that object's bounding box, but can be set to page by --export-area-page.

=item B<--export-latex>

(for PS, EPS, and PDF export)
Used for creating images for LaTeX documents, where the image's text is typeset by LaTeX.
When exporting to PDF/PS/EPS format, this option splits the output into a PDF/PS/EPS file 
(e.g. as specified by --export-pdf) and a LaTeX file. Text will not be output in 
the PDF/PS/EPS file, but instead will appear in the LaTeX file. This LaTeX file 
includes the PDF/PS/EPS. Inputting (\input{image.tex}) the LaTeX file in your LaTeX
document will show the image and all text will be typeset by LaTeX. See the
resulting LaTeX file for more information.
Also see GNUPlot's `epslatex' output terminal.

=item B<-T>, B<--export-text-to-path>

Convert text objects to paths on export, where applicable (for PS, EPS, and PDF export).

=item B<--export-ignore-filters>

Export filtered objects (e.g. those with blur) as vectors, ignoring the filters (for PS, EPS, and PDF export). 
By default, all filtered objects are rasterized at --export-dpi (default 90 dpi), preserving the appearance.

=item B<-I>, B<--query-id>

Set the ID of the object whose dimensions are queried. If not set, query options will 
return the dimensions of the drawing (i.e. all document objects), not the page or viewbox

=item B<-X>, B<--query-x>

Query the X coordinate of the drawing or, if specified, of the object with --query-id. The returned value is in px (SVG user units). 

=item B<-Y>, B<--query-y>

Query the Y coordinate of the drawing or, if specified, of the object with --query-id. The returned value is in px (SVG user units). 

=item B<-W>, B<--query-width>

Query the width of the drawing or, if specified, of the object with --query-id. The returned value is in px (SVG user units). 

=item B<-H>, B<--query-height>

Query the height of the drawing or, if specified, of the object with --query-id. The returned value is in px (SVG user units). 

=item B<-S>, B<--query-all>

Prints a comma delimited listing of all objects in the SVG document with
IDs defined, along with their x, y, width, and height values.

=item B<--shell>

With this parameter, Inkscape will enter an interactive command line shell mode. In this
mode, you type in commands at the prompt and Inkscape executes them, without you having
to run a new copy of Inkscape for each command. This feature is mostly useful for
scripting and server uses: it adds no new capabilities but allows you to improve the
speed and memory requirements of any script that repeatedly calls Inkscape to perform
command line tasks (such as export or conversions). Each command in shell mode must be a
complete valid Inkscape command line but without the Inkscape program name, for example
"file.svg --export-pdf=file.pdf".

=item B<--vacuum-defs>

Remove all unused items from the <lt>defs<gt> section of the SVG file.  If this
option is invoked in conjunction with --export-plain-svg, only the exported file
will be affected.  If it is used alone, the specified file will be modified in place.

=item B<-z>, B<--without-gui>

Do not open the GUI (on Unix, do not use X server); only process the files from console.
This is assumed for -p, -e, -l, and --vacuum-defs options. 

=item B<--g-fatal-warnings>

This standard GTK option forces any warnings, usually harmless, to cause Inkscape to
abort (useful for debugging).

=item B<--usage>

Display a brief usage message.

=back

=head1 CONFIGURATION

The main configuration file is located in ~/.config/inkscape/preferences.xml; it stores
a variety of customization settings that you can change in Inkscape (mostly in the
Inkscape Preferences dialog).  Also in the subdirectories there, you can place your own:

B<$HOME>/.config/inkscape/extensions/ - extension effects.

B<$HOME>/.config/inkscape/icons/ - icons.

B<$HOME>/.config/inkscape/keys/ - keyboard maps.

B<$HOME>/.config/inkscape/templates/ - new file templates.

=head1 DIAGNOSTICS

The program returns zero on success or non-zero on failure.

A variety of error messages and warnings may be printed to STDERR or
STDOUT.  If the program behaves erratically with a particular SVG file
or crashes, it is useful to look at this output for clues.

=head1 EXAMPLES

While obviously B<Inkscape> is primarily intended as a GUI application,
it can be used for doing SVG processing on the command line as well.

Open an SVG file in the GUI:

    inkscape filename.svg

Print an SVG file from the command line:

    inkscape filename.svg -p '| lpr'

Export an SVG file into PNG with the default resolution of 90dpi (one SVG user unit translates to one bitmap pixel):

    inkscape filename.svg --export-png=filename.png

Same, but force the PNG file to be 600x400 pixels:

    inkscape filename.svg --export-png=filename.png -w600 -h400

Same, but export the drawing (bounding box of all objects), not the page:

    inkscape filename.svg --export-png=filename.png --export-area-drawing

Export to PNG the object with id="text1555", using the output filename and 
the resolution that were used for that object last time when it was exported from the GUI:

    inkscape filename.svg --export-id=text1555 --export-use-hints

Same, but use the default 90 dpi resolution, specify the filename, 
and snap the exported area outwards to the nearest whole SVG user unit values 
(to preserve pixel-alignment of objects and thus minimize aliasing):

    inkscape filename.svg --export-id=text1555 --export-png=text.png --export-area-snap

Convert an Inkscape SVG document to plain SVG:

    inkscape filename1.svg --export-plain-svg=filename2.svg

Convert an SVG document to EPS, converting all texts to paths:

    inkscape filename.svg --export-eps=filename.eps --export-text-to-path

Query the width of the object with id="text1555":

    inkscape filename.svg --query-width --query-id text1555

Duplicate the object with id="path1555", rotate the duplicate 90 degrees, save SVG, and quit:

    inkscape filename.svg --select=path1555 --verb=EditDuplicate --verb=ObjectRotate90 --verb=FileSave --verb=FileClose


=head1 ENVIRONMENT

B<DISPLAY> to get the default host and display number.

B<TMPDIR> to set the default path of the directory to use for temporary
files.  The directory must exist.

=head1 THEMES

To load different icons sets instead of the default
B<$PREFIX>/share/inkscape/icons/icons.svg file, the directory
B<$HOME>/.config/inkscape/icons/ is used.  Icons are loaded by name
(e.g. I<fill_none.svg>), or if not found, then from I<icons.svg>.  If the
icon is not loaded from either of those locations, it falls back to the
default system location.

The needed icons are loaded from SVG files by searching for the SVG id with
the matching icon name.  (For example, to load the "fill_none" icon from
a file, the bounding box seen for SVG id "fill_none" is rendered as the
icon, whether it comes from I<fill_none.svg> or I<icons.svg>.)



=head1 OTHER INFO

The canonical place to find B<Inkscape> info is at
http://www.inkscape.org/.  The website has news, documentation,
tutorials, examples, mailing list archives, the latest released
version of the program, bugs and feature requests databases, forums,
and more.

=head1 SEE ALSO

potrace, cairo, rsvg(1), batik, ghostscript, pstoedit.

SVG compliance test suite:  http://www.w3.org/Graphics/SVG/Test/

SVG validator:  http://jiggles.w3.org/svgvalidator/

I<Scalable Vector Graphics (SVG) 1.1 Specification>
I<W3C Recommendation 14 January 2003>
L<http://www.w3.org/TR/SVG11/>

I<Scalable Vector Graphics (SVG) 1.2 Specification>
I<W3C Working Draft 13 November 2003>
L<http://www.w3.org/TR/SVG12/>

I<SVG 1.1/1.2/2.0 Requirements>
I<W3C Working Draft 22 April 2002>
L<http://www.w3.org/TR/SVG2Reqs/>

I<Document Object Model (DOM): Level 2 Core>
I<Arnaud Le Hors et al editors, W3C>
L<http://www.w3.org/TR/DOM-Level-2-Core/>


=head1 GUI NOTES

To learn Inkscape's GUI operation, read the tutorials in Help > Tutorials.

Apart from SVG, Inkscape can import (File > Import) most bitmap formats 
(PNG, BMP, JPG, XPM, GIF, etc.), plain text (requires Perl), PS and EPS (requires Ghostscript), PDF 
and AI format (AI version 9.0 or newer).

Inkscape exports 32-bit PNG images (File > Export) as well as AI, PS, EPS, PDF, DXF, 
and several other formats via File > Save as.

Inkscape can use the pressure and tilt of a graphic tablet pen for width, angle,
and force of action of several tools, including the Calligraphic pen.

Inkscape includes a GUI front-end to the Potrace bitmap tracing engine
(http://potrace.sf.net) which is embedded into Inkscape.

Inkscape can use external scripts (stdin-to-stdout filters) that are represented by
commands in the Extensions menu. A script can have a GUI dialog for setting various
parameters and can get the IDs of the selected objects on which to act via the command
line. Inkscape comes with an assortment of effects written in Python.

=head1 KEYBINDINGS

To get a complete list of keyboard and mouse shortcuts, view doc/keys.html, or use the Keys and Mouse command in Help menu.

=head1 BUGS

Many bugs are known; please refer to the website (inkscape.org) for reviewing the reported ones and to
report newly found issues.  See also the Known Issues section in the Release Notes for
your version (file `NEWS').

=head1 AUTHORS

This codebase owes its existence to a large number of contributors
throughout its various incarnations.  The following list is certainly
incomplete, but serves to recognize the many shoulders on which this
application sits:

[% INCLUDE "AUTHORS" %]

This man page was put together by Bryce Harrington
E<lt>brycehar@bryceharrington.comE<gt>.

=head1 HISTORY

The codebase that would become Inkscape began life in 1999 as the
program Gill, the GNOME Illustrator application, created by Raph
Levien.  The stated objective for Gill was to eventually support all of
SVG.  Raph implemented the PostScript bezier imaging model, including
stroking and filling, line cap style, line join style, text, etc.
Raph's Gill page is at http://www.levien.com/svg/.  Work on Gill appears
to have slowed or ceased in 2000.

The next incarnation of the codebase was to become the highly popular
program Sodipodi, led by Lauris Kaplinski.  The codebase was turned
into a powerful illustration program over the course of several
year's work, adding several new features, multi-lingual support, porting
to Windows and other operating systems, and eliminating dependencies.

Inkscape was formed in 2003 by four active Sodipodi developers, Bryce
Harrington, MenTaLguY, Nathan Hurst, and Ted Gould, wanting to take a
different direction with the codebase in terms of focus on
SVG compliance, interface look-and-feel, and a desire to open
development opportunities to more participants.  The project progressed
rapidly, gaining a number of very active contributors and features.

Much work in the early days of the project focused on code stabilization
and internationalization.  The original renderer inherited from Sodipodi
was laced with a number of mathematical corner cases which led to
unexpected crashes when the program was pushed beyond routine uses; this
renderer was replaced with Livarot which, while not perfect either, was
significantly less error prone.  The project also adopted a practice of
committing code frequently, and encouraging users to run developmental
snapshots of the program; this helped identify new bugs swiftly, and
ensure it was easy for users to verify the fixes.  As a result, Inkscape
releases have generally earned a reputation for being robust and
reliable.

Similarly, efforts were taken to internationalize and localize the
interface, which has helped the program gain contributors worldwide.

Inkscape has had a beneficial impact on the visual attractiveness of
Open Source in general, by providing a tool for creating and sharing
icons, splash screens, website art, and so on.  In a way, despite being
"just an drawing program", Inkscape has played an important role in
making Open Source more visually stimulating to larger audiences.

=head1 COPYRIGHT AND LICENSE

B<Copyright (C)> 1999-2010 by Authors.

B<Inkscape> is free software; you can redistribute it and/or modify it
under the terms of the GPL.


=for comment
$Date$