Code

Bug #204779 win32 crash on help menu - win32 spawn problem
[inkscape.git] / inkscape.pod
2 =head1 NAME
4 Inkscape - an SVG (Scalable Vector Graphics) editing program.
6 =head1 SYNOPSIS
8 C<inkscape [options] [filename ...]>
10 options:
12     -?, --help        
13         --usage       
14     -V, --version
16     -f, --file=FILENAME               
18     -e, --export-png=FILENAME         
19     -a, --export-area=x0:y0:x1:y1     
20     -C, --export-area-canvas
21     -D, --export-area-drawing
22         --export-area-snap
23     -i, --export-id=ID     
24     -j, --export-id-only     
25     -t, --export-use-hints
26     -b, --export-background=COLOR     
27     -y, --export-background-opacity=VALUE     
28     -d, --export-dpi=DPI              
29     -w, --export-width=WIDTH          
30     -h, --export-height=HEIGHT        
32     -P, --export-ps=FILENAME
33     -E, --export-eps=FILENAME
34     -A, --export-pdf=FILENAME
36     -T, --export-text-to-path
37     -B, --export-bbox-page 
38     -F, --export-embed-fonts
40     -l, --export-plain-svg=FILENAME             
42     -I, --query-id=ID     
43     -X, --query-x
44     -Y, --query-y
45     -W, --query-width
46     -H, --query-height
47     -S, --query-all
49     -x, --extension-directory
51         --verb-list
52         --verb=VERB-ID
53         --select=OBJECT-ID
55     -p, --print=PRINTER
57     -g, --with-gui                    
58     -z, --without-gui                 
60         --vacuum-defs
62         --g-fatal-warnings
64 =head1 DESCRIPTION
66 B<Inkscape> is a GUI editor for B<Scalable Vector Graphics (SVG)> format
67 drawing files, with capabilities similar to B<Adobe Illustrator>,
68 B<CorelDraw>, B<Visio>, etc. Inkscape features include versatile
69 shapes, bezier paths, freehand drawing, multi-line text, text on path,
70 alpha blending, arbitrary affine transforms, gradient and pattern fills, node
71 editing, SVG-to-PNG export, grouping, layers, live clones, and more.  The interface is
72 designed to be comfortable and efficient for skilled users, while
73 remaining conformant to B<GNOME> standards so that users familiar with
74 other GNOME applications can learn its interface rapidly.
76 B<SVG> is a W3C standard XML format for 2D vector drawing. It allows
77 defining objects in the drawing using points, paths, and primitive
78 shapes.  Colors, fonts, stroke width, and so forth are specified as
79 `style' attributes to these objects.  The intent is that since SVG is a
80 standard, and since its files are text/xml, it will be
81 possible to use SVG files in a sizeable number of programs and for a
82 wide range of uses.
84 B<Inkscape> uses SVG as its native document format, and has the goal of
85 becoming the most fully compliant drawing program for SVG files
86 available in the Open Source community.
89 =head1 OPTIONS
91 =over 8
93 =item B<-?>, B<--help>
95 Show help message
97 =item B<-V>, B<--version>
99 Show Inkscape version and build date.
101 =item B<-a> I<x0:y0:x1:y1>, B<--export-area>=I<x0:y0:x1:y1>
103 In PNG export, set the exported area in SVG user units (anonymous length units normally used
104 in Inkscape SVG).  The default is to export the entire document canvas.  The point (0,0)
105 is the lower-left corner.
107 =item B<-C>, B<--export-area-canvas>
109 In PNG and PDF export, exported area is the entire canvas (page). Usually this is the default, so you
110 don't need to specify this unless you are using --export-id to export a specific object.
112 =item B<-D>, B<--export-area-drawing>
114 In PNG and PDF export, exported area is the entire drawing (not canvas), i.e. the bounding box
115 of all objects of the document. With this option, the exported image will
116 display just the visible objects of the document without margins or cropping. For PNG, can be
117 used in combination wtih --export-use-hints.
119 =item B<--export-area-snap>
121 For PNG export, snap the export area outwards to the nearest integer SVG user unit (px) values. If you are using the 
122 default export resolution of 90dpi and your graphics are pixel-snapped to minimize antialiasing, this switch 
123 allows you to preserve this alignment even if you are exporting some object's bounding 
124 box (with --export-id or --export-area-drawing) which is itself not pixel-aligned.
126 =item B<-b> I<COLOR>, B<--export-background>=I<COLOR>
128 Background color of exported PNG.
129 This may be any SVG supported color string, for example "#ff007f" or "rgb(255, 0, 128)".
130 If not set,
131 then the page color set in Inkscape in the Document Options dialog will be used (stored in the pagecolor= attribute of sodipodi:namedview).
133 =item B<-d> I<DPI>, B<--export-dpi>=I<DPI>
135 The resolution used for PNG export.
136 The default is 90, which corresponds to 1 SVG user unit 
137 (px, also called "user unit") exporting to 1 bitmap pixel.
138 This value overrides the DPI hint if used with --export-use-hints.
140 =item B<-e> I<FILENAME>, B<--export-png>=I<FILENAME>
142 Specify the filename for PNG export.
143 If it already exists, the file will be overwritten without asking.
145 =item B<-f> I<FILENAME>, B<--file>=I<FILENAME>
147 Open specified document(s).
148 Option string may be omitted, i.e. you can list the filenames without -f.
150 =item B<-g>, B<--with-gui>
152 Try to use the GUI (on Unix, use the X server even if $DISPLAY is not set).
154 =item B<-h> I<HEIGHT>, B<--export-height>=I<HEIGHT>
156 The height of generated bitmap in pixels.
157 This value overrides the --export-dpi setting (or the DPI hint if used with --export-use-hints). 
159 =item B<-i> I<ID>, B<--export-id>=I<ID>
161 For PNG and PDF export, the id attribute value of the object that you want 
162 to export from the document.  By
163 default the exported area is the bounding box of the object; you can override this using
164 --export-area, --export-area-canvas, or --export-area-drawing.
166 =item B<-j>, B<--export-id-only>
168 Only export to PNG the object whose id is given in --export-id. All other objects are hidden and won't 
169 show in export even if they overlay the exported object. 
170 Without --export-id, this option is ignored. For PDF export, this is the default, so this option has no effect.
172 =item B<-l>, B<--export-plain-svg>=I<FILENAME>
174 Export document(s) to plain SVG format, without sodipodi: or inkscape: namespaces and without RDF metadata.
176 =item B<-x>, B<--extension-directory>
178 Lists the current extension directory that Inkscape is configured to use and
179 then exits.  This is used for external extension to use the same configuration
180 as the original Inkscape installation.
182 =item B<--verb-list>
184 Lists all the verbs that are available in Inkscape by ID.  This ID can be
185 used in defining keymaps or menus.  It can also be used with the --verb
186 command line option.
188 =item B<--verb>=I<VERB-ID>, B<--select>=I<OBJECT-ID>
190 These two options work together to provide some basic scripting for
191 Inkscape from the command line.  They both can occur as many times as
192 needed on the command line and are executed in order on every document that
193 is specified.
195 The --verb command will execute a specific verb as if it
196 was called from a menu or button.  Dialogs will appear if that is part
197 of the verb.  To get a list of the verb IDs available, use the --verb-list
198 command line option.
200 The --select command will cause objects that have the ID
201 specified to be selected.  This allows various verbs to act upon them.  To
202 remove all the selections use --verb=EditDeselect.  The object IDs
203 available are dependent on the document specified to load.
205 =item B<-p> I<PRINTER>, B<--print>=I<PRINTER>
207 Print document(s) to the specified printer using `lpr -P PRINTER'.
208 Alternatively, use `| COMMAND' to specify a different command to pipe to,
209 or use `> FILENAME' to write the PostScript output to a file instead of printing.
210 Remember to do appropriate quoting for your shell, e.g.
212 inkscape --print='| ps2pdf - mydoc.pdf' mydoc.svg
214 =item B<-t>, B<--export-use-hints>
216 Use export filename and DPI hints stored in the exported object (only with --export-id).
217 These hints are set automatically when you export selection from within Inkscape.
218 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,
219 then later you will be able to reexport that shape to the same file with the same resolution simply with 
221 inkscape -i path231 -t document.svg
223 If you use --export-dpi, --export-width, or --export-height with this option,
224 then the DPI hint will be ignored and the value from the command line will be used.
225 If you use --export-png with this option,
226 then the filename hint will be ignored and the filename from the command line will be used. 
228 =item B<-w> I<WIDTH>, B<--export-width>=I<WIDTH>
230 The width of generated bitmap in pixels.
231 This value overrides the --export-dpi setting (or the DPI hint if used with --export-use-hints). 
233 =item B<-y> I<VALUE>, B<--export-background-opacity>=I<VALUE>
235 Opacity of the background of exported PNG.
236 This may be a value either between 0.0 and 1.0 (0.0 meaning full transparency, 1.0 full opacity)
237 or greater than 1 up to 255 (255 meaning full opacity).
238 If not set and the -b option is not used,
239 then the page opacity set in Inkscape in the Document Options dialog will be used (stored in the inkscape:pageopacity= attribute of sodipodi:namedview).
240 If not set but the -b option is used,
241 then the value of 255 (full opacity) will be used. 
243 =item B<-P> I<FILENAME>, B<--export-ps>=I<FILENAME>
245 Export document(s) to PostScript format. Note that PostScript does not support transparency, so any transparency in the original SVG will be lost. This option can be used together with --export-bbox-page and --export-text-to-path.
247 =item B<-E> I<FILENAME>, B<--export-eps>=I<FILENAME>
249 Export document(s) to Encapsulated PostScript format. Note that PostScript does not support transparency, so any transparency in the original SVG will be lost. This option can be used together with --export-bbox-page and --export-text-to-path.
251 =item B<-A> I<FILENAME>, B<--export-pdf>=I<FILENAME>
253 Export document(s) to PDF 1.4 format. This format preserves the 
254 transparency in the original SVG (though not all PDF viewers 
255 can display it yet). This option can be used together with 
256 --export-text-to-path (currently this is required, because 
257 exporting text as text is not yet supported). 
259 By default, the entire document
260 is exported and the page size of the PDF is that of the SVG document. You can 
261 specify --export-id to export a single object (with PDF page the size 
262 of that object's bounding box) and --export-area-drawing to make the 
263 exported PDF page show the entire drawing (by default the SVG page).
265 =item B<-T>, B<--export-text-to-path>
267 Convert text objects to paths on export, where applicable (currently works for PS, EPS, and PDF export).
269 =item B<-B>, B<--export-bbox-page>
271 Export files with the bounding box set to the page size, where applicable (currently works for PS and EPS export).
273 =item B<-F>, B<--export-embed-fonts>
275 Embed fonts used in the document into exported PS/EPS file. Note: only Type 1 fonts can be embedded, not TrueType.
277 =item B<-I>, B<--query-id>
279 Set the ID of the object whose dimensions are queried. If not set, query options will 
280 return the dimensions of the drawing (i.e. all document objects), not the page or viewbox
282 =item B<-X>, B<--query-x>
284 Query the X coordinate of of the drawing or, if specified, of the object with --query-id. The returned value is in px (SVG user units). 
286 =item B<-Y>, B<--query-y>
288 Query the Y coordinate of of the drawing or, if specified, of the object with --query-id. The returned value is in px (SVG user units). 
290 =item B<-W>, B<--query-width>
292 Query the width of of the drawing or, if specified, of the object with --query-id. The returned value is in px (SVG user units). 
294 =item B<-H>, B<--query-height>
296 Query the height of of the drawing or, if specified, of the object with --query-id. The returned value is in px (SVG user units). 
298 =item B<-S>, B<--query-all>
300 Prints a comma delimited listing of all objects in the SVG document with
301 IDs defined, along with their x, y, width, and height values.
303 =item B<--vacuum-defs>
305 Remove all unused items from the <lt>defs<gt> section of the SVG file.  If this
306 option is invoked in conjunction with --export-plain-svg, only the exported file
307 will be affected.  If it is used alone, the specified file will be modified in place.
309 =item B<-z>, B<--without-gui>
311 Do not open the GUI (on Unix, do not use X server); only process the files from console.
312 This is assumed for -p, -e, -l, and --vacuum-defs options. 
314 =item B<--g-fatal-warnings>
316 Part of the standard GTK option that are recognized.  This forces any GTK
317 warnings to cause Inkscape to abort.  This option is listed because it gets
318 used for debugging.
320 =item B<--usage>
322 Display a brief usage message.
324 =back
326 =head1 CONFIGURATION
328 The preferences.xml configuration file located in ~/.inkscape/ is used
329 to customize the application settings for the user.  
331 =over 8
333 =item B<interface> 
335 The B<interface> element(s) of the config file is used to set parameters
336 related to the GUI interface, such as the open/closed status of various
337 GUI elements, etc. 
339 =item B<group id="documents">
341 The documents group is used for containing the recent files list.  Each
342 document is listed with its uri (path) and name indicated.
344 =item B<group id="template">
346 The template group is used for storing parameters related to blank
347 documents. 
349 =item B<group id="tools">
351 The tools group is used for storing the user style preferences for
352 different event contexts (i.e., shapes, freehand or calligraphic stroke
353 properties, etc.).
355 =item B<group id="palette">
357 The palette group allows setting of dash styles.  This allows you to
358 define the stroke lengths for different kinds of dashes.
360 =item B<group id="dialogs">
362 The dialogs group allows persisting the position and width of each of
363 the dialogs in the application, so that they'll start up in the last
364 place the user had them at the next time the app is run.
366 =item B<group id="printing">
368 The printing group is for storing different printer settings.  Each
369 setting is identified with an id.  Properties include I<bitmap>
370 (true/false), I<resolution>, and I<destination>.
372 =item B<group id="options">
374 The options group allows persisting various user selected options
375 including I<nudgedistance>, I<rotationstep>, I<cursortolerance>, and
376 I<dragtolerance>. 
378 =back
380 =head1 DIAGNOSTICS
382 The program returns zero on success or non-zero on failure.
384 A variety of error messages and warnings may be printed to STDERR or
385 STDOUT.  If the program behaves erratically with a particular SVG file
386 or crashes, it is useful to look at this output for clues.
388 =head1 EXAMPLES
390 While obviously B<Inkscape> is primarily intended as a GUI application,
391 it can be used for doing SVG processing on the commandline as well.
393 Open an SVG file in the GUI:
395     inkscape filename.svg
397 Print an SVG file from the command line:
399     inkscape filename.svg -p '| lpr'
401 Export an SVG file into PNG with the default resolution of 90dpi (one SVG user unit translates to one bitmap pixel):
403     inkscape filename.svg --export-png=filename.png
405 Same, but force the PNG file to be 600x400 pixels:
407     inkscape filename.svg --export-png=filename.png -w600 -h400
409 Same, but export the drawing (bounding box of all objects), not the page:
411     inkscape filename.svg --export-png=filename.png --export-area-drawing
413 Export to PNG the object with id="text1555", using the output filename and 
414 the resolution that were used for that object last time when it was exported from the GUI:
416     inkscape filename.svg --export-id=text1555 --export-use-hints
418 Same, but use the default 90dpi resolution, specify the filename, 
419 and snap the exported area outwards to the nearest whole SVG user unit values 
420 (to preserve pixel-alignment of objects and thus minimize antialiasing):
422     inkscape filename.svg --export-id=text1555 --export-png=text.png --export-snap-area
424 Convert an Inkscape SVG document to plain SVG:  
426     inkscape filename1.svg --export-plain-svg=filename2.svg
428 Convert an SVG document to EPS, converting all texts to paths:
430     inkscape filename.svg --export-eps=filename.eps --export-text-to-path
432 Query the width of the object with id="text1555":
434     inkscape filename.svg --query-width --query-id text1555
436 Duplicate the object with id="path1555", rotate the duplicate 90 degrees, save SVG, and quit:
438     inkscape filename.svg --select=path1555 --verb=EditDuplicate --verb=ObjectRotate90 --verb=FileSave --verb=FileClose
441 =head1 ENVIRONMENT
443 B<DISPLAY> to get the default host and display number.
445 B<TMPDIR> to set the default path of the directory to use for temporary
446 files.  The directory must exist.
448 =head1 THEMES
450 To load different icons sets instead of the default
451 B<$PREFIX>/share/inkscape/icons/icons.svg file, the directory
452 B<$HOME>/.inkscape/icons/ is used.  Icons are loaded by name
453 (e.g. I<fill_none.svg>), or if not found, then from I<icons.svg>.  If the
454 icon is not loaded from either of those locations, it falls back to the
455 default system location.
457 The needed icons are loaded from SVG files by searching for the SVG id with
458 the matching icon name.  (For example, to load the "fill_none" icon from
459 a file, the bounding box seen for SVG id "fill_none" is rendered as the
460 icon, whether it comes from I<fill_none.svg> or I<icons.svg>.)
462 =head1 FILES
464 B<$HOME>/.inkscape/preferences.xml - The user's preference settings. 
466 B<$HOME>/.inkscape/extensions/ - Directory with user's extension effects.
468 B<$HOME>/.inkscape/icons/ - Directory with user's icons.
470 B<$HOME>/.inkscape/keys/ - Directory with user's keyboard maps.
472 B<$HOME>/.inkscape/templates/ - Directory with user's new file templates.
475 =head1 OTHER INFO
477 The canonical place to find B<Inkscape> info is at
478 http://www.inkscape.org/.  The website has news, documentation,
479 tutorials, examples, mailing list archives, the latest released
480 version of the program, bugs and feature requests databases, forums,
481 and more.
483 =head1 SEE ALSO
485 potrace, cairo, rsvg(1), batik, ghostscript, pstoedit.
487 SVG compliance test suite:  http://www.w3.org/Graphics/SVG/Test/
489 SVG validator:  http://jiggles.w3.org/svgvalidator/
491 I<Scalable Vector Graphics (SVG) 1.1 Specification>
492 I<W3C Recommendation 14 January 2003>
493 L<http://www.w3.org/TR/SVG11/>
495 I<Scalable Vector Graphics (SVG) 1.2 Specification>
496 I<W3C Working Draft 13 November 2003>
497 L<http://www.w3.org/TR/SVG12/>
499 I<SVG 1.1/1.2/2.0 Requirements>
500 I<W3C Working Draft 22 April 2002>
501 L<http://www.w3.org/TR/SVG2Reqs/>
503 I<Document Object Model (DOM): Level 2 Core>
504 I<Arnaud Le Hors et al editors, W3C>
505 L<http://www.w3.org/TR/DOM-Level-2-Core/>
508 =head1 GUI NOTES
510 To learn Inkscape's GUI operation, read the tutorials in Help > Tutorials.
512 Apart from SVG, Inkscape can import (File > Import) most bitmap formats 
513 (PNG, BMP, JPG, XPM, GIF, etc.), plain text (requires Perl), PDF, 
514 and AI format (AI version 9.0 or newer). 
516 Inkscape exports 32-bit PNG images (File > Export) as well as AI, PS, EPS, PDF, DXF, 
517 and several other formats via File > Save as.
519 Inkscape can use the pressure and tilt of a graphic tablet pen for width, angle,
520 and force of action of several tools, including the Calligraphic pen.
522 Inkscape includes a GUI front-end to the Potrace bitmap tracing engine
523 (http://potrace.sf.net) which is embedded into Inkscape.
525 Inkscape can use external scripts (stdin-to-stdout filters) that are represented by
526 commands in the Effects menu. A script can have a GUI dialog for setting various
527 parameters and can get the IDs of the selected objects on which to act via the command
528 line. Inkscape comes with an assortment of effects written in Python.
530 =head1 KEYBINDINGS
532 To get a complete list of keyboard and mouse shortcuts, view doc/keys.html, or use the Keys and Mouse command in Help menu.
534 =head1 BUGS
536 Many bugs are known; please refer to the website (inkscape.org) for reviewing the reported ones and to
537 report newly found issues.  See also the Known Issues section in the Release Notes for
538 your version (file `NEWS').
540 =head1 AUTHORS
542 This codebase owes its existance to a large number of contributors
543 throughout its various incarnations.  The following list is certainly
544 incomplete, but serves to recognize the many shoulders on which this
545 application sits:
547 [% INCLUDE "AUTHORS" %]
549 This man page was put together by Bryce Harrington
550 E<lt>brycehar@bryceharrington.comE<gt>.
552 =head1 HISTORY
554 The codebase that would become Inkscape began life in 1999 as the
555 program Gill, the GNOME Illustrator application, created by Raph
556 Levien.  The stated objective for Gill was to eventually support all of
557 SVG.  Raph implemented the PostScript bezier imaging model, including
558 stroking and filling, line cap style, line join style, text, etc.  
559 Raph's Gill page is at http://www.levien.com/svg/.  Work on Gill appears
560 to have slowed or ceased in 2000.
562 The next incarnation of the codebase was to become the highly popular
563 program Sodipodi, led by Lauris Kaplinski.  The codebase was turned
564 into a powerful illustration program over the course of several
565 year's work, adding several new features, multi-lingual support, porting
566 to Windows and other operating systems, and eliminating dependencies.
568 Inkscape was formed in 2003 by four active Sodipodi developers, Bryce
569 Harrington, MenTaLguY, Nathan Hurst, and Ted Gould, wanting to take a
570 different direction with the codebase in terms of focus on
571 SVG compliance, interface look-and-feel, and a desire to open
572 development opportunities to more participants.  The project progressed
573 rapidly, gaining a number of very active contributors and features.
575 Much work in the early days of the project focused on code stablization
576 and internationalization.  The original renderer inherited from Sodipodi
577 was laced with a number of mathematical corner cases which led to
578 unexpected crashes when the program was pushed beyond routine uses; this
579 renderer was replaced with Livarot which, while not perfect either, was
580 significantly less error prone.  The project also adopted a practice of
581 committing code frequently, and encouraging users to run developmental
582 snapshots of the program; this helped identify new bugs swiftly, and
583 ensure it was easy for users to verify the fixes.  As a result, Inkscape
584 releases have generally earned a reputation for being robust and
585 reliable.
587 Similarly, efforts were taken to internationalize and localize the
588 interface, which has helped the program gain contributors worldwide.
590 Inkscape has had a beneficial impact on the visual attractiveness of
591 Open Source in general, by providing a tool for creating and sharing
592 icons, splash screens, website art, and so on.  In a way, despite being
593 "just an drawing program", Inkscape has played an important role in
594 making Open Source more visually stimulating to larger audiences.
596 =head1 COPYRIGHT AND LICENSE
598 B<Copyright (C)> 1999-2007 by Authors.  
600 B<Inkscape> is free software; you can redistribute it and/or modify it
601 under the terms of the GPL.  
604 =for comment
605 $Date$