Table of Contents
xfig - Facility for Interactive Generation of figures under X11
xfig
[options] [file]
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.
Note: TransFig versions 2.1.4 and later support color output for PostScript.
- -ri[ght]
- Change the position of the side panel window to the right
of the canvas window (default: left).
- -le[ft]
- Change the position of the
side panel window to the left of the canvas window.
- -mo[nochrome]
- Use black
and white only.
- -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).
- -fg color
- Use color as the
foreground color and default color for objects. -bg color Use color as the
background color for the canvas and buttons.
- -de[bug]
- Turn on debugging
mode. Prints various debugging messages like font names etc.
- -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).
- -startp[sFont] font
- Set the starting font name for Postscript fonts.
- -startl[atexFont]
font
- Set the starting font name for LaTeX fonts.
- -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).
- -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.
- -sp[ecialtext]
- Start xfig with the special text mode for text objects.
- -sc[alablefonts]
- Allows use of the X11R5 scalable fonts.
- -k[eyFile] compose-key-file
- Use compose-key-file
instead of CompKeyDB for compose key database. This file must be in the
xfig libarary directory, usually /usr/local/lib/xfig.
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
may not be flipped. It may be rotated but only the markers show the rotation
(on-screen). Text IS rotated on PostScript output. 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, arc-boxes, ellipses or circles may only be rotated by 90 degrees.
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.
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, color,
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).
- 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.
- 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 panel which contains several
file-related functions:
- Current Filename
- This is a label widget showing
the current filename. It is automatically updated from the Filename Ascii
widget when the Load operation is executed, either by pressing the Load
button or pressing return in the Filename window.
- Filename
- This is an editable
AsciiTextWidget which contains the current filename. Pressing return in
the Filename window will Load the file and update the Current Filename
widget.
- (File) Alternatives
- Pressing the left mouse button on a filename
in the file alternatives window will select that file by copying the filename
into Filename window.
- 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 resource
*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 the left
mouse button on a directory name in the directory alternatives list will
do a "change directory" to that directory.
Pressing the right mouse button
in either the file or Directory Alternatives window will do a "change
directory" to the parent directory.
- Home
- This button will change the current
directory to the user's home directory.
- Rescan
- This button will rescan the
current directory.
- 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. Pressing return in the
file name window will also load the file.
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. The messages will be cleared before reading a new
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.
See Load above for a description of the popup message window.
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 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.
- 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 window will only be sensitive when the language
selected is "ps" (PostScript). You may choose that the figure is flush
left or centered in the output file.
- 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 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.
- 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.
- (File) Alternatives
- Pressing the left mouse button on a filename
in the file alternatives window will select that file by copying the filename
into Filename window.
- 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 resource
*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.
The
~ (tilde) character may be used to specify a user's home directory, ala
unix shell tilde expansion.
- (Directory) Alternatives
- Pressing the left
mouse button on a directory name in the directory alternatives list will
do a "change directory" to that directory.
Pressing the right mouse button
in either the file or Directory Alternatives window will do a "change
directory" to the parent directory.
- Home
- This button will change the current
directory to the user's home directory.
- Rescan
- This button will rescan the
current directory.
- 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. Pressing
return in the Output Filename window will also Export the file.
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.
- 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 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.
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). 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 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 zoom scale is displayed within the zoom button. Ruler,
grid and linewidth are scaled, too. Pressing the middle button 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 the right button 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 the right
mouse button 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
left mouse button together. This will define one corner of the zoom rectangle.
Move the mouse and click the left button 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 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.
- 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.
- 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.
- 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. 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.
- 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.
- FILL STYLE
- 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.
- COLOR
- The user may select one of eight
predefined colors to draw with, or select that the default (-fg) color
is to be used. The eight colors are black, blue, green, cyan, red, magenta,
yellow and white. Note that TransFig versions 2.1.4 and later support color
output for PostScript. On monochrome screens the objects are created with
the selected color, but black 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.
- 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.
- 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.
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.
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 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.
- 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
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.
If you want the original size of the EPS 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 EPS file. If you want the EPS 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.
- 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.
- TEXT
- Create
text strings. Click the left button at the desired position on the canvas
window, then enter text from the keyboard. Text may be pasted from the
PRIMARY cut buffer (xterm cut/paste buffer) by pressing F18 function
key 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
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.
Eight-bit characters may be entered using the meta (compose) key. For
example, to create an "a umlaut", hold down the meta key while pressing
the letter "a", then press " (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:
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
\ acute
** 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
o` o accent grave
o/ o accent acute
o^ o accent circumflex
o~ o accent tilde
o" o dieresis
o/ o slash
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
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.
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 temporarily 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
- Compound
objects are created by first tagging the objects to be compounded and
then pressing the right mouse button to group the tagged objects into
a compound object. Single objects are tagged by clicking on them with
the left button. A number of objects can be tagged at once by using the
middle button 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 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. Clicking with the middle button 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 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 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 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.
| Object | Angle | Area | Line | Line | Box | Depth | Color | Radius | Text Font/ |
| | Fill | Width | Style | Curve | | | | Just./Size |
| Arc | | X | X | X | | X | X |
| Arc-Box | | X | X | X | X | X | X |
| Circle | X | X | X | X | | X | X | X |
| Ellipse | X | X | X | X | | X | X | X |
| EPS | | | | | | X | X |
| Box,Polygon, | X | X | X | | X | X |
| Line,Spline |
| Text | X | | | | | X | X | | X |
The angle may be set, but the object will only be rotated
on PostScript output.
The depth defines how overlapping objects are displayed.
Objects with a greater depth value are obstructed by objects with smaller
depth value. The maximum depth allowed is 1000.
- UPDATE
- By pressing the
left button 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 the left mouse button
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 the middle
button 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 (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 90 degrees.
Text objects may be rotated although only the markers are rotated on
the screen, but the text itself is not displayed rotated because of the
limitations of the X11 Window System. Text IS rotated correctly on PostScript
output, however.
- 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.
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 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 its origin by clicking the left mouse button 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 the middle mouse button will pan the figure to the origin.
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 |
| latexfonts | Latexfonts | boolean | off | -latexfonts |
| normalFont | NormalFont | string | fixed | -normal |
| boldFont | ButtonFont | string | 8x13bold | -bold |
| startfontsize | StartFontSize | integer | 12 | -startfontsize |
| startpsFont | StartpsFont | string | Times-Roman | -startpsFont |
| startlatexFont | StartlatexFont | string | Default | -startlatexFont |
| showallbuttons | ShowAllButtons | boolean | false | -showallbuttons |
| internalborderwidth | InternalBorderWidth | integer | 1 | -internalBW |
| scalablefonts | ScalableFonts | boolean | false | -scalablefonts |
| monochrome | Monochrome | boolean | false | -monochrome |
| keyFile | KeyFile | string | CompKeyDB | -keyFile |
| color0 | Color0 | pixel | black |
| color1 | Color1 | pixel | blue |
| color2 | Color2 | pixel | green |
| color3 | Color3 | pixel | cyan |
| color4 | Color4 | pixel | red |
| color5 | Color5 | pixel | magenta |
| color6 | Color6 | pixel | yellow |
| color7 | Color7 | pixel | white |
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
Box ind_panel
Form button_form
Command
button (one for each of the 20 indicator buttons)
Toggle update (some
have update buttons, some don't)
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_msg
Form file_msg_panel
Text file_msg_win
Command dismiss
TransientShell xfig_file_menu
Form file_panel
Label file_status
Label
num_objects
Label file_label
Text file_name
Label filename
Viewport
vport
Core clip
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
List dir_list_panel
Command rescan
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 just_label
MenuButton justify
SimpleMenu menu
SmeBSB flush left
SmeBSB centered
Label lang_label
MenuButton eps
SimpleMenu
menu
SmeBSB box
SmeBSB epic
SmeBSB eepic
SmeBSB eepicemu
SmeBSB latex
SmeBSB null
SmeBSB pic
SmeBSB pictex
SmeBSB
eps
SmeBSB ps
SmeBSB pstex
SmeBSB pstex_t
SmeBSB textyl
SmeBSB tpic
SmeBSB Xbitmap
Label def_file_label
Label def_file_name
Label out_file_name
Text file
Label filename
Viewport vport
Core
clip
List file_list_panel
Scrollbar vertical
Label mask_label
Text
mask
Label dir_label
Text dir_name
Label dir_alt_label
Command home
Viewport dirvport
Core clip
List dir_list_panel
Command rescan
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 justify
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
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 =
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, circles 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.
Brian
W. Kernighan PIC - A Graphics Language for Typesetting User Manual
fig2dev(1)
(TransFig package)
Many thanks goes to Professor Donald
E. Fussell who inspired the creation of this tool.
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.
PostScript is a trademark
of Adobe Systems Incorporated.
- CompKeyDB - Data base of compose key
sequences for 8-bit characters.
- Must be installed in $(XFIGLIBDIR) with
'make install'. See the Imakefile.
- Doc/FORMAT2.1 - Description of Fig file
format.
- CHANGES - Description of bug fixes/new features.
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 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)
Color implementation and pan/zoom with ctrl key/mouse by:
Henning Spruth
(hns@regent.e-technik.tu-muenchen.de)
International characters by:
Herver Soulard
(soulard@corto.inria.fr)
Directory Browser based on XDir by:
Win Treese,
Digital Equipment Corporation (treese@crl.dec.com)
Table of Contents