PICASSO(1)

NAME
picasso - a line drawing program

SYNOPSIS
picasso [ -bsize -Fpath -Ipath -ln -Mn -mmargin -pmxn -t -x ] [ - ] [ file_name(s) ]

DESCRIPTION
Picasso is a processor for a PIC-like drawing language that produces PostScript output. By default, this output is scaled to fit an 8-1/2 by 11 inch print area, and centered on the page.

-b size specifies a buffer of size objects accumulated before translation into PostScript; on machines with small memories, a buffer of a few thousand objects can prevent thrashing when processing a very large picture. This option is for exceptional cases and is not often needed.

-F path overrides the standard path for font width tables. The default is to use the troff(1) tables.

-I path overrides the standard path for the PostScript prologue and font descriptions (not needed in normal use).

-l n processes layer n only, as specified by curlayer=n.

-M n magnifies the output image by n (shrinks if 0 < n < 1).

-p mxn specifies output device size in inches (8.5x11 default).

-t packages the PostScript with surrounding troff input so that the output file may be passed down a pipeline to troff(1). The mpictures macro package can be used with troff to insert the pictures appropriately within the document. Without the flag Picasso outputs only PostScript, dropping any text outside the markers (.PS and .PE) delimiting each picture.

-m margin specifies an empty border, in printer's points, that Picasso will place around each picture. This may be useful at times to prevent too tight clipping against adjacent text or the edge of the paper. By default no margin is supplied; to cause a 1/8" (9 point) margin, for example, specify -m9.

-x suppresses the default scaling and centering.

The Picasso picture description language is object oriented, the basic objects being arrow, arc, box, circle, ellipse, line, sector, spline and (quoted) text. These can be combined, hierarchically, into blocks. Primitive objects can be drawn with solid, dashed, dotted or noedge edges. These edges may be of varying weight (thickness) and of any shade of gray (from black = 0 to white = 1) or color. Predefined colors include black, white, red, blue, cyan, magenta, yellow.

Objects may be named and referred to by name or by anonymous references such as 1st box, 4th object, 2nd last circle. Object names require an initial upper case letter; names beginning with lower case or an underscore are numeric variables. There are predefined variables for most properties, including: circlerad, boxwid, linecolor. Picasso provides a limited set of programming language constructs (loops, if statements, macros, arithmetic) for combining simple objects into complex pictures.

By default, objects are placed on the page adjacent to each other and from left to right. The default direction may be changed, and any object can be placed at a specific postion, given either in absolute coordinates or by reference to other objects and points of interest. Any object has a top, bottom, left, right point; these points may also be refered to directionally as north, south, west, east or n, s, w, e. The ``corner'' points may also be specified, e.g., northwest, nw. Lines have start and end points; you may also refer to 1st, 2nd, ..., nth points along a line. Boxes, circles, and ellipses have eight predefined points corresponding to the directional references mentioned above, the first point being in the eastern direction and the 8th point towards the southeast. For any object, the ``corner'' points really lie on the corners of a box surrounding the object while the ``counted'' points lie on the object itself. This distinction is normally relevant only for circles and ellipses, but since an object can be rotated or otherwise transformed it occasionally has significance for other objects as well.

EXAMPLE
The following is a simple no-smoking sign described in the Picasso language.

 .PS
 d = 0.5
 [ box ht d wid 3.5 weight d/20
   box ht d wid d/2 filled 0.5 noedge
   spline weight 0.2 edge .75 right d then up d \
                         then right d then up d
 ]
 linecolor = red; lineweight = 0.375
 circle rad 3 at last block
 line from last circle .4th to last circle .8th
 .PE

If this is used in a troff document and processed through Picasso with the -t flag, the .PS marking the start of the picture can specify the size and placement of the picture at that point in your document. For example, to place the no smoking sign centered on the page in a 3 inch square area, flag the start of the picture with .PS 3 3 c.

SEE ALSO
troff(1), troff(5)

REFERENCE
MPICTURES—A Picture Inclusion Package
PIC—A Graphics Language for Typesetting
Picasso—An OPEN LOOK Drawing Program

BUGS
Picasso is not completely compatible with pic(1), although the statement reset p_i_c right after a .PS will compensate for most differences. Besides having a number of new keywords and predefined variable names, Picasso also centers pictures on a page rather than placing them at upper left. Under no circumstances will it work with non-PostScript devices.

The positioning of equations may be slightly different than that of pic(1).

Interactive Picasso has its own unique set of bugs:

It is unable to generate many elements of the language, nor will it preserve such elements (e.g., loops) if they are read in then written out.

If you try various non-compatible grid sizes, your objects will hop around and even scale slightly in a vain effort to remain aligned. This is due to the low resolution of the screen, and doesn't affect printer output.

Transformed text may be replaced by a weird box on-screen; it should appear correctly on the printer. This is an X Window System feature.

Changes to Properties cannot be Undone; use the Properties menu again.

When saving Configuration files, line styles and dimensions of round-cornered boxes are not saved, nor is text alignment default.

``Handles'' are sometimes left behind; Refresh cures this.

Very large arrow heads on arcs are often misplaced after reflection.

If you leave ``draw mode'' surreptitiously, an icon will remain highlighted.