Table of Contents

NAME

xfig - Facility for Interactive Generation of figures under X11

SYNOPSIS

xfig

DESCRIPTION

Xfig is a menu-driven tool that allows the user to draw and manipulate objects interactively under the X Window System. It runs under X version 11 release 4 or higher and requires a two- or three-button mouse. file specifies the name of a file to be edited. The description of objects in the file will be read at the start of xfig.

When using a two-button mouse use the <Meta> key and the right button at the same time to effect the action of the middle button.

Xfig is available via anonymous ftp from ftp.x.org in /contrib/applications/drawing_tools/xfig.

The TransFig package is used when printing or exporting the output from xfig. It is automatically called by xfig as a back-end processor to produce various types of output:

LaTeX
fig2dev -L latex translates xfig to LaTeX picture environment commands which can be processed along with other LaTeX commands.
Metafont
fig2dev -L mf produces Metafont output.
PostScript
fig2dev -L ps produces an Encapsulated PostScript output.
IBM-GL
fig2dev -L ibmgl produces a IBM-GL (HP/GL) output.
Pic
fig2dev -L pic produces a pic output.
PiCTeX
fig2dev -L pictex produces PiCTeX output. This contains macros that can be used with the PiCTeX environment under TeX or LaTeX.
Others
fig2dev has options for these other languages: box, epic, eepic, and eepicemu.

The TransFig package is available via anonymous ftp from ftp.x.org in /contrib/applications/drawing_tools/transfig.

OPTIONS

-help

Print all command-line options for xfig and quit.

-L[andscape]

Make
xfig come up in landscape mode (10.5" x 8"). This is the default; however as the orientation is stored with Fig files, when you load a Fig file the orientation will change as required. This is only true for files of version 3.0 or higher.

-P[ortrait]

Make
xfig come up in portrait mode (8.5" x 9"). See note about landscape mode.

-bg color

Use
color as the background color for the canvas and buttons.

-bol[d] font

Cause the font used for displaying the file name and
confirmation messages to be font (default = 8x13bold).

-butt[on] font

Cause the font used for most buttons to be
font (default = 6x13).

-but_[per_row] number

Specify the number of buttons wide the mode panel should be.
This is useful in conjunction with the -pheight parameter to reduce the canvas height for small screens.

-de[bug]

Turn on debugging mode.
Prints various debugging messages like font names etc.

-do[ntswitchcmap]

Prevents xfig from switching to a private colormap if there aren't
enough colors available in the default colormap. See also -max_image_colors.

-e[xportLanguage] language

Specifies the language to be used for when exporting a fig file.
Choices are:

eepicemu    LaTeX picture + eepicemu macros
Name    Language

box    LaTeX box (figure boundary)
latex    LaTeX picture
epic    LaTeX picture + epic macros
eepic    LaTeX picture + eepic macros
eepicemu    LaTeX picture + eepicemu macros
pictex    PiCTeX macros
ibmgl    IBMGL (or HPGL)
eps    Encapuslated PostScript
ps    PostScript
pstex    Combined PS/LaTeX (PS part)
pstex_t    Combined PS/LaTeX (LaTeX part)
textyl    Textyl special commands
tpic    TPIC
pic    PIC
mf    MF (MetaFont)
gif    GIF
jpg    JPEG (JFIF)
xbm    X11 Bitmap
xpm    X11 Pixmap (XPM3 package)

-fg color

Use
color as the foreground color and default color for objects.

-fl[ushleft]

Set the print option to print the figure flush left.
The default is to center the figure on the page.

-geom[etry] WxH

Specifies the geometry for Fig application.

-iconG[eometry]

Specifies the position for the icon.

-inc[hes]

Make inches the unit of choice (default).

-ma[ximagecolors] numcols

Limit the number of colors used for EPS, GIF, JPEG or XPM images to
numcols.

-me[tric]

Make centimeters the unit of choice.
After
xfig is started you may change the units from metric to imperial or vice versa from a popup menu available by pressing mouse button 3 in the units box where the two rulers meet.

-internalBW width

Use lines of width
width between all buttons and panels (default = 1).

-inv[erse]

Use inverse video (white on black).

-k[eyFile] compose-key-file

Use
compose-key-file instead of CompKeyDB for compose (meta) key database. If there are no ``/''s in the name, the file must reside in the xfig library directory, $XFIGLIBDIR, usually /usr/local/lib/X11/xfig. If there are any ``/''s in the name it is taken as is (not relative to $XFIGLIBDIR). If there is a leading ``~/'' in the string then the ``~'' is expanded to the user's home directory.

-lat[exfonts]

Start
xfig with LaTeX font selection. Normally, the PostScript fonts are available as the default. This flag selects the LaTeX fonts to start.

-le[ft]

Change the position of the side panel window to the left of the canvas window.
This is the default.

-mo[nochrome]

Use black and white only.

-nor[mal] font

Cause the font used for the message window to be
font. This font is also used on the canvas when the selected font is not available in an X11 font (default = 6x13).

-not[rack]

Turn off cursor (mouse) tracking arrows.

-ph[eight] height

Make the
xfig canvas height high (where height is either cm or in, depending on the -metric setting).

-pw[idth] width

Make the
xfig canvas width wide (where width is either cm or in, depending on the -metric setting).

-ri[ght]

Change the position of the side panel window to the right of the canvas window
(default: left).

-sc[alablefonts]

Allows use of the X11R5 or OpenWindows scalable fonts (this is the default).
If the scalable fonts aren't available xfig will automatically switch to non-scaling fonts.

-nosc[alablefonts]

Disables use of the X11R5 or OpenWindows scalable fonts.
You might want to use this for debugging.

-sh[owallbuttons]

Show all the
xfig indicator buttons instead of only those relevant to the current drawing mode. Normally, the buttons line width, area-fill, grid mode, text size, etc. are only visible when they are relevant to the current drawing mode. The -showallbuttons option makes all of the indicator buttons visible at all times. This takes up more screen real estate, but allows the user to see all settable parameters.

-sp[ecialtext]

Start
xfig with the special text mode for text objects.

-startfi[llstyle] stylenumber

Set the starting fill style for area fill (-1 to 21).

-startfo[ntsize] pointsize

Set the default font size for text objects (default = 12pt).

-startg[ridmode] modenumber

Set the starting grid mode (0 to 3). Mode 0 is no grid.
In imperial (inches) mode, grid mode 1 is 1/4 inch, mode 2 is 1/2 inch and mode 3 is 1 inch. In metric mode, grid mode 1 is 5mm, mode 2 is 1cm and mode 3 is 2cm.

-startla[texFont] font

Set the starting font name for
LaTeX fonts.

-startt[extstep] stepsize

Set the starting text step.

-startli[newidth] width

Set the starting line width.

-startp[sFont] font

Set the starting font name for
PostScript fonts.

-ta[blet]

Specifies that xfig should use the input tablet instead of the mouse
for drawing. You must have the XInputExtension in your X server and an input tablet for this to work. Also, you must modify the Imakefile to include the USETAB and TABLIB variables.

-tr[ack]

Turn on cursor (mouse) tracking arrows (default).

-users[cale] scale

Set the multiplier for displayed line lengths etc.
This factor is multiplied by the actual length, radius or diameter of the object currently being drawn on the canvas. It is useful for making scale drawings, where e.g. 1 inch = 1 foot (userscale = 12.0) or 1cm = 1m (userscale = 100.0).

-useru[nit] units

The
units string is printed with the length information when drawing objects. For example if the userscale = 1.0 and the userunit = ft then a line which is 3 inches long on the canvas would be displayed as ``length = 3 ft'' when it is being drawn.
After
xfig is started you may change the userscale and the userunit from a popup menu available by pressing mouse button 3 in the units box where the two rulers meet.

GRAPHICAL OBJECTS

The objects in xfig are divided into primitive objects and compound objects. The primitive objects are: ARC, CIRCLE, CLOSED SPLINE, ELLIPSE, POLYLINE, POLYGON, PICTURE, BOX, ARC-BOX, SPLINE, and TEXT.

A primitive object can be moved, rotated, flipped vertically or horizontally, scaled, copied, aligned within a compound object or erased. The TEXT primitive may not be flipped. The attributes of any primitive object can be edited using a popup panel (discussed below), so you can, for instance, set the position of an object manually.

A compound object is composed of primitive objects. The primitive objects that constitute a compound can not be individually modified, but they can be manipulated as an entity; a compound can be moved, rotated, flipped vertically or horizontally, scaled, copied or erased. A compound that contains any boxes or arc-boxes may only be rotated by 90 degrees.

Objects may overlap other objects according to their ``depth''. Objects with larger depth number are obscured by objects with smaller depth.

Regular polygons may be created using a special drawing mode, but a general POLYGON is created as a result, which may then be modified, i.e. the individual vertices may be moved if desired.

DISPLAY WINDOWS

Ten regions comprise the display area of xfig: the command region, top ruler, side ruler, drawing mode region, editing mode region, filename region, message region, mouse function indicator region and canvas region, and indicator region with buttons to set and show current line thickness, line style, color, area-fill gray color and several other settings. (The mouse function indicator region was inspired by the UPS debugger from the University of Kent.) The drawing and editing mode regions may be placed (together) to the left or right of the the canvas window (default: left).

COMMAND PANEL FUNCTIONS

Quit
Exit from xfig, discarding the figure. If the figure has been modified and not saved, the user will be asked to confirm the action, by clicking mouse button 1 on a confirm/cancel popup menu. The accelerator <Meta>q will also perform this function. This and all other accelerators are defined in the app-defaults file and may be changed if desired.
Port/Land
Change shape of xfig canvas from/to portrait/landscape. Note: the canvas will automatically change to the portrait/landscape configuration specified in Fig files of version 3.0 or higher when loading those files.
Delete ALL
Delete all objects from the canvas window (may be undone). The accelerator <Meta>d will also perform this function.
Undo
Undo the last object creation, deletion or modification. The accelerator <Meta>u will also perform this function. If an undo of a Paste or file Merge is done, any user-defined colors in the figure pasted in or the file just merged will NOT be undefined.
Redraw
Redraw the canvas. There are also two accelerators which do a redraw <Meta>r and <Ctrl>l.
Paste
Paste the object previously copied into the cut/paste file into the current figure (at its original position). The accelerator <Meta>t will also perform this function.
File
Pressing mouse button 3 on this button invokes Save function without popping up the file panel. Before the figure is saved the original file is first renamed with the suffix ``.bak'' appended. This provides a backup file.

Mouse button 1 or <Meta>f pops up a panel which contains several file-related functions:

Current Filename
This is read-only AsciiTextWidget which contains the filename that will be used to write output to a file if there is no name specified in the Filename panel.
Filename
This is an editable AsciiTextWidget which contains the filename selected either by clicking on a filename from the Alternatives list or by typing a name in directly. Pressing return in the Filename window will Load the file and copy the name to the Current Filename widget.
(File) Alternatives
Pressing mouse button 1 on a filename in the file alternatives window will select that file by copying the filename into Filename window. Pressing return in this window will Load the file specified in the Filename window (if any) or the Current Filename widget.
Filename Mask
A wildcard mask may be typed into this editable AsciiTextWidget to restrict the search of filenames to a subset ala the ls command. Pressing return in this window will automatically rescan the current directory. This string may be set by setting the X toolkit resource Fig*file_panel*mask*string.
Current Directory
This is an editable AsciiTextWidget which shows the current directory. It may be modified by the user to manually set a directory name. When return is pressed in this window the directory specified is scanned for files matching the Filenamemask, if any.
The
~ (tilde) character may be used to specify a user's home directory, ala unix shell tilde expansion.
(Directory) Alternatives
Pressing mouse button 1 on a directory name in the directory alternatives list will do a ``change directory'' to that directory.
Pressing mouse button 3 in either the file or
Directory Alternatives window will do a ``change directory'' to the parent directory.
Load/Merge figure offset
These two editable AsciiTextWidgets allow one to load or merge a figure with an offset on the canvas. The figure will be offset by the amounts specified (in Fig units) in the X and Y panels. A negative value in the X offset will shift the figure to the left, and a negative value in the Y offset will shift the figure up.
Home
Pressing this button will change the directory to the $HOME directory of the user.
Rescan
Pressing this button or <Meta>r will rescan the current directory.
Cancel
Pressing this button or <Meta>c will pop down the File panel without making any changes to the directory or file name.
Save
Pressing this button or <Meta>s will save the current contents of the canvas in the file specified in the Filename window if any, or the name specified in the Current Filename if the former is empty. If the file already exists a confirmation popup menu will appear asking the user to confirm or cancel the save. If there is a filename in the Filename window it is copied to the Current Filename window.
The current Export directory is updated to the current File directory when
Save is pressed.
Before the figure is saved the original file is first renamed with the
suffix ``.bak'' appended. This provides a backup file.
Load
Pressing this button or <Meta>l will clear the canvas of any current figure and read the figure from the filename specified in the Filename menu item if any, or the name specified in the Current Filename if the former is empty. The figure will be offset by the amounts specified (Fig units) in the X and Y load/merge offset widgets. If there is a figure currently on the canvas and any modifications have been made to it and not saved, a popup query window will first appear asking if the user wishes to discard the current figure or cancel the Load operation.
The current Export directory is updated to the current File directory when
Load is pressed.
A popup message window will appear and diagnostic messages
will be written if xfig changes any ``illegal'' object values to legal values. For example, older versions of xfig were lax about initializing unused parts such as depth, and would produce very large, random values. Xfig now will ``clean up'' bad values and inform you when it does so. Also, if you read in an older file format, xfig will inform you that it is converting it to the current format for that version of xfig.
This window can be popped down by clicking the mouse button on the Dismiss button.
Merge Read
Pressing this button or <Meta>r will read the figure from the filename specified in the Filename window if any, or the name specified in the Current Filename if the former is empty, and merge it with the figure already shown on the canvas. The figure will be offset by the amounts specified (Fig units) in the X and Y load/merge offset widgets. Any user-defined colors in the file being merged will be renumbered if necessary to unique values so as not to conflict with any user-defined colors already defined. There is no comparison of the color values of the existing user-defined colors with the colors being merged in so there may be identical colors with different numbers.
See
Load above for a description of the popup message window.

Export
Will let you export the figure to an output file in one of several formats. Pressing mouse button 3 on this button invokes Export function without popping up the export panel.
Mouse button 1 or <Meta>e pops up a directory browser widget and a menu with several export-related functions:

Magnification
This is an editable AsciiTextWidget which contains the magnification to use when translating figure to the output language. The default is 100%.
Orientation
This button will toggle the output orientation between Landscape (horizontal) and Portrait (vertical). The default orientation is the same as the mode that xfig was started with, or the orientation in the Fig file when loading a Fig file of version 3.0 or higher.
Justification
This window will only be sensitive when the language selected is ``ps'' You may choose that the figure is flush left or centered in the output file. Export Offset These two editable AsciiTextWidgets allow one to export a figure with an offset. The figure will be offset by the amounts specified (in inches or cm) in the X and Y panels. A negative value in the X offset will shift the figure to the left, and a negative value in the Y offset will shift the figure up. These offsets are in addition to any centering done with the centering option.
Language
The translation language to use for xfig output. The default is PostScript. The figure may be saved as an X11 bitmap by choosing X11 Bitmap as the output language. The bitmap(pixmap) is created from the figure, the size of which is determined by the enclosing rectangle of all the figure plus a small border.
The figure may also be saved as an color X11 pixmap (using the XPM3 package) by choosing X11 Pixmap as the output language, or as a GIF file.
Finally, the figure may be saved as a JPEG image in a JFIF file. The quality factor for exporting JPEG is fixed at 75. This seems to be fine for figures containing only solid objects (no images) and adequate for figures containing imported images (GIF, JPEG, etc.).
Default Output Filename
This is read-only AsciiTextWidget which contains the filename that will be used to write output to a file if there is no name specified in Output File. The default is the figure name plus an extension that reflects the output language used, e.g. myfigure.ps if PostScript is the current language used. If the file already exists a confirmation popup menu will appear asking the user to confirm or cancel the save.
Output Filename
This is an editable AsciiTextWidget which contains the filename to use to write output to a file. Pressing return in this window will Export the file and copy the name to the Default Output Filename widget. If the file already exists a confirmation popup menu will appear asking the user to confirm or cancel the save.
(File) Alternatives
Pressing mouse button 1 on a filename in the file alternatives window will select that file by copying the filename into Filename window. Pressing return in this window will Export the file and copy the name to the Default Output Filename widget.
Filename Mask
A wildcard mask may be typed into this editable AsciiTextWidget to restrict the search of filenames to a subset ala the ls command. Pressing return in this window will automatically rescan the current directory. This string may be set by setting the X toolkit resource Fig*export_panel*mask*string.
Current Directory
This is an editable AsciiTextWidget which shows the current directory. It may be modified by the user to manually set a directory name. When return is pressed in this window the directory specified is scanned for files matching the Filenamemask, if any.
It is automatically updated
to follow the current File directory when a File Load or Save is done.
The
~ (tilde) character may be used to specify a user's home directory, ala unix shell tilde expansion.
(Directory) Alternatives
Pressing mouse button 1 on a directory name in the directory alternatives list will do a ``change directory'' to that directory.
Pressing mouse button 3 in either the file or
Directory Alternatives window will do a ``change directory'' to the parent directory.
Home
Pressing this button will change the directory to the $HOME directory of the user.
Rescan
Pressing this button or <Meta>r will rescan the current directory.
Cancel
Pressing this button or <Meta>c will pop down the Export menu without doing any print operation.
Export
Pressing this button or <Meta>e will write (export) the figure to the file using the selected language. If the file already exists, a confirmation window will popup to ask the user to confirm the write or cancel. Pressing return in the Output Filename window will also Export the file.

Print
Pressing mouse button 3 on this button invokes Print to Printer function without popping up the print panel. Pressing the Shift key and mouse button 3 invokes the Print to Batch function. Pressing mouse button 1 or <Meta>p pops up a menu with several print-related functions:

Magnification
This is an AsciiTextWidget which contains the magnification to use when translating figure to the output language.
Orientation
This button will toggle the output orientation between Landscape (horizontal) and Portrait (vertical). The default orientation is the same as the mode that xfig was started with, or the orientation in the Fig file when loading a Fig file of version 3.0 or higher.
Justification
This button will bring up a sub-menu from which you may choose center or flush left to justify the figure on the page. The default is flush left.
Printer
This is an AsciiTextWidget which contains the printer to use if output is directed to a printer. The name of the printer may be set setting the X toolkit resource Fig*printer*string. If no resource is set, the environment variable PRINTER is used.
Print Job Params
This is an AsciiTextWidget which into which you may put any extra command-line parameters that your lpr or lp program needs for printing. If the meta sequence %f appears in the string the current figure name will be substituted. It may appear more than once. This may be set using the resource Fig*job_params*string.
Figures in batch
This indicator shows how many figures have been put in the batch file for printing
Dismiss
Pressing this button or <Meta>c will pop down the Print menu.
Print FIGURE/BATCH to Printer
Pressing this button or <Meta>p will send the current figure (or the batch file if it is has any figures in it) to the printer, by passing it through fig2dev to convert it to PostScript then to the unix lpr (on BSD equivalent Unixes) or lp (on SYSV systems) program. If the batch file is printed by this button then it is removed after printing. The message in the button changes to reflect whether the batch file will be printed (when there are any figures in the batch file) or the current figure.
Note that the figure that is printed is what you see on the canvas,
not necessarily the figure file. I.e., if you haven't saved the figure since the last changes, the figure from the canvas is printed. Xfig writes the figure to a temporary file to do this. The name of the file is PID, where XFIGTMPDIR is the value of the environment variable by that name and PID is the process ID of xfig. If the environment variable XFIGTMPDIR is empty or not set, the /tmp directory is used. Print FIGURE to Batch Pressing this button or <Meta>b will append the figure (in PostScript form) to a batch file. The Print to Printer button will send the batch file to the printer.
Clear Batch
Pressing this button or <Meta>x will erase the accumulated figures from the batch file.

INDICATOR PANEL COMMAND DESCRIPTIONS

The indicator panel contains buttons to set certain drawing parameters such as line thickness, canvas grid, rotation angle etc. All of the buttons use the same mouse buttons for setting values. Pressing mouse button 1 on the indicator will pop up a panel in which either a value may be typed (e.g. for a line thickness) or the mouse may be clicked on one of several buttons (e.g. for grid style or font name). For those that expect a value, pressing return in the value part of the window will set the new value and pop down the menu.

Pressing mouse button 2 on an indicator will decrement the value (e.g. for line thickness) or cycle through the options in one direction (e.g. font names), while pressing mouse button 3 will increment the value or cycle through the options in the other direction.

ZOOM SCALE
The canvas zoom scale may be set/increased/decreased with this button. The zoom scale is displayed within the zoom button. Ruler, grid and linewidth are scaled, too. Pressing mouse button 2 will decrease the zoom factor by 1.0 unless it is less than 1.0 already in which case it will reduce to the nearest 0.25. Pressing mouse button 3 will increase the zoom factor by 1.0 unless it is less than 1.0 in which case it will increase it to the nearest 0.25. Pressing the control key and mouse button 3 together will set the zoom scale to 1.

The figure may also be zoomed by defining a zoom rectangle by pressing the control key and mouse button 1 together. This will define one corner of the zoom rectangle. Move the mouse and click mouse button 1 again to define the opposite corner of the zoom rectangle.

GRID MODE
With this button the user may select no grid, 1/4 inch (5mm in metric mode) grid 1/2 inch (10mm) grid, or 1 inch (20mm).
POINT POSITION
This button controls the coarseness of object placement on the canvas. The options are exact (on pixel) placement, 1/16 inch (1mm in metric mode), 1/4 inch (5mm) or 1/2 inch (10mm). This allows the user to easily place objects in horizontal or vertical alignment.
This also restricts which objects may be ``picked up'' by the mouse when editing.
If a corner of an object is not positioned on the canvas on a multiple of the point positioning resolution you may not be able to pick it. If this happens, a black square will temporarily appear above the mouse cursor. This square will also appear anytime the user tries to pick a nonexistent object.
ROTATION ANGLE
The rotation angle for rotating objects may be set/increased/decreased with this button. Note that not all objects may be rotated, and certain objects may only be rotated by certain angles. Pressing mouse button 2 will decrease the angle in steps of 15 degrees, while mouse button 3 will increase the angle the same amount. To select other angles, press mouse button 1 and enter the angle in the popup menu.
DEPTH
The depth at which new objects will be created may be set/increased/decreased with this button.
NUMBER OF POLYGON SIDES
The number of sides used in creating a REGULAR POLYGON is set with this button.
NUMBER OF COPIES
The number of copies to make when doing a COPY & ROTATE function on an object. Each copy will be rotated an additional ROTATION ANGLE angle from the previous.
NUMBER OF X (or Y) COPIES
The number of copies to make in the X (or Y) direction when doing a COPY function on an object.
SMART-LINKS MODE
This button controls the smart-links mode. When turned on, lines which link box-like objects together (henceforth called links) are treated specially when one of the box-like objects is moved. When set to MOVE mode, the end point of the link which touches (or is very near) the perimeter of the box is moved with the box so that the box and the end point remain linked. When set to SLIDE mode, the end segment of the link slides so that the box remains linked and the angle of the end segment is maintained. This is useful for keeping the last segment of a link horizontal or vertical.
(At the moment, this mode only works for the
MOVE and COPY functions and only works for POLYLINE links and box-like objects. Another limitation at the moment is that if both ends of a link touch the box being operated on, only one end of the link will be adjusted.)
VERTICAL ALIGN
This sets the vertical alignment mode for the ALIGN button in the editing mode panel. The choices are no vertical alignment, align to top edge, middle or bottom edge of compound, distribute the centres or edges evenly, or abut the vertical edges together. The HORIZONTAL ALIGN and VERTICAL ALIGN indicator settings are used together to align objects inside a compound or in canvas.
HORIZONTAL ALIGN
This sets the horizontal alignment mode for the ALIGN button in the editing mode panel. The choices are no horizontal alignment, align to left edge, middle or right edge of compound, distribute the centres or edges evenly, or abut the horizonaal edges together. The HORIZONTAL ALIGN and VERTICAL ALIGN indicator settings are used together to align objects inside a compound or in canvas.
ANGLE GEOMETRY
The following settings are available to restrict the drawing angle of line segments in POLYLINES, POLYGONS and SPLINES.
UNRESTRICTED
Allow lines to be drawn with any slope. This is the default setting.
LATEX LINE
Allow lines to be drawn only at slopes which can be handled by LaTeX picture environment lines: slope = x/y, where are integers in the range [-6,6].
LATEX VECTOR
Allow lines to be drawn only at slopes which can be handled by LaTeX picture environment vectors: slope = x/y, where are integers in the range [-4,4].
MANHATTAN-MOUNTAIN
Allow lines to be drawn in the horizontal, vertical or diagonal direction only.
MANHATTAN
Enforce drawing of lines in the horizontal and vertical direction only. The name Manhattan comes from the horizontal/vertical look of the Manhattan (New York City) skyline.
MOUNTAIN
Enforce drawing of only diagonal lines. The name comes from the pointed shape of mountains.

FILL STYLE
This button allows the user to select the area fill darkness (grey scale or color intensity) or fill patterns for all objects except TEXT and PICTURE, or to turn off area fill altogether.

There are 21 ``shades'' going from black to full saturation of the fill color, and 21 more ``tints'' from full saturation + 1 to white. In addition, there are 16 patterns (currently only available for PostScript, GIF, JPEG, XPM and X11 bitmap output): 30 degree left-leaning diagonal lines,
30 degree right-leaning diagonal lines,
30 degree crosshatch,
45 degree left-leaning diagonal lines,
45 degree right-leaning diagonal lines,
45 degree crosshatch,
bricks,
circles
horizontal lines,
vertical lines,
90 degree crosshatch,
fishscales,
small fishscales,
octagons,
horizontal ``sawtooth'' and
vertical ``sawtooth''.

PEN COLOR
This button is used to select one of 32 standard colors for the borders of objects, or one of the user-defined colors
FILL COLOR
This button is used to select one of 32 standard colors or user-defined color to fill objects with if they have a fill style.

Pressing mouse button 1 on either the fill or pen color buttons will popup an extended color panel, allowing the user to select either a standard color or a user-defined color from menus.

The 32 standard colors are black, yellow, white, gold, five shades of blue, four shades of green, four shades of cyan, four shades of red, five shades of magenta, four shades of brown, and four shades of pink.

To select one of the standard colors either click mouse button 1 on the desired color and either press Return or click mouse button 1 on the "Ok" button. The latter step will pop down the color panel. You may also double click mouse button 1 on the desired color to select it and pop down the color panel in one step.

To add a user-defined color press mouse button on the ``Add Color'' button in the ``User Defined Colors'' section. User defined colors are assigned values sequentially starting from 32 for a maximum of 512 colors.

A user color may be deleted by pressing mouse button 1 on the color box to select it and then pressing the ``Del Color'' button.

The last color deleted may be undeleted by pressing the ``UnDel Color'' button.

To edit a user color first select the color square by pressing mouse button 1 on the desired square. A solid or dashed line will be drawn around the box to show that it is selected. Then choose the color either by using the RGB (red, green, blue) or the HSV (hue, saturation, value) sliders. or by typing a hexadecimal value into the window under the pen or fill color boxes representing the red, green and blue components (00 to FF). If the latter is used, typing carriage return in the hexadecimal window will set the color.

Additionally, there is a button above each of the RGB sliders which when activated will ``lock'' two or more sliders together at their current setting and allow you to increase or decrease their values together with the ``lock'' slider.

If the user color being edited was just created, a dashed line will be drawn around the box instead of a solid line to indicate that it is new. The color that is currently in the pen or fill boxes will be copied into the user color cell for modification. In this way you may start with a standard color or other user color and modify it from there.

The user color is said to be ``defined'' when any of the sliders is moved or a carriage return is typed into the hexadecimal window. This will be shown by a solid line being drawn around the square instead of dashed.

The pen or fill color choice is activated when the panel is popped up by the respective button in the indicator panel, but you may switch to editing the other color by pressing either the ``Edit Pen'' or ``Edit Fill'' button.

Note that TransFig supports color output for PostScript. On monochrome screens the objects are created with the selected color, but black (or white) is used to draw the objects on the canvas.

LINE WIDTH
The width of lines may be selected with this button. Zero width lines may be drawn for the purpose of having filled areas without outlines.
LINE STYLE
The choices for line style are solid, dashed and dotted. Once created, a dashed or dotted line may be edited to change the length of dashes or the spacing of dots respectively. The dash length and dot gap can be changed from the default using the popup menu.
JOIN STYLE
Lines may be joined with a miter, rounded or bevel joint. This is only used for POLYLINE or POLYGON objects.
CAP STYLE
The ends of lines may be capped with butt, round or projecting cap. This is only used for POLYLINE, SPLINE or OPEN ARC objects.
ARROW MODE
This button selects the auto-arrow mode for drawing lines. The options are no arrow heads, backward-pointing arrow head, forward-pointing arrow head or both. If one or both arrow head modes are turned on, then arrow heads are automatically drawn when drawing POLYLINE, SPLINE or OPEN ARC objects.
ARROW TYPE
There are four types of arrows which may be filled with white or the object color.
BOX CURVE
The radius of the corners on ARC-BOX objects may be set with this button.
TEXT JUSTIFICATION
The adjustment of text may be set to left, center or right justification.
TEXT SIZE
The text size may be set/increased/decreased with this button. The default is 12 points.
TEXT STEP
The interline spacing of text may be set/increased/decreased with this button. The number displayed gives the multiple of the font height that will be placed between lines on hitting <return>. The default is a factor of 1.2 times the current font size.
TEXT FONT
This button allows a selection of 35 fonts available for most Apple PostScript printers. There are two buttons at the top of the menu. The cancel button pops down the menu without changing the current font. The use latex fonts will switch the menu to the LaTeX font choices. When the LaTeX font menu is up, besides a cancel button there is a button to switch back to the PostScript fonts.
The name of the font is printed in the font itself so that one may see
what that font looks like. If a corresponding X11 font exists, new text is created on the canvas using that font. xfig uses the size of X11 font closest to that selected by the font size button. If the X11 font doesn't exist, xfig uses the font selected by the -normal option. To abort selection of a font, click mouse button 1 on cancel.
TEXT FLAGS
This button displays the current setting of the text flags. You may use mouse buttons 2 and 3 to step back and forth through the three flag settings: Hidden, Rigid and Special. To change any of the flags you must use mouse button 1 to popup a menu from which you may change any or all of the flags.
The
Hidden flag is used for figures that will be used with LaTeX and is applicable only to the display of the document in xfig. It means that the text itself is not shown onscreen, but only the string "<text>". This is to keep long sequences of LaTeX formatting commands from making the screen messy and hard to read. The default for the Hidden flag is off.

The Special Special flag means that special characters in the string are not specially processed but are passed directly to LaTeX. If this flag is not set, then the backslash character '\' is changed to the \backslash command, a brace '{' is turned into a brace command \{, etc. The default for the Special flag is off unless xfig is started with the command-line parameter -specialtext (resource specialtext).

The
Rigid attribute forces text to remain the same size even if inside a compound object that is scaled up or down. The default is off.

DRAWING AND EDITING MODE PANELS

Icons in the drawing and editing mode panel windows represent object manipulation functions, modes and other drawing or modification aids. Manipulation functions are selected by positioning the cursor over the icon representing the desired drawing/editing function and clicking mouse button 1. The selected icon is highlighted, and a message describing its function appears in the message window. The hilighting remains on until another function is selected.

DRAWING MODE PANEL COMMAND DESCRIPTIONS

The drawing mode panel contains buttons used to create the various xfig objects. Once the drawing mode is selected, the object is created by moving the mouse to the point on the canvas where the object is to be placed and pressing and releasing mouse button 1. After that the mouse is moved to the second point and mouse button 1 is again pressed for the next point. For those objects which may have more than two points (e.g. a line), mouse button 1 may be pressed for each successive point, and mouse button 2 must be pressed to finish the object. To create a single point using the POLYLINE button, press and release mouse button 2. Newly created points may be deleted by pressing the shift key and mouse button 1. For the ARC object, which requires exactly three points mouse button 1 is used for all three points.

At any time mouse button 3 may be pressed to cancel the creation of the object.

ARC
Create an arc. Specify three points using mouse button 1. The first and last points will form the endpoints of the arc and the second specifies any point on the arc. There are two types of arcs, open and pie-wedge.
BOX
Create rectangular boxes. Start by clicking mouse button 1 on any corner of the desired box and finish with the same mouse button on the diagonally opposite corner of the box.
ARC-BOX
Create rectangular boxes with rounded corners. Start and finish with mouse button 1 in the same way as BOX. The radius of the corners is selected by the BOX CURVE button.
CIRCLE
Create circles by specifying their radii or diameters. Click mouse button 1 on the center of the circle and drag the mouse until the desired radius or diameter is attained. Click mouse button 1 again to finish the circle.
ELLIPSE
Create ellipses using the same procedure as for the drawing of circles.
PICTURE OBJECT (PIC)
This has been changed from the previous (2.1) version to be more generic, allowing GIF files, JPEG (JFIF) files, X11 bitmap (monochrome) files and X11 pixmap (XPM3) color files in addition to Encapsulated PostScript files to be imported. Compressed (.Z) and gzipped (.z or .gz) files are also handled. You must have the XPM3 libraries installed to use the XPM import/export features. See the README and Imakefile files.

A Floyd-Steinberg dithering is applied to color images for monochrome displays.

For EPS files, xfig will attempt to use Ghostscript to generate a color image if xfig is running on an color display. Ghostscript must be compiled with with the "gif8" and "pbmraw" drivers. The pbm driver is used when you run xfig on a monochrome display and the gif8 driver is used on a color display.

Ghostscript is available from prep.ai.mit.edu.

A neural network color allocation scheme is used when the number of colors for all the color images on the canvas exceeds the lesser of the number of free colorcells or the value in the resource Max_image_colors (command-line parameter -max_image_colors). Whenever a new color image is added to the canvas, the colors for all the images on the canvas are reallocated and the images are redrawn. No reallocation is done when images are deleted from the canvas.

Click mouse button 1 on any corner for the PIC object and finish by clicking mouse button 1 again on the diagonally opposite corner. The EDIT popup panel will appear and the file name of the PIC object may be entered. After pressing DONE or APPLY (see the description of the EDIT panel for the difference between the DONE and APPLY buttons) the bitmap part of the PIC object will appear in the box just created. If no PIC file is available yet or no name is entered or in the case of an Encapsulated PostScript file there is no preview bitmap pressing DONE will pop down the edit panel and the word <empty> or the PIC file name will remain in the PIC box. Later, when the name of the PIC file is known or the file is available, you may re-read the PIC file using the popup edit panel and the bitmap part of the PIC file will replace the name in the box.

If you want the original size of the PIC object, press the ``Use orig size'' button and the eps bitmap will enlarge or shrink to the size specified in the preview bitmap of the PIC file. If you want the PIC object to be approximately the size of the rectangle specified with the mouse but want the aspect ratio to be same as the original, press either ``Shrink to orig'' or ``Enlarge to orig'' buttons. You must press the APPLY button to see these effects.

The Screen Capture button will unmap the xfig windows, allowing you to capture a rectangular section of the screen to a GIF file, which becomes the current import file. After pressing the Screen Capture button you press and release mouse button 1 at one corner of the area of the screen you want to capture, drag out the rectangle and press and release mouse button 1 to finish. You may cancel the operation by pressing either of the two other mouse buttons.

The Edit Image button will call an external image viewer/editor (see resource Fig.image_editor: in the Fig.ad file) to allow you to edit the current image. The file is reimported automatically after exiting the editor. The xfig windows are automatically unmapped during the call of the editor.

The Reread button will cause xfig to re-read the image file in case it has changed. This is useful (e.g.) when you have made changes to the image file in a program external to xfig and you wish to update the imported image.

The Browse button which will popup a file browser to allow you to search directories for image files. The default search mask will match *.gif*, *.jpg*, *.xpm*, *.xbm* and *.eps*. This mask is in the Fig.ad application defaults file.

INTERPOLATED SPLINE
Create (cubic spline) spline objects. Enter control vectors in the same way as for creation of a POLYLINE object. At least three points (two control vectors) must be entered. The spline will pass through the entered points. Newly created points may be deleted by pressing the shift key and mouse button 1 before pressing mouse button 2.
POLYLINE
Create polylines (line segments connecting a sequence of points). Enter points by clicking mouse button 1 at the desired positions on the canvas window. Click mouse button 2 to finish. Newly created points may be deleted by pressing the shift key and mouse button 1 before pressing mouse button 2.
POLYGON
Same as POLYLINE except that a line segment is drawn connecting the first and last points entered.
REGULAR POLYGON
The number of sides is first selected with the NUM SIDES button in the indicator panel. Then mouse button 1 is clicked on the center and the mouse dragged to the desired size. The object may be rotated as it is being created by moving the mouse up or down relative to the starting point. Click mouse button 1 to finish.
CLOSED INTERPOLATED SPLINE
Create closed or periodic splines. The function is similar to POLYGON except that a closed interpolated spline is drawn. The spline will pass through the points (knots).
CLOSED SPLINE
Create closed or periodic spline objects. The function is similar to POLYGON except that a closed spline will be drawn instead of polygon. The entered points are just control points; i.e. the spline will not pass any of these points. Newly created points may be deleted by pressing the shift key and mouse button 1 before pressing mouse button 2.
SPLINE
Create (quadratic spline) spline objects. Enter control vectors in the same way as for creation of a POLYLINE object. At least three points (two control vectors) must be entered. The spline will only pass through the two end points. Newly created points may be deleted by pressing the shift key and mouse button 1 before pressing mouse button 2.
TEXT
Create text strings. Click mouse button 1 at the desired position on the canvas window, then enter text from the keyboard. Text may be pasted from the PRIMARY cut buffer cut/paste buffer) by pressing the F18 function key (the Paste key on Sun keyboards) or any key/button defined in the translation table for the canvas. See the default Fig.ad file for example. Text is drawn using the current font, font size and justification settings. A DEL or ^H (backspace) will delete a character, while a ^X will erase the entire line. Finish by clicking mouse button 2 or typing the <return> key. If <return> is used, the text pointer automatically moves to the next ``line'', a distance of the font height times the value in the TEXT STEP button, and text input mode is re-entered. To finish text fully, click mouse button 2 or choose any panel button that changes modes (e.g. box, save, etc). To edit text, click on an existing text string with mouse button 1. Insertion of characters will take place at that point. Or, use the popup EDIT mode to modify the text.

Eight-bit characters may be entered using the meta (compose) key. For example, to create an ``a umlaut'', press and release the meta key, then the letter ``a'', then " (quote). To create a ``c cedilla'', use <meta>c followed by comma. The following is a list of all special characters available using the meta key:

!!    upside-down exclamation point
Keys    Character Name

!!    upside-down exclamation point
??    upside-down question mark
C/    cent sign
L-    British pound
OX    currency
Y-    yen
__    broken vertical bar
SO    section
""    dieresis
CO    copyright
RO    registered trademark
_a    ordfeminine
_o    ordmasculine
<<    guillemotleft
>>    guillemotright
-|    notsign
--    hyphen
+-    plusminus
^-    macron
^*    degree
^.    periodcentered
^1    onesuperior
^2    twosuperior
^3    threesuperior
14    onequarter
12    onehalf
34    threequarters
**    multiply
-:    division
/u    mu
P!    paragraph
A`    A accent grave
A'    A accent acute
A^    A accent circumflex
A~    A accent tilde
A"    A dieresis
A*    A ring
AE    AE
a`    a accent grave
a'    a accent acute
a^    a accent circumflex
a~    a accent tilde
a"    a dieresis
a*    a ring
ae    ae
C,    C cedilla
c,    c cedilla
D-    Eth
d-    eth
E`    E accent grave
E'    E accent acute
E^    E accent circumflex
E"    E dieresis
e`    e accent grave
e'    e accent acute
e^    e accent circumflex
e"    e dieresis
I`    I accent grave
I'    I accent acute
I^    I accent circumflex
I"    I accent dieresis
i`    i accent grave
i'    i accent acute
i^    i accent circumflex
i"    i dieresis
N~    N tilde
n~    n tilde
O`    O accent grave
O'    O accent acute
O^    O accent circumflex
O~    O accent tilde
O"    O dieresis
O/    O slash
OE    OE
o`    o accent grave
o/    o accent acute
o^    o accent circumflex
o~    o accent tilde
o"    o dieresis
o/    o slash
oe    oe
P|    Thorn
p|    thorn
ss    German ss (s-zed)
U`    U accent grave
U'    U accent acute
U^    U accent circumflex
U"    U dieresis
u`    u accent grave
u'    u accent acute
u^    u accent circumflex
u"    u dieresis
Y'    Y accent acute
y'    y accent acute
y"    y dieresis

Note: the two special characters OE and oe are not displayed on the screen, but they are printed by fig2dev.

EDITING MODE PANEL COMMAND DESCRIPTIONS

When a button in the editing mode panel is pressed, any objects that may be affected by that editing operation will show their corner markers. Only those objects may be affected by the particular edit mode. In cases where two edit modes exist for one button, it may be that the corner markers will appear for objects that may be affected by one button but not the other.

SELECTING OBJECTS

When multiple objects have points in common, e.g. two boxes that touch at one corner, only one object can be selected by clicking on that point. To select other objects, hold down the shift key while pressing mouse button 1: the markers of one object will be temporarily highlighted. By repeatedly clicking mouse button 1 while holding down the shift key, it is possible to cycle through all candidates for selection at that point. To perform the selected action, e.g. deleting one box, click on the point without holding down the shift key. The operation will be performed on the highlighted object.

Note: If the mouse is not clicked near enough to an object marker or for whatever reason xfig cannot ``find'' the object the user is trying to select, a black square will temporarily appear above the mouse cursor.

GLUE COMPOUND
Compound objects are created by first tagging the objects to be compounded and then pressing mouse button 3 to group the tagged objects into a compound object. Single objects are tagged by clicking on them with mouse button 1. A number of objects can be tagged at once by using mouse button 2 to define the upper-left and lower-right corners of a region enclosing the objects. Tagged objects are shown with highlighted markers. Tagged objects which are selected (see the SELECTING OBJECTS section above) will be temporarily unhighlighted. There is currently no special command to tag or untag all of the objects within a figure. You can untag all of the objects by changing from GLUE mode to some other mode (apart from BREAK) and back again.
BREAK COMPOUND
Break a compound object to allow manipulation of its component parts. Click mouse button 1 on one of the corner markers of the compound object or along one of the imaginary lines defining the compound box. Clicking with mouse button 2 will achieve the same effect but will also tag the component parts (although you will not see the tags until you change to the GLUE mode). You can use this feature to easily alter the objects within a compound.
SCALE OBJECT
Any object may be scaled. If mouse button 1 is pressed on any corner of a BOX or ARC-BOX object, then that object will be scaled proportionally to its aspect ratio. If pressed on an edge then that dimension will be scaled. For other objects only mouse button 2 may be used for scaling; said object will be scaled larger or smaller about its center. Mouse button 2 may be used on boxes too. Text may only be scaled if inside a compound object and then only if its RIGID flag is set to NORMAL (using the popup edit panel). See the TransFig manual for description of text options.
ALIGN
Align objects. Click mouse button 1 to align objects inside a compound object or mouse button 2 to align all objects on canvas according to the setting in the VERTICAL ALIGN and HORIZONTAL ALIGN indicators. Note that alignment with respect to the canvas doesn't work for distributing or abutting. The choices are the cumulative effect of vertically aligning the objects to the TOP, MIDDLE or BOTTOM edge and horizontally aligning to the LEFT, MIDDLE or RIGHT edge of the compound, along with distributing or abutting the objects vertically or horizontally.
MOVE POINT
Modify the position of a point of any object except TEXT and COMPOUND objects. For unrestrained movement, click mouse button 1 over the desired point, reposition the point, and click the left button again. For horizontally or vertically constrained move, click mouse button 2 on the desired point and move either horizontally or vertically. Notice that once you choose the direction (horizontal or vertical), movement is constrained in that direction. If, after moving the mouse initially, it is moved in the other direction a greater distance than the current position of the mouse relative to the starting point, then that will be the new constraint direction. In other words if you first move the mouse horizontally one inch (say) then move it vertically 1.3 inches, the direction will switch to vertical until any horizontal motion exceeds 1.3 inches. When the object is positioned where desired, click mouse button 1 to place it if that button was used to start the move (unconstrained), or mouse button 2 (constrained) if that button was used.
MOVE
Move object. Click mouse button 1 (unconstrained move) or mouse button 2 (constrained move) on any corner marker of the object to be moved. The horizontal/vertical constrained movement (mouse button 2) works exactly as described for MOVE POINT.
ADD POINTS
Add points to POLYLINE, POLYGON, SPLINE, or CLOSED SPLINE objects (points of a BOX can not be added or deleted). Note that a REGULAR POLYGON is really an ordinary POLYGON, so adding points to this object is allowed and does NOT keep the polygon regular.
COPY / CUT TO CUT BUFFER
Copy object to canvas or cut buffer. Click mouse button 1 (unconstrained copy) or mouse button 2 (constrained copy) on any corner marker of the object to be copied (for CIRCLE and ELLIPSE objects, mouse may also be clicked on their circumferences). The object will be duplicated and then moved exactly as in MOVE.

If the number of X or Y copies is non-zero (from the bottom panel) then that many copies will be made in each respective direction, spaced evenly by the amount of the distance the object is placed from the original object.

If mouse button 3 is clicked on an object, that object is copied to the cut buffer for pasting into this or another figure. The file used for the cut buffer is called .xfig in the user's $HOME directory. This allows a user to run two or more xfig processes and cut/paste objects between them. If there is no $HOME, a file is created in a temporary directory called xfigPID where PID is the xfig process ID. The temporary directory used is specified in the environment variable XFIGTMPDIR. If that variable is empty or not set then /tmp is used.

DELETE POINTS
Delete points from POLYLINE, POLYGON, SPLINE, or CLOSED SPLINE. Objects (points of a BOX or ARC-BOX can not be added or deleted). Note that a REGULAR POLYGON is really an ordinary POLYGON, so deleting points from this object is allowed and does NOT keep the polygon regular.
DELETE
Click mouse button 1 on an object to delete the object. Delete a region of the canvas by clicking mouse button 2 and dragging the mouse to define an area of objects to delete. Clicking mouse button 3 on an object will copy the object to the cut buffer (see COPY/CUT TO CUT BUFFER above).
EDIT OBJECT
Edit settings for an existing object. Click mouse button 1 on the object and a pop-up menu will appear showing existing settings for the object. Some of the menu entries may be changed by typing new values in the appropriate windows. These are editable Ascii%TextWidgets and allow cut and paste. Others pop up a sub-menu of multiple choices when pressed and held. Yet others are buttons which toggle a setting on or off (e.g. arrow heads on lines).
Press the ``done'' button to apply the changes to the object and finish.
Press the ``apply'' button to apply the changes but keep the menu up for further changes. Press the ``cancel'' button to cancel the changes and pop down the menu.
The following table shows which settings are used for the different objects.

Object    Angle    Fill    Line    Line    Cap    Join    Box    Pen    Fill    Radius
       Style    Width    Style    Style    Style    Curve    Color    Color

Arc                                    

Arc-Box                                    

Circle                                        

Ellipse                                        

PIC*                                    

Box                                    

Polygon                                    

Line                                    

Spline                                    

Text                                

* Encapsulated PostScript picture objects don't use any of the above attributes.
The PostScript image is self-defined. However, X11 bitmap picture objects use the pen color for coloring the bitmap image.
UPDATE
By pressing mouse button 1 on an object, the current settings for the indicator buttons (line width, line style, area fill etc.) which have been selected for update are copied into that object. When xfig is started, all indicator buttons which are components of objects are selected for update. To unselect an indicator, click on the update button and click mouse button 1 on the small button in the upper-right corner of the indicator. When that indicator is selected the foreground color (default black) shows. When it is unselected the background color (default white) shows.
If mouse button 2 is clicked on an object, the settings in the object
that are selected by the indicator buttons are copied into those indicator button settings. Thus, one may copy selected attributes of one object to another.
FLIP VERTICALLY
Flip the object up/down (mouse button 1) or copy the object and flip it (mouse button 2). Point to part of the object, click the appropriate button. That object will be flipped vertically about that point.

Optionally, mouse button 3 may be pressed on the canvas to set an anchor point about which the object will be flipped. A crosshair indicates the anchor point on the canvas. Pressing this button again will unset the anchor point.

FLIP HORIZONTALLY
Flip the object left/right (mouse button 1) or copy the object and flip it (mouse button 2). Point to part of the object, click the appropriate button. That object will be flipped horizontally about that point.

Optionally, mouse button 3 may be pressed on the canvas to set an anchor point about which the object will be flipped. A crosshair indicates the anchor point on the canvas. Pressing this button again will unset the anchor point.

ROTATE CLOCKWISE
Rotate the object (mouse button 1) or copy and rotate it (mouse button 2) degrees (clockwise), where N is the amount set in the rotation indicator button. The object is rotated about the chosen point.

Optionally, mouse button 3 may be pressed on the canvas to set a rotation point about which the object will be rotated. A crosshair indicates the rotation point on the canvas. Pressing this button again will unset the rotation point.

Not all objects can be rotated, and not all can be rotated at arbitrary angles. For example, BOX, ARC-BOX and PIC objects may only be rotated by 90 degrees. Text objects may be rotated and to any angle.

ROTATE COUNTER-CLOCKWISE
Rotate the object (mouse button 1) or copy (mouse button 2) degrees (counter-clockwise), where N is the amount set in the rotation indicator button. The object is rotated about the chosen point.

Optionally, mouse button 3 may be pressed on the canvas to set a rotation point about which the object will be rotated. A crosshair indicates the rotation point on the canvas. Pressing this button again will unset the rotation point.

SPLINE <-> POLYLINE
and

BOX <-> ARC-BOX
Turn a POLYGON into a CLOSED INTERPOLATED SPLINE , turn a POLYLINE into a INTERPOLATED SPLINE or turn a BOX into a ARC-BOX or vice versa.
ADD/DELETE ARROWS
Add or delete arrow heads of OPEN ARC, POLYLINE or SPLINE objects. Add an arrow head by clicking mouse button 1 on the endpoint of the object. Delete an arrow head by clicking mouse button 2 on the endpoint or arrow head. The length and thickness of the arrowheads may be modified using the popup edit panel.

PANNING

The figure may be panned by clicking mouse button 1, 2 or 3 in the rulers. Clicking mouse button 1 in the top ruler will pan the image to the left by 1/2 inch (1cm in metric mode), adjusted for zoom factor. Clicking mouse button 3 in the top ruler will pan the image right by the same amount. By pressing and holding mouse button 2 the user may drag the ruler by the amount desired, thus panning the image by that amount.

If the Shift key is held down while panning the movement is five (5) times the normal rate.

The figure is panned up and down in the same way by clicking the mouse in the ruler on the right of the canvas.

If the Shift key is held down while panning the movement is five (5) times the normal rate.

The figure can be returned to its origin by clicking mouse button 1 in the units (e.g. cm or in) box.

The arrow keys may also be used to pan the image and the home key to return the figure to the origin. Also, pressing the Control Key and mouse button 2 will pan the figure to the origin.

X DEFAULTS

The overall widget name(Class) is xfig(Fig). These resources correspond to the command line arguments:

Name    Class    Type    Default    Command-line
Name    Class    Type    Default    Command-line
               equivalent

boldFont    Font    string    8x13bold    -bold
but_per_row    But_per_row    int    2    -but_per_row
buttonFont    Font    string    6x13    -button
debug    Debug    boolean    off    -debug
dont_switch_cmap    Dont_switch_cmap    boolean    false    -dontswitchcmap
exportLanguage    ExportLanguage    string    eps    -exportLanguage
flushleft    FlushLeft    boolean    false    -flushleft
image_editor    ImageEditor    string    xv    -image_editor
inches    Inches    boolean    true    -inches,
               -centimeters,
               -imperial,
               -metric
internalborderwidth    InternalBorderWidth    integer    1    -internalBW
justify    Justify    boolean    false    -left (false),
               -right (true)
keyFile    KeyFile    string    CompKeyDB    -keyFile
landscape    Orientation    boolean    true    -Landscape,
               -Portrait
latexfonts    Latexfonts    boolean    off    -latexfonts
max_image_colors    Max_image_colors    integer    100    -max_image_colors
monochrome    Monochrome    boolean    false    -monochrome
normalFont    Font    string    6x13    -normal
pheight    Height    float    8(9.5)    -pheight
pwidth    Width    float    10(8)    -pwidth
reverseVideo    ReverseVideo    boolean    off    -inverse
rulerthick    RulerThick    integer    24    -rulerthick
scalablefonts    ScalableFonts    boolean    true    -scalablefonts
showallbuttons    ShowAllButtons    boolean    false    -showallbuttons
specialtext    SpecialText    boolean    false    -specialtext
startfillstyle    startFillStyle    integer    0    -startfillstyle
startfontsize    StartFontSize    float    12    -startfontsize
startgridmode    startGridMode    integer    0    -startgridmode
startlatexFont    StartlatexFont    string    Default    -startlatexFont
startlinewidth    startLineWidth    integer    1    -startlinewidth
startpsFont    StartpsFont    string    Times-Roman    -startpsFont
starttextstep    startTextStep    float    1.2    -starttextstep
trackCursor    Track    boolean    on    -track,
               -notrack
userscale    UserScale    float    1.0    -userscale
userunit    UserUnit    string    in(cm)    -userunit

The following are the default keyboard accelerators as distributed in the Fig.ad app-defaults file:

   <Meta>l    (re)Load figure from current file
(Context)
   Keys    Function

(Main xfig panels)
   <Meta>q    Quit xfig
   <Meta>d    Delete all objects from canvas
   <Meta>u    Undo
   <Meta>r    Redraw
   <Ctrl>l    Redraw
   <Meta>t    pasTe xfig cutbuffer onto canvas
   <Meta>f    popup File menu
   <Meta>e    popup Export menu
   <Meta>p    popup Print menu
   <Meta>l    (re)Load figure from current file
   <Meta>s    Save figure to current file
(Popup units panel in corner of rulers)
   <Meta>c    Cancel popup unit panel
   <Meta>s    Set units
(Popup file panel)
   <Meta>r    Rescan current directory
   <Meta>c    Cancel
   <Meta>l    Load figure
   <Meta>s    Save figure
   <Meta>m    Merge read into current figure
(Popup export panel)
   <Meta>r    Rescan current dirctory
   <Meta>c    Cancel
   <Meta>e    Export figure
(Popup print panel)
   <Meta>c    Cancel
   <Meta>b    print to Batch file
   <Meta>p    Print to printer
   <Meta>x    clear batch file
(Canvas)
   <None>c    Draw circle by radius
   <Shift>c    Draw circle by diameter
   <None>e    Draw ellipse by radius
   <Shift>e    Draw ellipse by diameter
   <Shift>s    Draw closed spline
   <None>s    Draw open spline
   <Shift>i    Draw closed interpolated spline
   <None>i    Draw open interpolated spline
   <None>p    Draw polygon
   <None>l    Draw line
   <None>b    Draw box
   <Shift>b    Draw arcbox
   <Shift>p    Draw regular polygon
   <None>r    Draw arc
   <Ctrl>p    Draw picture object
   <None>t    Draw text

   <None>g    Glue compound
   <Shift>g    Break compound
   <Ctrl>s    Scale object
   <None>a    Align object in compound
   <Shift>m    Move point
   <None>m    Move object
   <Ctrl>a    Add point to object
   <Ctrl>c    Copy object
   <Shift>d    Delete point from object
   <None>d    Delete object
   <None>u    Update object or indicator panel
   <Ctrl>e    Edit object
   <None>f    Flip object up/down
   <Shift>f    Flip object left/right
   <Ctrl>r    Rotate object clockwise
   <Shift>r    Rotate object counter-clockwise
   <None>v    Convert object to/from line/spline or box/arc-box
   <Shift>a    Add/delete arrowhead

WIDGET TREE

Below is the widget structure of xfig. The widget class name is given first, followed by the widget instance name.

Fig xfig
   Form form
       Form commands
           Command quit
           Command delete_all
           Command orient
           Command undo
           Command redraw
           Command paste
           Command file
           Command export
           Command print
       Form msg_form
           Text message
           Label file_name
       Label mouse_panel
       Box mode_panel
           Label label
           Command button (one for each of the 16 drawing mode buttons)
           Label label
           Command button (one for each of the 18 editing mode buttons)
       Label topruler
       Label canvas
       Label unitbox
       Label sideruler
       Box upd_ctrl_form
           Label upd_ctrl_label
           Box upd_ctrl_btns
               Command set_upd
               Command clr_upd
               Command tog_upd
       Viewport ind_panel
           Core clip
           Scrollbar horizontal
           Box ind_box
               Form button_form (one for each of the 22 indicator buttons)
                   Command button
                   Toggle update (only those indicators that affect creation
                           of objects have update toggles)
       TransientShell ps_font_menu
           Box menu
               Form ps_buttons
                   Command cancel
                   Command use_latex_fonts
               Command pane (one for each of the 35 PostScript font panes)
       TransientShell latex_font_menu
           Box menu
               Form latex_buttons
                   Command cancel
                   Command use_postscript_fonts
               Command pane (one for each of the 6 LaTeX font panes)
   TransientShell file_menu
       Form file_panel
           Label file_status
           Label num_objects
           Label cur_file_label
           Text cur_file_name
           Label file_label
           Text file_name
           Label file_alt_label
           Viewport vport
               Core clip
               Scrollbar vertical
               List file_list_panel
           Label mask_label
           Text mask
           Label dir_label
           Text dir_name
           Label dir_alt_label
           Command home
           Viewport dirvport
               Core clip
               Scrollbar vertical
               List dir_list_panel
           Command rescan
           Command cancel
           Command save
           Command load
           Command merge
           Label fig_offset_label
           Label fig_offset_lbl_x
           Text fig_offset_x
           MenuButton Inches
               SimpleMenu menu
                   SmeBSB Inches
                   SmeBSB Centim.
                   SmeBSB Fig Units
           Label fig_offset_lbl_x
           Text fig_offset_x
           MenuButton Inches
               SimpleMenu menu
                   SmeBSB Inches
                   SmeBSB Centim.
                   SmeBSB Fig Units
   TransientShell export_menu
       Form export_panel
           Label mag_label
           Text magnification
           Label orient_label
           MenuButton orientation
               SimpleMenu menu
                   SmeBSB portrait
                   SmeBSB landscape
           Label just_label
           MenuButton justify
               SimpleMenu menu
                   SmeBSB Flush left
                   SmeBSB Centered
           Label export_offset_label
           Label export_offset_lbl_x
           Text export_offset_x
           MenuButton Inches
               SimpleMenu menu
                   SmeBSB Inches
                   SmeBSB Centim.
                   SmeBSB Fig Units
           Label export_offset_lbl_y
           Text export_offset_y
           MenuButton Inches
               SimpleMenu menu
                   SmeBSB Inches
                   SmeBSB Centim.
                   SmeBSB Fig Units
           Label lang_label
           MenuButton language
               SimpleMenu menu
                   SmeBSB LaTeX box (figure boundary)
                   SmeBSB LaTeX picture
                   SmeBSB LaTeX picture + epic macros
                   SmeBSB LaTeX picture + eepic macros
                   SmeBSB LaTeX picture + eepicemu macros
                   SmeBSB PiCTeX macros
                   SmeBSB IBMGL (or HPGL)
                   SmeBSB Encapsulated PostScript
                   SmeBSB PostScript
                   SmeBSB Combined PS/LaTeX (PS part)
                   SmeBSB Combined PS/LaTeX (LaTeX part)
                   SmeBSB Textyl \special commands
                   SmeBSB TPIC
                   SmeBSB PIC
                   SmeBSB MF
                   SmeBSB GIF
                   SmeBSB JPEG
                   SmeBSB X11 Bitmap
                   SmeBSB X11 Pixmap
           Label def_file_label
           Label def_file_name
           Label out_file_name
           Text file
           Label file_alt_label
           Viewport vport
               Core clip
               Scrollbar vertical
               List file_list_panel
           Label mask_label
           Text mask
           Label dir_label
           Text dir_name
           Label dir_alt_label
           Command home
           Viewport dirvport
               Core clip
               Scrollbar vertical
               List dir_list_panel
           Command rescan
           Command cancel
           Command export
   TransientShell print_menu
       Form print_panel
           Label printer_image
           Label print_label
           Label mag_label
           Text magnification
           Label orient_label
           MenuButton landscape
               SimpleMenu menu
                   SmeBSB portrait
                   SmeBSB landscape
           Label just_label
           MenuButton justify
               SimpleMenu menu
                   SmeBSB flush left
                   SmeBSB centered
           Label printer_label
           Text printer
           Label job_params_label
           Text job_params
           Label num_batch_label
           Label num_batch
           Command dismiss
           Command print
           Command print_batch
           Command clear_batch
   TransientShell file_msg
       Form file_msg_panel
           Text file_msg_win
           Command dismiss
           Command clear
   TransientShell query_popup
       Form query_form
           Label message
           Command yes
           Command no
           Command cancel
   TransientShell set_unit_panel
       Form form
           Label Unit/Scale settings
           Label Ruler Units =
           MenuButton Imperial (in)
               SimpleMenu menu
                   SmeBSB Metric (cm)
                   SmeBSB Imperial (in)
           Label Figure units =
           MenuButton Ruler units
               SimpleMenu menu
                   SmeBSB Ruler units
                   SmeBSB User defined
           Label user_units
           Text Unit/Scale settings
           Label Figure scale =
           MenuButton User defined
               SimpleMenu menu
                   SmeBSB Unity
                   SmeBSB User defined
           Label scale_factor
           Text 1.0000
           Command cancel
           Command set
Popup color panel:
   TransientShell set_indicator_panel
       Form form
           Label Colors
           Command cancel
           Command set_color_ok
           Form mixedForm (for Pen Color)
               Toggle mixedEdit
               Core mixedColor
               Text tripleValue
           Form mixedForm (for Fill Color)
               Toggle mixedEdit
               Core mixedColor
               Text tripleValue
           Label stdLabel
           Form stdForm
               Command stdColor (one for each of 33 std colors)
           Label userLabel
           Form userForm
               Viewport userViewport
                   Core clip
                   Scrollbar horizontal
                   Box userBox
                    Label colorMemory (one for each user color)
               Command addColor
               Command delColor
               Command undelColor
               Form mixingForm
                   Label redLocked
                   Label greenLocked
                   Label blueLocked
                   Label lockedLabel
                   Scrollbar redScroll
                   Scrollbar greenScroll
                   Scrollbar blueScroll
                   Scrollbar lockedScroll
                   Label hueLabel