Code

Node tool: correctly save node skewing to undo history
[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-page
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
35         --export-latex
37     -T, --export-text-to-path
38         --export-ignore-filters
40     -l, --export-plain-svg=FILENAME             
42     -p, --print=PRINTER
44     -I, --query-id=ID     
45     -X, --query-x
46     -Y, --query-y
47     -W, --query-width
48     -H, --query-height
49     -S, --query-all
51     -x, --extension-directory
53         --verb-list
54         --verb=VERB-ID
55         --select=OBJECT-ID
57         --shell
59     -g, --with-gui                    
60     -z, --without-gui                 
62         --vacuum-defs
64         --g-fatal-warnings
66 =head1 DESCRIPTION
68 B<Inkscape> is a GUI editor for B<Scalable Vector Graphics (SVG)> format
69 drawing files, with capabilities similar to B<Adobe Illustrator>,
70 B<CorelDraw>, B<Xara Xtreme>, etc. Inkscape features include versatile
71 shapes, bezier paths, freehand drawing, multi-line text, text on path,
72 alpha blending, arbitrary affine transforms, gradient and pattern fills, node
73 editing, many export and import formats including PNG and PDF, grouping, 
74 layers, live clones, and a lot more.  The interface is
75 designed to be comfortable and efficient for skilled users, while
76 remaining conformant to B<GNOME> standards so that users familiar with
77 other GNOME applications can learn its interface rapidly.
79 B<SVG> is a W3C standard XML format for 2D vector drawing. It allows
80 defining objects in the drawing using points, paths, and primitive
81 shapes.  Colors, fonts, stroke width, and so forth are specified as
82 `style' attributes to these objects.  The intent is that since SVG is a
83 standard, and since its files are text/xml, it will be
84 possible to use SVG files in a sizeable number of programs and for a
85 wide range of uses.
87 B<Inkscape> uses SVG as its native document format, and has the goal of
88 becoming the most fully compliant drawing program for SVG files
89 available in the Open Source community.
92 =head1 OPTIONS
94 =over 8
96 =item B<-?>, B<--help>
98 Show help message
100 =item B<-V>, B<--version>
102 Show Inkscape version and build date.
104 =item B<-a> I<x0:y0:x1:y1>, B<--export-area>=I<x0:y0:x1:y1>
106 In PNG export, set the exported area in SVG user units (anonymous length units normally used
107 in Inkscape SVG).  The default is to export the entire document page.  The point (0,0)
108 is the lower-left corner.
110 =item B<-C>, B<--export-area-page>
112 In PNG, PDF, PS, and EPS export, exported area is the page. This is the default
113 for PNG, PDF, and PS, so you don't need to specify this unless you are using --export-id 
114 to export a specific object. In EPS, however, this is not the default; moreover, for EPS, 
115 the specification of the format does not allow its bounding box to extend beyond its content. 
116 This means that when --export-area-page is used with EPS export, the page bounding box 
117 will be trimmed inwards to the bounding box of the content if it is smaller.
119 =item B<-D>, B<--export-area-drawing>
121 In PNG, PDF, PS, and EPS export, exported area is the drawing (not page), i.e. the bounding box
122 of all objects of the document (or of the exported object if --export-id is used). 
123 With this option, the exported image will
124 display all the visible objects of the document without margins or cropping. This is the default
125 export area for EPS. For PNG, it can be used in combination with --export-use-hints.
127 =item B<--export-area-snap>
129 For PNG export, snap the export area outwards to the nearest integer SVG user unit (px) values. If you are using the 
130 default export resolution of 90 dpi and your graphics are pixel-snapped to minimize antialiasing, this switch 
131 allows you to preserve this alignment even if you are exporting some object's bounding 
132 box (with --export-id or --export-area-drawing) which is itself not pixel-aligned.
134 =item B<-b> I<COLOR>, B<--export-background>=I<COLOR>
136 Background color of exported PNG.
137 This may be any SVG supported color string, for example "#ff007f" or "rgb(255, 0, 128)".
138 If not set,
139 then the page color set in Inkscape in the Document Options dialog will be used (stored in the pagecolor= attribute of sodipodi:namedview).
141 =item B<-d> I<DPI>, B<--export-dpi>=I<DPI>
143 The resolution used for PNG export.
144 It is also used for fallback rasterization of filtered objects
145 when exporting to PS, EPS, or PDF (unless you specify --export-ignore-filters to suppress
146 rasterization). The default is 90 dpi, which corresponds to 1 SVG user unit 
147 (px, also called "user unit") exporting to 1 bitmap pixel.
148 This value overrides the DPI hint if used with --export-use-hints.
150 =item B<-e> I<FILENAME>, B<--export-png>=I<FILENAME>
152 Specify the filename for PNG export.
153 If it already exists, the file will be overwritten without asking.
155 =item B<-f> I<FILENAME>, B<--file>=I<FILENAME>
157 Open specified document(s).
158 Option string may be omitted, i.e. you can list the filenames without -f.
160 =item B<-g>, B<--with-gui>
162 Try to use the GUI (on Unix, use the X server even if $DISPLAY is not set).
164 =item B<-h> I<HEIGHT>, B<--export-height>=I<HEIGHT>
166 The height of generated bitmap in pixels.
167 This value overrides the --export-dpi setting (or the DPI hint if used with --export-use-hints). 
169 =item B<-i> I<ID>, B<--export-id>=I<ID>
171 For PNG, PS, EPS, and PDF export, the id attribute value of the object that you want 
172 to export from the document; all other objects are not exported.  By
173 default the exported area is the bounding box of the object; you can override this using
174 --export-area (PNG only) or --export-area-page.
176 =item B<-j>, B<--export-id-only>
178 Only export to PNG the object whose id is given in --export-id. All other objects are hidden and won't 
179 show in export even if they overlay the exported object. 
180 Without --export-id, this option is ignored. For PDF export, this is the default, so this option has no effect.
182 =item B<-l>, B<--export-plain-svg>=I<FILENAME>
184 Export document(s) to plain SVG format, without sodipodi: or inkscape: namespaces and without RDF metadata.
186 =item B<-x>, B<--extension-directory>
188 Lists the current extension directory that Inkscape is configured to use and
189 then exits.  This is used for external extension to use the same configuration
190 as the original Inkscape installation.
192 =item B<--verb-list>
194 Lists all the verbs that are available in Inkscape by ID.  This ID can be
195 used in defining keymaps or menus.  It can also be used with the --verb
196 command line option.
198 =item B<--verb>=I<VERB-ID>, B<--select>=I<OBJECT-ID>
200 These two options work together to provide some basic scripting for
201 Inkscape from the command line.  They both can occur as many times as
202 needed on the command line and are executed in order on every document that
203 is specified.
205 The --verb command will execute a specific verb as if it
206 was called from a menu or button.  Dialogs will appear if that is part
207 of the verb.  To get a list of the verb IDs available, use the --verb-list
208 command line option.
210 The --select command will cause objects that have the ID
211 specified to be selected.  This allows various verbs to act upon them.  To
212 remove all the selections use --verb=EditDeselect.  The object IDs
213 available are dependent on the document specified to load.
215 =item B<-p> I<PRINTER>, B<--print>=I<PRINTER>
217 Print document(s) to the specified printer using `lpr -P PRINTER'.
218 Alternatively, use `| COMMAND' to specify a different command to pipe to,
219 or use `> FILENAME' to write the PostScript output to a file instead of printing.
220 Remember to do appropriate quoting for your shell, e.g.
222 inkscape --print='| ps2pdf - mydoc.pdf' mydoc.svg
224 =item B<-t>, B<--export-use-hints>
226 Use export filename and DPI hints stored in the exported object (only with --export-id).
227 These hints are set automatically when you export selection from within Inkscape.
228 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,
229 then later you will be able to reexport that shape to the same file with the same resolution simply with 
231 inkscape -i path231 -t document.svg
233 If you use --export-dpi, --export-width, or --export-height with this option,
234 then the DPI hint will be ignored and the value from the command line will be used.
235 If you use --export-png with this option,
236 then the filename hint will be ignored and the filename from the command line will be used. 
238 =item B<-w> I<WIDTH>, B<--export-width>=I<WIDTH>
240 The width of generated bitmap in pixels.
241 This value overrides the --export-dpi setting (or the DPI hint if used with --export-use-hints). 
243 =item B<-y> I<VALUE>, B<--export-background-opacity>=I<VALUE>
245 Opacity of the background of exported PNG.
246 This may be a value either between 0.0 and 1.0 (0.0 meaning full transparency, 1.0 full opacity)
247 or greater than 1 up to 255 (255 meaning full opacity).
248 If not set and the -b option is not used,
249 then the page opacity set in Inkscape in the Document Options dialog will be used (stored in the inkscape:pageopacity= attribute of sodipodi:namedview).
250 If not set but the -b option is used,
251 then the value of 255 (full opacity) will be used. 
253 =item B<-P> I<FILENAME>, B<--export-ps>=I<FILENAME>
255 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 
256 specify --export-id to export a single object (all other are hidden); in that case 
257 export area is that object's bounding box, but can be set to page by --export-area-page.
259 =item B<-E> I<FILENAME>, B<--export-eps>=I<FILENAME>
261 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).
263 =item B<-A> I<FILENAME>, B<--export-pdf>=I<FILENAME>
265 Export document(s) to PDF format. This format preserves the 
266 transparency in the original SVG. Used fonts are subset and embedded. 
267 The default export area is page; you can set it to drawing by --export-area-drawing. You can 
268 specify --export-id to export a single object (all other are hidden); in that case 
269 export area is that object's bounding box, but can be set to page by --export-area-page.
271 =item B<--export-latex>
273 (for PS, EPS, and PDF export)
274 Used for creating images for LaTeX documents, where the image's text is typeset by LaTeX.
275 When exporting to PDF/PS/EPS format, this option splits the output into a PDF/PS/EPS file 
276 (e.g. as specified by --export-pdf) and a LaTeX file. Text will not be output in 
277 the PDF/PS/EPS file, but instead will appear in the LaTeX file. This LaTeX file 
278 includes the PDF/PS/EPS. Inputting (\input{image.tex}) the LaTeX file in your LaTeX
279 document will show the image and all text will be typeset by LaTeX. See the
280 resulting LaTeX file for more information.
281 Also see GNUPlot's `epslatex' output terminal.
283 =item B<-T>, B<--export-text-to-path>
285 Convert text objects to paths on export, where applicable (for PS, EPS, and PDF export).
287 =item B<--export-ignore-filters>
289 Export filtered objects (e.g. those with blur) as vectors, ignoring the filters (for PS, EPS, and PDF export). 
290 By default, all filtered objects are rasterized at --export-dpi (default 90 dpi), preserving the appearance.
292 =item B<-I>, B<--query-id>
294 Set the ID of the object whose dimensions are queried. If not set, query options will 
295 return the dimensions of the drawing (i.e. all document objects), not the page or viewbox
297 =item B<-X>, B<--query-x>
299 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). 
301 =item B<-Y>, B<--query-y>
303 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). 
305 =item B<-W>, B<--query-width>
307 Query the width of the drawing or, if specified, of the object with --query-id. The returned value is in px (SVG user units). 
309 =item B<-H>, B<--query-height>
311 Query the height of the drawing or, if specified, of the object with --query-id. The returned value is in px (SVG user units). 
313 =item B<-S>, B<--query-all>
315 Prints a comma delimited listing of all objects in the SVG document with
316 IDs defined, along with their x, y, width, and height values.
318 =item B<--shell>
320 With this parameter, Inkscape will enter an interactive command line shell mode. In this
321 mode, you type in commands at the prompt and Inkscape executes them, without you having
322 to run a new copy of Inkscape for each command. This feature is mostly useful for
323 scripting and server uses: it adds no new capabilities but allows you to improve the
324 speed and memory requirements of any script that repeatedly calls Inkscape to perform
325 command line tasks (such as export or conversions). Each command in shell mode must be a
326 complete valid Inkscape command line but without the Inkscape program name, for example
327 "file.svg --export-pdf=file.pdf".
329 =item B<--vacuum-defs>
331 Remove all unused items from the <lt>defs<gt> section of the SVG file.  If this
332 option is invoked in conjunction with --export-plain-svg, only the exported file
333 will be affected.  If it is used alone, the specified file will be modified in place.
335 =item B<-z>, B<--without-gui>
337 Do not open the GUI (on Unix, do not use X server); only process the files from console.
338 This is assumed for -p, -e, -l, and --vacuum-defs options. 
340 =item B<--g-fatal-warnings>
342 This standard GTK option forces any warnings, usually harmless, to cause Inkscape to
343 abort (useful for debugging).
345 =item B<--usage>
347 Display a brief usage message.
349 =back
351 =head1 CONFIGURATION
353 The main configuration file is located in ~/.config/inkscape/preferences.xml; it stores
354 a variety of customization settings that you can change in Inkscape (mostly in the
355 Inkscape Preferences dialog).  Also in the subdirectories there, you can place your own:
357 B<$HOME>/.config/inkscape/extensions/ - extension effects.
359 B<$HOME>/.config/inkscape/icons/ - icons.
361 B<$HOME>/.config/inkscape/keys/ - keyboard maps.
363 B<$HOME>/.config/inkscape/templates/ - new file templates.
365 =head1 DIAGNOSTICS
367 The program returns zero on success or non-zero on failure.
369 A variety of error messages and warnings may be printed to STDERR or
370 STDOUT.  If the program behaves erratically with a particular SVG file
371 or crashes, it is useful to look at this output for clues.
373 =head1 EXAMPLES
375 While obviously B<Inkscape> is primarily intended as a GUI application,
376 it can be used for doing SVG processing on the command line as well.
378 Open an SVG file in the GUI:
380     inkscape filename.svg
382 Print an SVG file from the command line:
384     inkscape filename.svg -p '| lpr'
386 Export an SVG file into PNG with the default resolution of 90dpi (one SVG user unit translates to one bitmap pixel):
388     inkscape filename.svg --export-png=filename.png
390 Same, but force the PNG file to be 600x400 pixels:
392     inkscape filename.svg --export-png=filename.png -w600 -h400
394 Same, but export the drawing (bounding box of all objects), not the page:
396     inkscape filename.svg --export-png=filename.png --export-area-drawing
398 Export to PNG the object with id="text1555", using the output filename and 
399 the resolution that were used for that object last time when it was exported from the GUI:
401     inkscape filename.svg --export-id=text1555 --export-use-hints
403 Same, but use the default 90 dpi resolution, specify the filename, 
404 and snap the exported area outwards to the nearest whole SVG user unit values 
405 (to preserve pixel-alignment of objects and thus minimize aliasing):
407     inkscape filename.svg --export-id=text1555 --export-png=text.png --export-area-snap
409 Convert an Inkscape SVG document to plain SVG:
411     inkscape filename1.svg --export-plain-svg=filename2.svg
413 Convert an SVG document to EPS, converting all texts to paths:
415     inkscape filename.svg --export-eps=filename.eps --export-text-to-path
417 Query the width of the object with id="text1555":
419     inkscape filename.svg --query-width --query-id text1555
421 Duplicate the object with id="path1555", rotate the duplicate 90 degrees, save SVG, and quit:
423     inkscape filename.svg --select=path1555 --verb=EditDuplicate --verb=ObjectRotate90 --verb=FileSave --verb=FileClose
426 =head1 ENVIRONMENT
428 B<DISPLAY> to get the default host and display number.
430 B<TMPDIR> to set the default path of the directory to use for temporary
431 files.  The directory must exist.
433 =head1 THEMES
435 To load different icons sets instead of the default
436 B<$PREFIX>/share/inkscape/icons/icons.svg file, the directory
437 B<$HOME>/.config/inkscape/icons/ is used.  Icons are loaded by name
438 (e.g. I<fill_none.svg>), or if not found, then from I<icons.svg>.  If the
439 icon is not loaded from either of those locations, it falls back to the
440 default system location.
442 The needed icons are loaded from SVG files by searching for the SVG id with
443 the matching icon name.  (For example, to load the "fill_none" icon from
444 a file, the bounding box seen for SVG id "fill_none" is rendered as the
445 icon, whether it comes from I<fill_none.svg> or I<icons.svg>.)
449 =head1 OTHER INFO
451 The canonical place to find B<Inkscape> info is at
452 http://www.inkscape.org/.  The website has news, documentation,
453 tutorials, examples, mailing list archives, the latest released
454 version of the program, bugs and feature requests databases, forums,
455 and more.
457 =head1 SEE ALSO
459 potrace, cairo, rsvg(1), batik, ghostscript, pstoedit.
461 SVG compliance test suite:  http://www.w3.org/Graphics/SVG/Test/
463 SVG validator:  http://jiggles.w3.org/svgvalidator/
465 I<Scalable Vector Graphics (SVG) 1.1 Specification>
466 I<W3C Recommendation 14 January 2003>
467 L<http://www.w3.org/TR/SVG11/>
469 I<Scalable Vector Graphics (SVG) 1.2 Specification>
470 I<W3C Working Draft 13 November 2003>
471 L<http://www.w3.org/TR/SVG12/>
473 I<SVG 1.1/1.2/2.0 Requirements>
474 I<W3C Working Draft 22 April 2002>
475 L<http://www.w3.org/TR/SVG2Reqs/>
477 I<Document Object Model (DOM): Level 2 Core>
478 I<Arnaud Le Hors et al editors, W3C>
479 L<http://www.w3.org/TR/DOM-Level-2-Core/>
482 =head1 GUI NOTES
484 To learn Inkscape's GUI operation, read the tutorials in Help > Tutorials.
486 Apart from SVG, Inkscape can import (File > Import) most bitmap formats 
487 (PNG, BMP, JPG, XPM, GIF, etc.), plain text (requires Perl), PS and EPS (requires Ghostscript), PDF 
488 and AI format (AI version 9.0 or newer).
490 Inkscape exports 32-bit PNG images (File > Export) as well as AI, PS, EPS, PDF, DXF, 
491 and several other formats via File > Save as.
493 Inkscape can use the pressure and tilt of a graphic tablet pen for width, angle,
494 and force of action of several tools, including the Calligraphic pen.
496 Inkscape includes a GUI front-end to the Potrace bitmap tracing engine
497 (http://potrace.sf.net) which is embedded into Inkscape.
499 Inkscape can use external scripts (stdin-to-stdout filters) that are represented by
500 commands in the Extensions menu. A script can have a GUI dialog for setting various
501 parameters and can get the IDs of the selected objects on which to act via the command
502 line. Inkscape comes with an assortment of effects written in Python.
504 =head1 KEYBINDINGS
506 To get a complete list of keyboard and mouse shortcuts, view doc/keys.html, or use the Keys and Mouse command in Help menu.
508 =head1 BUGS
510 Many bugs are known; please refer to the website (inkscape.org) for reviewing the reported ones and to
511 report newly found issues.  See also the Known Issues section in the Release Notes for
512 your version (file `NEWS').
514 =head1 AUTHORS
516 This codebase owes its existence to a large number of contributors
517 throughout its various incarnations.  The following list is certainly
518 incomplete, but serves to recognize the many shoulders on which this
519 application sits:
521 [% INCLUDE "AUTHORS" %]
523 This man page was put together by Bryce Harrington
524 E<lt>brycehar@bryceharrington.comE<gt>.
526 =head1 HISTORY
528 The codebase that would become Inkscape began life in 1999 as the
529 program Gill, the GNOME Illustrator application, created by Raph
530 Levien.  The stated objective for Gill was to eventually support all of
531 SVG.  Raph implemented the PostScript bezier imaging model, including
532 stroking and filling, line cap style, line join style, text, etc.
533 Raph's Gill page is at http://www.levien.com/svg/.  Work on Gill appears
534 to have slowed or ceased in 2000.
536 The next incarnation of the codebase was to become the highly popular
537 program Sodipodi, led by Lauris Kaplinski.  The codebase was turned
538 into a powerful illustration program over the course of several
539 year's work, adding several new features, multi-lingual support, porting
540 to Windows and other operating systems, and eliminating dependencies.
542 Inkscape was formed in 2003 by four active Sodipodi developers, Bryce
543 Harrington, MenTaLguY, Nathan Hurst, and Ted Gould, wanting to take a
544 different direction with the codebase in terms of focus on
545 SVG compliance, interface look-and-feel, and a desire to open
546 development opportunities to more participants.  The project progressed
547 rapidly, gaining a number of very active contributors and features.
549 Much work in the early days of the project focused on code stabilization
550 and internationalization.  The original renderer inherited from Sodipodi
551 was laced with a number of mathematical corner cases which led to
552 unexpected crashes when the program was pushed beyond routine uses; this
553 renderer was replaced with Livarot which, while not perfect either, was
554 significantly less error prone.  The project also adopted a practice of
555 committing code frequently, and encouraging users to run developmental
556 snapshots of the program; this helped identify new bugs swiftly, and
557 ensure it was easy for users to verify the fixes.  As a result, Inkscape
558 releases have generally earned a reputation for being robust and
559 reliable.
561 Similarly, efforts were taken to internationalize and localize the
562 interface, which has helped the program gain contributors worldwide.
564 Inkscape has had a beneficial impact on the visual attractiveness of
565 Open Source in general, by providing a tool for creating and sharing
566 icons, splash screens, website art, and so on.  In a way, despite being
567 "just an drawing program", Inkscape has played an important role in
568 making Open Source more visually stimulating to larger audiences.
570 =head1 COPYRIGHT AND LICENSE
572 B<Copyright (C)> 1999-2010 by Authors.
574 B<Inkscape> is free software; you can redistribute it and/or modify it
575 under the terms of the GPL.
578 =for comment
579 $Date$