XFIG(1) UNIX System V(Release 2.1 (Protocol 2.1)) XFIG(1)
NAME
xfig - Facility for Interactive Generation of figures under X11
SYNOPSIS
xfig [options] [file]
DESCRIPTION
Xfig is a menu-driven tool that allows the user to draw and manipulate
objects interactively in an X window. It runs under X version 11 release
4 or higher and requires a 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.
The TransFig package is used to print the output from xfig.
Note for previous xfig users:
The f2p and f2ps translators have been phased out because the TransFig
package from Micah Beck is a more general purpose translator for more
graphics languages. The TransFig package can be used as a back-end
processor to xfig 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.
Postscript -
fig2dev -L ps produces a postscript 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 from the contributed software on the
distribution tapes of X11 Release 5 from MIT and from ftp.cs.cornell.edu
(directory /pub/fig) and sun.soe.clarkson.edu (directory /pub/transfig)
via anonymous ftp. It is also available by mail from the Clarkson
archive server. To find out about using the server, send the one-line
message "help" to archive-server@sun.soe.clarkson.edu.
OPTIONS
-ri[ght]
Change the position of the side panel window to the right of the
canvas window (default: left).
10/89 Page 1
XFIG(1) UNIX System V(Release 2.1 (Protocol 2.1)) XFIG(1)
-le[ft]
Change the position of the side panel window to the left of the
canvas window.
-L[andscape]
Make xfig come up in landscape mode (10" x 8"). This is the
default.
-P[ortrait]
Make xfig come up in portrait mode (8" x 9").
-pw[idth] units
Make xfig come up units wide (where units are either cm or in).
-ph[eight] units
Make xfig come up units high (where units are either cm or in).
-tr[ack]
Turn on cursor (mouse) tracking arrows (default).
-not[rack]
Turn off cursor (mouse) tracking arrows.
-inc[hes]
Make inches the unit of choice (default).
-me[tric]
Make centimeters the unit of choice.
-inv[verse]
Use inverse video (white on black).
-de[bug]
Turn on debugging mode.
-nor[mal] font
Cause the font used for the message panel and ruler numbers to be
font. This font is also used on the canvas when the selected font
is not available in an X11 font (default = fixed).
-bu[tton] font
Cause the font used for most buttons to be font (default = 6x13).
-bol[d] font
Cause the font used for displaying confirmation messages to be font
(default = 8x13bold).
-startf[ontsize] pointsize
Set the default font size for text objects (default = 12pt).
Page 2 10/89
XFIG(1) UNIX System V(Release 2.1 (Protocol 2.1)) XFIG(1)
-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.
-internalBW width
Use lines of width width between all buttons and panels (default =
1).
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, ENCAPSULATED POSTSCRIPT, 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 cannot be rotated (on-screen) or flipped. The
attributes of any primitive object can be edited using a popup panel
(discussed below), so you can, for instance, set the rotation angle for
printed TEXT primitives.
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.
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
Nine regions comprise the display area of xfig: the command region, top
ruler, side ruler, drawing mode region, editing mode region, message
region, indicator region with buttons to set and show current line
thickness, line style, area-fill gray color and several other settings,
mouse function indicator region and canvas region. (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 the left button on a confirm/cancel popup menu.
10/89 Page 3
XFIG(1) UNIX System V(Release 2.1 (Protocol 2.1)) XFIG(1)
Delete ALL
Delete all objects from the canvas window (may be undone).
Undo Undo the last object creation, deletion or modification.
Redraw
Redraw the canvas.
Paste Paste the object previously copied into the cut/paste file into the
current figure (at its original position).
File Left mouse button pops up a menu which contains several file-
related functions:
Directory
This is an editable AsciiTextWidget which contains the current
directory.
File This is an editable AsciiTextWidget which contains the current
filename.
Cancel
This pops down the file panel without making any changes to the
directory or file name.
Save Save the current contents of the canvas in the file specified in
the File menu item. If the file already exists a confirmation
popup menu will appear asking the user to confirm or cancel the
save.
Load The current contents of the canvas are cleared and the figure is
read from the filename specified in the File menu item. This file
will become the current file.
Merge Read
Read figure from the filename specified in the File menu item and
merge it with the figure already shown on the canvas. The filename
in the File will revert to the previous filename after this
function is completed.
Right mouse button invokes Save function without popping up the file
panel.
Export
Will let you export the figure to an output file in one of several
formats. Left mouse button pops up 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.
Page 4 10/89
XFIG(1) UNIX System V(Release 2.1 (Protocol 2.1)) XFIG(1)
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.
Language
The translation language to use for xfig output when output is
directed to a file. The default is Postscript. The figure may be
saved as an X11 bitmap by choosing Xbitmap as the output language.
The bitmap is created from the figure, the size of which is
determined by the enclosing rectangle of all the figure plus a
small border.
Default Output File
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.
Output File
This is an editable AsciiTextWidget which contains the filename to
use to write output to a file.
Cancel
This button will pop down the print menu without doing any print
operation.
Export
This button writes 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.
Right mouse button invokes Export function without popping up the export
panel.
Print Left mouse button 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.
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.
10/89 Page 5
XFIG(1) UNIX System V(Release 2.1 (Protocol 2.1)) XFIG(1)
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 using the resource *printer*string:
Cancel
This button will pop down the print menu without doing any print
operation.
Print This button sends the figure to the printer. 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
/tmp/xfig-printPID, where PID is the process ID of xfig.
Right mouse button invokes Print function without popping up the print
panel.
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 the left mouse button 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).
Pressing the middle mouse button 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 the right mouse button 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 integer zoom scale is
displayed within the zoom button. Ruler, grid and
linewidth are scaled, too.
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 the
middle or right button will decrease(increase) the
angle in steps of 15 degrees. To select other
angles, press the left button and enter the angle in
the popup menu.
Page 6 10/89
XFIG(1) UNIX System V(Release 2.1 (Protocol 2.1)) XFIG(1)
NUMBER OF POLYGON SIDES
The number of sides used in creating a REGULAR
POLYGON is set with this button.
GRID MODE
With this button the user may select no grid, 1/4
inch (5mm in metric mode) grid or 1/2 inch (10mm)
grid.
POINT POSITION
This button controls the coarseness of object
placement on the canvas. The options are arbitrary
placement, 1/16 inch (2mm 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.
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. The HORIZONTAL ALIGN and
VERTICAL ALIGN indicator settings are used together
to align objects inside a compound.
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. The HORIZONTAL ALIGN and
VERTICAL ALIGN indicator settings are used together
to align objects inside a compound.
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.
10/89 Page 7
XFIG(1) UNIX System V(Release 2.1 (Protocol 2.1)) XFIG(1)
LATEX LINE
Allow lines to be drawn only at slopes which can be
handled by LaTeX picture environment lines: slope =
x/y, where x,y 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 x,y 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.
MOUNTAIN
Enforce drawing of only diagonal lines.
AREA FILL
This button allows the user to select the area fill
darkness (grey scale) for all objects except TEXT and
ENCAPSULATED POSTSCRIPT, or to turn off area fill
altogether.
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.
BOX CURVE
The radius of the corners on ARC-BOX objects may be
set with this button.
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 ARC objects.
Page 8 10/89
XFIG(1) UNIX System V(Release 2.1 (Protocol 2.1)) XFIG(1)
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.
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>.
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 the left mouse button on
cancel.
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 it and clicking the
left mouse button. The selected icon is highlighted, and a
message describing its function appears in the message
window.
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 the left button. After that the mouse is
moved to the second point and the left button is again
pressed for the next point. For those objects which may
10/89 Page 9
XFIG(1) UNIX System V(Release 2.1 (Protocol 2.1)) XFIG(1)
have more than two points (e.g. a line), the left button
may be pressed for each successive point, and the middle
button must be pressed to finish the object. To create a
single point using the POLYLINE button, press and release
the middle button. For the ARC object, which requires
exactly three points the left button is used for all three
points.
At any time the right button may be pressed to cancel the
creation of the object.
ARC Create an arc. Specify three points using the left
button.
BOX Create rectangular boxes. Start and finish with the
left button.
ARC-BOX
Create rectangular boxes with rounded corners. Start
and finish with the left button. The radius of the
corners is selected by the BOX CURVE button.
CIRCLE
Create circles by specifying their radii or
diameters. Click the left button on the center of
the circle and drag the mouse until the desired
radius or diameter is attained. Click the left
button again to finish the circle.
Note: if xfig has been compiled with the -DFASTSERVER
flag the circle will be drawn as the user is creating
it (dragging the mouse). Otherwise a rectangular
outline will show the user the size of the circle
until the object is compete.
ELLIPSE
Create ellipses using the same procedure as for the
drawing of circles.
ENCAPSULATED POSTSCRIPT OBJECT (EPS)
Click the left button on either the upper-left or
lower-right corner for the EPS object and finish by
clicking the left button again on the opposite
corner. The EDIT popup panel will appear and the
file name of the EPS object may be entered. After
pressing DONE or APPLY the bitmap part of the EPS
object will appear in the box just created. If no
EPS file is available yet or no name is entered or
there is no preview bitmap in the EPS file, pressing
DONE will pop down the edit panel and the word
<empty> or the EPS file name will remain in the EPS
box. Later, when the name of the EPS file is known
Page 10 10/89
XFIG(1) UNIX System V(Release 2.1 (Protocol 2.1)) XFIG(1)
or the file is available, you may re-read the EPS
file using the popup edit panel and the bitmap part
of the EPS file will replace the name in the box.
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.
POLYLINE
Create polylines (line segments connecting a sequence
of points). Enter points by clicking the left button
at the desired positions on the canvas window. Click
the middle button to finish.
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 the left
button 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 the left
button 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.
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.
10/89 Page 11
XFIG(1) UNIX System V(Release 2.1 (Protocol 2.1)) XFIG(1)
TEXT Create text strings. Click the left button at the
desired position on the canvas window, then enter
text from the keyboard. Text is drawn using the
current font, font size and justification settings.
A DEL or ^H (backspace) will delete a character,
while a ^U or ^X will erase the entire line. Finish
by clicking the middle button 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 the middle button or choose any
panel button that changes modes (e.g. box, save,
etc). To edit text, click on an existing text string
with the left button. Insertion of characters will
take place at that point. Or, use the popup EDIT
mode to modify the text.
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 the left mouse button:
the markers of one object will be highlighted. By
repeatedly clicking the left button 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
Create a compound object by clicking the left mouse
button near the upper-left area to enclose then drag
Page 12 10/89
XFIG(1) UNIX System V(Release 2.1 (Protocol 2.1)) XFIG(1)
the mouse to the lower-right area and click the left
button again. The rubber-band rectangle will
disappear and four corner markers will appear,
marking the boundaries of the compound object.
BREAK COMPOUND
Break a compound object to allow manipulation of its
component parts. Click the left button on the one of
the corner markers of the compound object or along
one of the imaginary lines defining the compound box.
SCALE OBJECT
Any object may be scaled. If the left button is
pressed on a BOX or ARC-BOX object, then that object
will be scaled proportionally to its aspect ratio.
If the middle button is pressed on any object, that
object will be scaled up or down about its center.
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 This button will align objects inside a compound
object according to the setting in the VERTICAL ALIGN
and HORIZONTAL ALIGN indicators. 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.
MOVE POINT
Modify the position of a point of any object except
TEXT and COMPOUND objects. For unrestrained
movement, click the left button over the desired
point, reposition the point, and click the left
button again. For horizontally or vertically
constrained move, click the middle button 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 otherwords 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 the left to place it if the left
button was used to start the move (unconstrained), or
the middle button (constrained) if that button was
10/89 Page 13
XFIG(1) UNIX System V(Release 2.1 (Protocol 2.1)) XFIG(1)
used.
MOVE Move object. Click the left (unconstrained move) or
middle (constrained move) button on any corner marker
of the object to be moved. The horizontal/vertical
constrained movement (middle button) 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 the left
(unconstrained copy) or middle (constrained copy)
button 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 right button 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 /tmp, called xfigPID
where PID is the xfig process ID.
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 the left button on an object to delete the
object. Delete a region of the canvas by clicking
the middle button and dragging the mouse to define an
area of objects to delete. Clicking the right button
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 the left
button 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
Page 14 10/89
XFIG(1) UNIX System V(Release 2.1 (Protocol 2.1)) XFIG(1)
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.
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.
_________________________________________________________________________________________
| | † Angle
| Area
| Line| Line| Box| ‡ Depth
| * Color
| Radius
| Text |
| Object | | Fill
| Width
| Style
| Curve
| | | | Font Just. Size|
|||||||||||||
|Arc | | \/| \/ | \/ | | \/ | \/ | | | | |
|_______________|________|____|_____|_____|_____|_______|_______|______|____|_____|_____|
|Arc-Box | | \/| \/ | \/ | \/ | \/ | \/ | | | | |
|_______________|________|____|_____|_____|_____|_______|_______|______|____|_____|_____|
|Circle | \/ | \/| \/ | \/ | | \/ | \/ | \/ | | | |
|_______________|________|____|_____|_____|_____|_______|_______|______|____|_____|_____|
|Ellipse | \/ | \/| \/ | \/ | | \/ | \/ | \/ | | | |
|_______________|________|____|_____|_____|_____|_______|_______|______|____|_____|_____|
|EPS | | | | | | \/ | \/ | | | | |
|_______________|________|____|_____|_____|_____|_______|_______|______|____|_____|_____|
|Box, Line, | | | | | | | | | | | |
|Polygon, Spline| | \/| \/ | \/ | | \/ | \/ | | | | |
|_______________|________|____|_____|_____|_____|_______|_______|______|____|_____|_____|
|Text | \/ | | | | | \/ | \/ | | \/| \/ | \/ |
|_______________|________|____|_____|_____|_____|_______|_______|______|____|_____|_____|
† The angle may be set, but the object will only be
rotated on Postscript output. The angle may only be
set with the popup edit menu.
‡ The depth defines how overlapping objects are
displayed. Objects with a greater depth value are
obstructed by objects with smaller depth value. This
may only be changed in the popup edit menu.
* Although the color of objects is not yet supported
by xfig or any of the output translators, the color
value (integer) may be edited in objects using the
popup edit menu.
UPDATE
By pressing the left button on an object, the current
settings for the indicator buttons (line width, line
style, area fill etc.) are copied into that object.
If the middle button is clicked on an object, the
settings in the object are copied into the indicator
10/89 Page 15
XFIG(1) UNIX System V(Release 2.1 (Protocol 2.1)) XFIG(1)
button settings. Thus, one may copy attributes of
one object to another. The depth and color
attributes are not copied when updating objects.
FLIP VERTICALLY
Flip the object up/down (left button) or copy the
object and flip it (middle button). Point to part of
the object, click the appropriate button. That
object will be flipped vertically about that point.
FLIP HORIZONTALLY
Flip the object left/right (left button) or copy the
object and flip it (middle button). Point to part of
the object, click the appropriate button. That
object will be flipped horizontally about that point.
ROTATE CLOCKWISE
Rotate the object (left button) or copy and rotate it
(middle button) -N degrees (clockwise), where N is
the amount set in the rotation indicator button. The
object is rotated about the chosen point. Not all
objects can be rotated, and not all can be rotated at
arbitrary angles. For example, BOX, ARC-BOX and EPS
objects may only be rotated by multiples of 90
degrees, and TEXT objects may not be rotated at all.
If a COMPOUND object contains any TEXT objects, the
texts are moved but not rotated.
ROTATE COUNTER-CLOCKWISE
Rotate the object (left button) or copy (middle
button) +N degrees (counter-clockwise), where N is
the amount set in the rotation indicator button. The
object is rotated about the chosen point.
SPLINE <-> POLYLINE
Turn POLYGON into a CLOSED INTERPOLATED SPLINE
object, or turn POLYLINE into a INTERPOLATED SPLINE
object.
ADD/DELETE ARROWS
Add or delete arrow heads of ARC, POLYLINE or SPLINE
objects. Add an arrow head by clicking the left
button on the endpoint of the object. Delete an
arrow head by clicking middle button on the endpoint
or arrow head.
PANNING
The figure may be panned by clicking the left, middle or
right mouse button in the rulers. Clicking the left button
in the top ruler will pan the image to left the by 1/2 inch
(1cm in metric mode), adjusted for zoom factor. Clicking
the right button in the top ruler will pan the image right
Page 16 10/89
XFIG(1) UNIX System V(Release 2.1 (Protocol 2.1)) XFIG(1)
by the same amount. By pressing and holding the middle
button the user may drag the ruler by the amount desired,
thus panning the image by that amount.
The figure is panned up and down in the same way by
clicking the mouse in the ruler on the right of the canvas.
Also, the figure can be returned to it's origin by clicking
the left mouse button in the unit's box.
The arrow keys may also be used to pan the image and the
home key to return 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 equivalent
________________________________________________________________________________________________
justify Justify boolean false -left (false) and -right (true)
landscape Orientation boolean true -Landscape and -Portrait
pwidth Width integer 10(8) -pwidth
pheight Height integer 8(9.5) -pheight
trackCursor Track boolean on -track and -notrack
inches Inches boolean true -inches, -imperial,
-centimeters and -metric
reverseVideo ReverseVideo boolean off -inverse
debug Debug boolean off -debug
normalFont NormalFont string fixed -normal
boldFont ButtonFont string 8x13bold -bold
startfontsize StartFontSize integer 12 -startfontsize
showallbuttons ShowAllButtons boolean false -showallbuttons
internalborderwidth InternalBorderWidth integer 1 -internalBW
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
Label message
Command button (one for each of the 8 buttons)
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
10/89 Page 17
XFIG(1) UNIX System V(Release 2.1 (Protocol 2.1)) XFIG(1)
Box ind_panel
Command button (one for each of the 17 indicator buttons)
TransientShell xfig: ps font menu
Box menu
Form buttons
Command cancel
Command use latex fonts
Command pane (one for each of the 35 Postscript font panes)
TransientShell xfig: latex font menu
Box menu
Form buttons
Command cancel
Command use postscript fonts
Command pane (one for each of the 6 LaTeX font panes)
TransientShell xfig: file menu
Form file_panel
Label dir label
Text directory
Label file label
Text file
Label file status
Command cancel
Command save
Command load
Command merge
TransientShell xfig: export menu
Form export_panel
Label mag label
Text magnification
Label orient label
MenuButton landscape
SimpleMenu menu
SmeBSB portrait
SmeBSB landscape
Label lang label
MenuButton ps
SimpleMenu menu
SmeBSB box
SmeBSB epic
SmeBSB eepic
SmeBSB eepicemu
SmeBSB latex
SmeBSB null
SmeBSB pic
SmeBSB pictex
SmeBSB ps
SmeBSB pstex
SmeBSB pstex_t
SmeBSB textyl
SmeBSB tpic
SmeBSB Xbitmap
Label file label
Page 18 10/89
XFIG(1) UNIX System V(Release 2.1 (Protocol 2.1)) XFIG(1)
Label file label
Label file label
Text file
Command cancel
Command export
TransientShell xfig: print menu
Form print_panel
Label printer image
Label mag label
Text magnification
Label orient label
MenuButton landscape
SimpleMenu menu
SmeBSB portrait
SmeBSB landscape
Label just label
MenuButton flush left
SimpleMenu menu
SmeBSB flush left
SmeBSB centered
Label dir label
Text printer
Command cancel
Command print
NOTE: The following is a typical popup edit panel (for ARC-BOX)
The panel will be different for other objects.
TransientShell xfig: edit panel
Form form
Label POLYLINE:ArcBox
Label image
Command done
Command apply
Command cancel
Label
Label Width =
Text Width =
Label Color =
Text Color =
Label Depth =
Text Depth =
Label Area fill =
MenuButton No fill
SimpleMenu menu
SmeBSB No fill
SmeBSB Filled
Label Fill density % =
Text Fill density % =
Label Line style =
MenuButton Solid Line
SimpleMenu menu
10/89 Page 19
XFIG(1) UNIX System V(Release 2.1 (Protocol 2.1)) XFIG(1)
SmeBSB Solid Line
SmeBSB Dashed Line
SmeBSB Dotted Line
Label Dash length/Dot gap =
Text Dash length/Dot gap =
Label Top Left:
Label Top Left:
Text Top Left:
Label Top Left:
Text Top Left:
Label Bottom Right:
Label Bottom Right:
Text Bottom Right:
Label Bottom Right:
Text Bottom Right:
Label Radius =
Text Radius =
BUGS and RESTRICTIONS
Please send bug reports, fixes, new features etc. to:
bvsmith@lbl.gov (Brian V. Smith)
Not all operations employ smart redrawing of objects which
are altered as a by product of the operation. You may need
to use Redraw in these cases.
Must compile xfig with -DOPENWIN in order to make xfig
handle OpenWindows scalable fonts correctly.
There is a bug in OpenWindows 2.0 which relates to pixmaps
in widgets. You must compile xfig with the -DOPENWIN_BUG
option for this problem.
If the image is panned or the xfig window iconified and
de-iconified during the middle of an operation (e.g. while
drawing a line), the picture will be distorted. This can
be corrected using Redraw after the operation is complete.
Rotated text and ellipses will be displayed horizontally on
the screen. They will be rotated only when printed on
Postscript output.
Corners of object scaled with point positioning in one of
the grid modes will not always fall on the grid line, but
to the closest pixel.
SEE ALSO
Brian W. Kernighan PIC - A Graphics Language for
Typesetting User Manual
fig2dev(1) (TransFig package)
Page 20 10/89
XFIG(1) UNIX System V(Release 2.1 (Protocol 2.1)) XFIG(1)
ACKNOWLEDGEMENT
Many thanks goes to Professor Donald E. Fussell who
inspired the creation of this tool.
COPYRIGHT
Original Copyright (c) 1985 by Supoj Sutanthavibul
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby
granted without fee, provided that the above copyright
notice appear in all copies and that both that copyright
notice and this permission notice appear in supporting
documentation, and that the name of M.I.T. not be used in
advertising or publicity pertaining to distribution of the
software without specific, written prior permission.
M.I.T. makes no representations about the suitability of
this software for any purpose. It is provided "as is"
without express or implied warranty.
AUTHORS
Many people have contributed to xfig. Here is a list of
the people who have contributed the most:
Original author:
Supoj Sutanthavibul, University of Texas at Austin
The LaTeX line drawing modes were contributed by:
Frank Schmuck, Cornell University
(schmuck@svax.cs.cornell.edu)
Original X11 port by:
Ken Yap, Rochester (ken@cs.rochester.edu)
Variable window sizes, cleanup of X11 port, right hand side
panel:
Dana Chee, Bellcore (dana@bellcore.com)
Cleanup of color port to X11 by:
John T. Kohl, MIT (jtkohl@athena.mit.edu)
Area fill, multiple line thicknesses, multiple fonts and
font sizes, bottom panel, line style/thickness modification
of objects by:
Brian V. Smith, Lawrence Berkeley Laboratory
(standard disclaimer applies)
(bvsmith@lbl.gov)
Popup change-object menu by:
Jon Tombs (jon%robots.oxford.ac.uk@nsfnet-relay.ac.uk), and
Frank Schmuck (schmuck@svax.cs.cornell.edu)
Zooming and panning functions, shift key select mechanism
10/89 Page 21
XFIG(1) UNIX System V(Release 2.1 (Protocol 2.1)) XFIG(1)
by:
Dieter Pellkofer (dip@regent.e-technik.tu-muenchen.de), and
Henning Spruth (hns@regent.e-technik.tu-muenchen.de)
Depth feature by:
Mike Lutz (mjl@cs.rit.edu)
Version 2.1 extensive modifications: Indicator panel, file
menu popup, print menu popup, panning with rulers, mouse
function window, regular polygon, rubberbanding of
circles/ellipses, filled splines on canvas, dashed/dotted
splines on canvas, update button, arbitrary angle rotation
of objects, alignment in compound, object scaling,
constrained copy/move, corner markers for compound, context
sensitive corner markers, smarter redraw, undo for compound
and point move for boxes, cancel object creation, point
positioning to three resolutions, TransFig scalable text,
hidden text, special text, save of figure on crash by:
Paul King (king@cs.uq.oz.au)
with help from:
Brian V. Smith (bvsmith@lbl.gov) and Micah Beck
(beck@cs.cornell.edu)
Encapsulated Postscript importing by:
Brian Boyter (root@fstc-chville.army.mil)
Page 22 10/89