XFIG(1)XFIG(1)NAMExfig - Facility for Interactive Generation of figures
under X11
SYNOPSISxfig [options] [file]
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 objects in the file
will be read at the start of xfig.
For a HTML-based xfig reference guide, see the Help menu
in xfig or index.html provided with the xfig distribution,
usually in the Doc/www directory. There are both English
and Japanese versions.
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://ftp.x.org/contrib/applications/drawing_tools/xfig
and usually from ftp://epb1.lbl.gov/xfig .
The TransFig package is used when printing or exporting
the output from xfig. The fig2dev program from the Trans-
Fig package 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. fig2dev -L tk produces a
tk output. This is for the tcl/tk tool com-
mand language/tool kit package. Canvas
objects are generated from the Fig primi-
tives and a toplevel canvas is created.
Bitmaps fig2dev can also convert Fig to GIF, JPEG,
PCX, PNG, PPM, TIFF (no compression), XBM,
XPM, and AutoCAD Slide.
IBM-GL fig2dev -L ibmgl produces a IBM-GL (HP/GL)
output.
Pic fig2dev -L pic produces a pic output.
Version 3.2 Patchlevel 2 (Protocol 3.2, July 2, 1998) 1
XFIG(1)XFIG(1)
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 lan-
guages: 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.
-bal[loon_delay] msec
Cause popup information balloons to be delayed by
msec milliseconds. The default is 500 millisec-
onds.
-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.
-cbg color
Use color as the background color for the canvas.
If you want to set the background of everything in
xfig (e.g. menus, etc.) use the general -bg option.
-center
Set the print option to print the figure centered
on the page. This is the default.
-centim[ers]
Make centimeters the unit of choice. See also
-metric.
-cfg color
Use color as the default color for objects. If you
want to set the foreground of everything in xfig
(e.g. menus, etc.) use the general -fg option.
-deb[ug]
Turn on debugging mode. Prints various debugging
Version 3.2 Patchlevel 2 (Protocol 3.2, July 2, 1998) 2
XFIG(1)XFIG(1)
messages like font names etc.
-dep[th]
Choose depth of visual desired. Your server must
support the desired visual and depth chosen. Use
xdpyinfo to see what visuals and depths are sup-
ported. See also the -visual option.
-dontsh[owballoons]
Prevents xfig from popping up the information bal-
loons. See also -showballoons.
-dontsw[itchcmap]
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 export-
ing a fig file. Choices are:
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 (both PS and LaTeX parts)
textyl Textyl special commands
tpic TPIC
pic PIC
mf MF (MetaFont)
acad ACAD (AutoCad slide)
pcx PCX
png PNG
gif GIF*
jpeg JPEG (JFIF)
tiff TIFF
tk TK
ppm PPM (portable pixmap package)
xbm X11 Bitmap
xpm X11 Pixmap (XPM3 package)
*xfig must be compiled with USEGIF to have GIF export.
See README file for patent warning.
-------------------------------------------
-fl[ushleft]
Set the print option to print the figure flush
Version 3.2 Patchlevel 2 (Protocol 3.2, July 2, 1998) 3
XFIG(1)XFIG(1)
left. The default is to center the figure on the
page.
-geom[etry] [WxH][+X+Y]
You may use the -geometry option or resource to
size and/or position the xfig window, or you may
use -pwidth and/or -pheight to specify the canvas
size in inches or centimeters.
-iconG[eometry] +X+Y
Specifies the position for the icon.
-im[age_editor] editor
Specify bitmap editor to use when ``Edit Image''
button is pressed in Picture Object panel.
-inc[hes]
Make inches the unit of choice (default).
-internalBW width
Use lines of width width between all buttons and
panels (default = 1).
-k[eyFile] compose-key-file
Use compose-key-file instead of CompKeyDB for com-
pose (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.
-lan[dscape]
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.
See also -portrait.
-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.
-li[brary_dir] directory
Specify directory where Fig object libraries are
located. There may be sub-directories there and
Version 3.2 Patchlevel 2 (Protocol 3.2, July 2, 1998) 4
XFIG(1)XFIG(1)
sub-sub-directories, etc.
-mag[nification] mag
Set export and print magnification in %.
-max[_image_colors] numcols
Limit the number of colors used for EPS, GIF, JPEG,
PCX or XPM images to numcols (default 64).
-me[tric]
Make centimeters the unit of choice. Also -cen-
timeters.
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.
-mo[nochrome]
Use black and white only.
-mu[ltiple]
Sets multiple page mode for print or export. See
also -single.
-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).
-nos[calablefonts]
Disables use of the X11R5 or OpenWindows scalable
fonts. You might want to use this for debugging.
-not[rack]
Turn off cursor (mouse) tracking arrows.
-pa[per_size] size
Set the initial paper size for Export and Print.
Choices are
Letter (8.5" x 11"),
Legal (8.5" x 14"),
Ledger ( 17" x 11"),
Tabloid ( 11" x 17"),
A (8.5" x 11"),
B ( 11" x 17"),
C ( 17" x 22"),
D ( 22" x 34"),
E ( 34" x 44"),
A4 (21 cm x 29.7cm),
A3 (29.7cm x 42 cm),
A2 (42 cm x 59.4cm),
A1 (59.4cm x 84.1 cm),
Version 3.2 Patchlevel 2 (Protocol 3.2, July 2, 1998) 5
XFIG(1)XFIG(1)
A0 (84.1 cm x 118.9cm),
B5 (18.2cm x 25.7cm)
Note that this doesn't affect the size of the draw-
ing canvas. Use the -pheight and -pwidth options
for that.
-ph[eight] height
Make the xfig canvas height high (where height is
either cm or in, depending on the -metric setting).
-po[rtrait]
Make xfig come up in portrait mode (8.5" x 9").
See note about landscape mode.
-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.
-showa[llbuttons]
Show all the xfig indicator buttons instead of only
those relevant to the current drawing mode. Nor-
mally, 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.
-showb[alloons]
Forces xfig to pop up the information balloons when
the mouse passws over a button. This is the
default. See also -dontshowballoons.
-showl[engths]
Makes xfig show the lengths of lines being drawn,
in red text near the line itself. Also, when
points are moved or added. In addition, imagine a
triangle formed with the line segment as the
hypotenuse, and a vertical and horizontal line
forming the other two sides. These lines and their
lengths are also drawn in red as the point is moved
or added. This mode is ignored when drawing in
Version 3.2 Patchlevel 2 (Protocol 3.2, July 2, 1998) 6
XFIG(1)XFIG(1)
freehand mode.
This flag may be toggled by pressing <Meta>i
(default).
-si[ngle]
Sets single page mode for print or export. This is
the default. See also -multiple.
-spec[ialtext]
Start xfig with the special text mode for text
objects. Special text means that special charac-
ters in the string are not specially processed but
are passed directly to LaTeX. This is most useful
for writing LaTeX equations. 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.
-spel[lcheckcommand] command
Use command for the external spell checking program
when using the spell check/search/replace popup.
The string command should include the string ``%s''
which is replaced by a temporary filename. Default
is ``spell %s''.
-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.
-startli[newidth] width
Set the starting line width.
-startpo[snmode] modenumber
Set the starting point positioning mode (0 to 4) In
imperial (inches) mode, positioning mode 0 is
``any'', mode 1 is 1/16 inch, mode 2 is 1/4 inch,
mode 3 is 1/2 inch and mode 4 is 1 inch. In metric
mode, mode 0 is ``any'', mode 1 is 1mm, mode 2 is
5mm, mode 3 is 10mm and mode 4 is 20mm.
Version 3.2 Patchlevel 2 (Protocol 3.2, July 2, 1998) 7
XFIG(1)XFIG(1)
-startp[sFont] font
Set the starting font name for PostScript fonts.
-startt[extstep] stepsize
Set the starting text step.
-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 vari-
ables.
-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 infor-
mation 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 dis-
played 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.
-visual visualname
Use visualname as the visual for xfig. The names
are TrueColor (case is not important), StaticColor,
DirectColor, StaticGray, GrayScale and PseudoColor.
xfig uses the default visual unless this is speci-
fied. Your server must support the desired visual.
Use xdpyinfo to see what visuals and depths are
supported. See also the -depth option.
-zoom zoomscale
Set the starting zoom scale.
GRAPHICAL OBJECTS
The objects in xfig are divided into primitive objects and
compound objects. The primitive objects are: ARC, CIRCLE,
ELLIPSE, POLYLINE, POLYGON, PICTURE, BOX, ARC-BOX, CLOSED
SPLINE, OPEN SPLINE, and TEXT.
Version 3.2 Patchlevel 2 (Protocol 3.2, July 2, 1998) 8
XFIG(1)XFIG(1)
A primitive object can be moved, rotated, flipped verti-
cally 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 verti-
cally or horizontally, scaled, copied or erased. A com-
pound 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. Conversions between POLYLINE , POLYGON ,
OPENSPLINE and CLOSEDSPLINE are achieved by the CONVERT
tool.
DISPLAY REGIONS
There are ten regions in the xfig window: the command
region, top ruler, side ruler, drawing mode, editing mode,
filename, message, mouse function indicator, canvas (draw-
ing area), and indicator region with buttons to show and
change settings such as line thickness, line style, color,
etc. (The mouse function indicator region was inspired by
the UPS debugger from the University of Kent.) The draw-
ing and editing mode regions may be placed (together) to
the left or right of the the canvas region (default:
left).
In addition, when the mouse passes over certain buttons or
regions there are ``balloons'' (messages) which popup to
indicate the function of the area under the mouse. These
may be turned on and off by clicking on the button
labelled ``Balloons'', to the right of the message region.
There is a check mark indicating their state.
COMMAND PANEL FUNCTIONS
Quit Exit from xfig, discarding the figure. If the fig-
ure 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 func-
tion. This and all other accelerators are defined
in the app-defaults file and may be changed if
desired.
Version 3.2 Patchlevel 2 (Protocol 3.2, July 2, 1998) 9
XFIG(1)XFIG(1)
Port/Land
Change shape of xfig canvas from/to portrait/land-
scape. 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.
New Delete all objects from the canvas window and erase
current file name to make a new drawing (may be
undone). The accelerator <Meta>n will also perform
this function. If you attempt to save the new fig-
ure using the keyboard accelerator <Meta>s or with
mouse button 3 on the File button the popup file
menu will appear for you to enter a file name.
You may use the accelerator <Meta>d to delete all
the objects from the canvas and retain the current
file name.
Undo Undo the last object creation, deletion or modifi-
cation. 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 unde-
fined.
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. The object
will appear on the canvas under or near the mouse
where it may then be moved and placed by pressing
mouse button 1. 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. Do not
use this function for importing images (picture
objects). See the ``IMPORTING PICTURE OBJECTS''
section.
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.
Version 3.2 Patchlevel 2 (Protocol 3.2, July 2, 1998) 10
XFIG(1)XFIG(1)
Filename
This is an editable AsciiTextWidget which contains
the filename selected either by clicking on a file-
name from the Alternatives list or by typing a name
in directly. Pressing return in the Filename win-
dow will Load the file and copy the name to the
Current Filename widget.
Note that xfig will automatically uncompress or
gunzip any files that have .Z, .z or .gz as the
suffix.
(File) Alternatives
Pressing mouse button 1 on a filename in the file
alternatives window will copy the filename into
Filename window and show a preview of the figure in
the file. It also shows the size of the figure in
its drawing units (in or cm). 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 expan-
sion.
(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
Version 3.2 Patchlevel 2 (Protocol 3.2, July 2, 1998) 11
XFIG(1)XFIG(1)
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 fig-
ure to the left, and a negative value in the Y off-
set 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 direc-
tory or file name.
Save Pressing this button or <Meta>s will save the cur-
rent contents of the canvas in the file specified
in the Filename window if any, or the name speci-
fied in the Current Filename if the former is
empty. If the filename being saved is different
from the current figure name and that 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 cur-
rent 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 can-
vas 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 dis-
card the current figure or cancel the Load opera-
tion.
The current Export directory is updated to the cur-
rent File directory when Load is pressed.
Note that xfig will automatically uncompress or
gunzip any files that have .Z, .z or .gz as the
suffix.
Version 3.2 Patchlevel 2 (Protocol 3.2, July 2, 1998) 12
XFIG(1)XFIG(1)
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 ini-
tializing 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 Pressing this button or <Meta>r will read the fig-
ure 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 on the canvas. It is first made
into a compound object so it may be easily moved
later. 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 mes-
sage 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%.
Fit to Page
Pressing this button will set the magnification so
that the figure will just fit the current paper
size with no less than a 1/2 inch margin.
Version 3.2 Patchlevel 2 (Protocol 3.2, July 2, 1998) 13
XFIG(1)XFIG(1)
Fig Size:
This label shows the figure size at the current
magnification. It is updated when the panel is
popped up and when the user changes the magnifica-
tion and shows the size in inches or cm depending
on the current units.
Paper Size
This is a pulldown menu which allows you to select
the paper size for printing. The choices are:
Letter (8.5" x 11"),
Legal (8.5" x 14"),
Ledger ( 17" x 11"),
Tabloid ( 11" x 17"),
A (8.5" x 11"),
B ( 11" x 17"),
C ( 17" x 22"),
D ( 22" x 34"),
E ( 34" x 44"),
A4 (21 cm x 29.7cm),
A3 (29.7cm x 42 cm),
A2 (42 cm x 59.4cm),
A1 (59.4cm x 84.1 cm),
A0 (84.1 cm x 118.9cm),
B5 (18.2cm x 25.7cm)
Orientation
This button will toggle the output orientation
between Landscape (horizontal) and Portrait (verti-
cal). 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 lan-
guage selected is ``ps'' (PostScript). You may
choose that the figure is flush left or centered in
the output file.
Pages With this pulldown menu you can select whether the
figure should be exported as a single page or mul-
tiple pages. The multiple page option would only
be useful if the figure is larger than the current
physical paper size.
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 fig-
ure up. These offsets are in addition to any
Version 3.2 Patchlevel 2 (Protocol 3.2, July 2, 1998) 14
XFIG(1)XFIG(1)
centering done with the centering option.
Language
The translation language to use for xfig output.
The default is specified in the resource
Fig.exportLanguage and is Encapsulated PostScript
as xfig is distributed.
Several languages are available; PostScript, Encap-
sulated PostScript, LaTeX, TPIC, PIC, Textyl,
IBM/GL (HP/GL), MetaFont, and serveral bitmap for-
mats; GIF, JPEG (JFIF), PNG, PCX (PC Paintbrush),
ACAD (AutoCad slide), TIFF (no compression), tk
(tcl/tk), PPM (Portable Pixmap package), XBM (X11
monochrome bitmap) and XPM (XPM3 package, producing
color pixmaps).
Image quality (%)
For JPEG(JFIF) export, this entry will appear, and
you may select the quality factor for the JPEG
image. Valid values are 1 to 100%. The default
quality of 75% seems to be fine for figures con-
taining only solid objects (no images) and adequate
for figures containing imported images (GIF, JPEG,
etc.).
Transparent Color
For GIF export, this menu button will appear and
you may choose that one of the colors in the figure
is ``transparent'', meaning that for those GIF
viewers that support transparent color (Netscape,
for example) that color will not appear in the fig-
ure. Instead, the background of the viewer will
show through in place of that color
The default is ``None'' (no transparent color).
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.
Version 3.2 Patchlevel 2 (Protocol 3.2, July 2, 1998) 15
XFIG(1)XFIG(1)
(File) Alternatives
Pressing mouse button 1 on a filename in the file
alternatives window will select that file by copy-
ing 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 expan-
sion.
(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.
Version 3.2 Patchlevel 2 (Protocol 3.2, July 2, 1998) 16
XFIG(1)XFIG(1)
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 but-
ton 3 invokes the Print to Batch function. Press-
ing mouse button 1 or <Meta>p pops up a menu with
several print-related functions:
Magnification
This is an AsciiTextWidget which contains the mag-
nification to use when translating figure to the
output language.
Fit to Page
Pressing this button will set the magnification so
that the figure will just fit the current paper
size with no less than a 1/2 inch margin.
Fig Size:
This label shows the figure size at the current
magnification. It is updated when the panel is
popped up and when the user changes the magnifica-
tion and shows the size in inches or cm depending
on the current units.
Paper Size
This is a pulldown menu which allows you to select
the paper size for printing. See the Export menu
for the paper sizes.
Orientation
This button will toggle the output orientation
between Landscape (horizontal) and Portrait (verti-
cal). 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 fig-
ure on the page. The default is flush left.
Pages With this pulldown menu you can select whether the
figure should be printed as a single page or multi-
ple pages. The multiple page option would only be
useful if the figure is larger than the current
physical paper size.
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
Version 3.2 Patchlevel 2 (Protocol 3.2, July 2, 1998) 17
XFIG(1)XFIG(1)
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 fig-
ure 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 cur-
rent 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 XFIGTM-
PDIR/xfig-printPID, where XFIGTMPDIR is the value
of the environment variable by that name and PID is
the process ID of xfig. If the environment vari-
able 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.
Version 3.2 Patchlevel 2 (Protocol 3.2, July 2, 1998) 18
XFIG(1)XFIG(1)
Help The Help button pulls down a menu to view various
help information.
The first entry will launch an external HTML browser spec-
ified by the Fig.browser resource to view the xfig html
reference manual written by T. Sato. netscape is the
default browser.
The next entry will launch an external PDF viewer speci-
fied by the Fig.pdfviewer resource to view the Xfig How-to
Guide written by Peter Hiscocks. acroread is the default
viewer.
The third entry will launch an external PDF viewer to view
the xfig pdf man pages. However, the HTML pages are much
better.
The last entry will popup a window showing the xfig ver-
sion and copyright information.
INDICATOR PANEL COMMAND DESCRIPTIONS
The indicator panel contains buttons to set certain draw-
ing parameters such as line thickness, canvas grid, rota-
tion 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 1 will popup a panel where
the zoom amount may be entered manually. There is
also a checkbox that if checked, will force zooming
with the mouse to use integral zoom values (e.g. 2,
3, 4).
Pressing mouse button 2 will decrease the zoom fac-
tor 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
Version 3.2 Patchlevel 2 (Protocol 3.2, July 2, 1998) 19
XFIG(1)XFIG(1)
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 on the canvas 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. If the ``Integral
area zoom'' checkbox in the zoom popup is checked,
the area will be zoomed by an integral value (e.g.
2, 3, 4).
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), 1/2 inch (10mm) or 1 inch (20mm).
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 multi-
ple 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 cur-
sor. 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.
Version 3.2 Patchlevel 2 (Protocol 3.2, July 2, 1998) 20
XFIG(1)XFIG(1)
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) direc-
tion 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 spe-
cially when one of the box-like objects is moved or
copied. For a copy, the link is also copied. 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, smart-links only work 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 horizontal
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
Version 3.2 Patchlevel 2 (Protocol 3.2, July 2, 1998) 21
XFIG(1)XFIG(1)
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 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 ver-
tical 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, PNG, PCX, ACAD, TIFF, TK,
PPM, XPM and XBM 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,
Version 3.2 Patchlevel 2 (Protocol 3.2, July 2, 1998) 22
XFIG(1)XFIG(1)
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 Col-
ors'' 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 but-
ton 1 on the color box to select it and then press-
ing 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
Version 3.2 Patchlevel 2 (Protocol 3.2, July 2, 1998) 23
XFIG(1)XFIG(1)
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 but-
ton. Zero width lines may be drawn for the purpose
of having filled areas without outlines.
LINE STYLE
The choices for line style are solid, dash, dot,
dash-dot, dash-dot-dot and dash-dot-dot-dot. 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
Version 3.2 Patchlevel 2 (Protocol 3.2, July 2, 1998) 24
XFIG(1)XFIG(1)
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, OPEN SPLINE or OPEN ARC objects.
ARROW TYPE
There are four types of arrows which may be filled
with white or the object color.
ARROW SIZE
Clicking mouse button 1 here will popup a panel
where you may set the arrow head thickness, width
and height (length) either as absolute values or as
multiples of the current line thickness. Check the
box labelled ``Absolute Values'' to use absolute
values (the default) or the box labelled ``Multiple
of Line Width'' to use that feature. The values to
change are under their respective check boxes. The
arrow measurements are in the same units as line
widths (1/80 inch). This has changed from earlier
versions where the width and height were in Fig
units. Clicking on mouse buttons 2 or 3 here will
cycle through displaying the current thickness,
width, and height settings.
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 num-
ber 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.
Version 3.2 Patchlevel 2 (Protocol 3.2, July 2, 1998) 25
XFIG(1)XFIG(1)
TEXT FONT
This button allows a selection of 35 fonts avail-
able 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 cur-
rent 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 cre-
ated 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 set-
tings: 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 dis-
play 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 charac-
ters 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 Spe-
cial flag is off unless xfig is started with the
command-line parameter -specialtext (resource spe-
cialtext).
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
Version 3.2 Patchlevel 2 (Protocol 3.2, July 2, 1998) 26
XFIG(1)XFIG(1)
represent object manipulation functions, modes and other
drawing or modification aids. Manipulation functions are
selected by positioning the cursor over the icon repre-
senting 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. If the cap style
is rounded, the point object will be a filled circle.
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 fin-
ish 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 diame-
ters. 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
Version 3.2 Patchlevel 2 (Protocol 3.2, July 2, 1998) 27
XFIG(1)XFIG(1)
drawing of circles.
IMPORTING PICTURE OBJECTS
The following picture types may be imported into a figure:
o Encapsulated PostScript files
o GIF files
o JPEG (JFIF) files
o PCX (PC Paintbrush)
o X11 bitmap (monochrome) files
o X11 pixmap (XPM3) color files
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.
As it says, you may now import Fig (xfig) files as
picture objects. These may not be edited, but may
be scaled and rotated.
Import is by reference for all picture types. This
means that the picture file is not copied into the
Fig file, only the picture file name is stored with
the Fig file.
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 ``pcx256'' and ``pbmraw'' drivers. The
pbm driver is used when you run xfig on a
monochrome display and the pcx256 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
Version 3.2 Patchlevel 2 (Protocol 3.2, July 2, 1998) 28
XFIG(1)XFIG(1)
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. Or, to
scale as a percentage of the original size, enter a
percentage value and press the ``Scale by %'' but-
ton.
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 win-
dows, allowing you to capture either the contents
of a window or a rectangular section of the screen
to a GIF* file, which becomes the current import
file. After pressing the Screen Capture button, if
you press and release mouse button 1 on a window
(or the root window) it will capture that window
(without any window manager frame). To capture a
rectangular area of the screen, you press and
release mouse button 2 at one corner of the area
you want to capture, drag out the rectangle and
press and release mouse button 2 to finish. You
may cancel the operation by pressing either of the
two other mouse buttons (1 or 3). The filename
given to the capture file is the base of the figure
name plus the time in seconds since 00:00:00 GMT,
Jan 1, 1970 (from the Unix time() call), e.g.
myfigure_828065129.gif.
*If xfig was compiled without the USEGIF symbol
then the capture file is in PCX format (PC Paint-
brush) with the suffix ``.pcx''.
The Edit Image button will call an external image
Version 3.2 Patchlevel 2 (Protocol 3.2, July 2, 1998) 29
XFIG(1)XFIG(1)
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 automati-
cally 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*,
*.pcx*, *.xpm*, *.xbm*, *.ps* and *.eps*. This
mask is in the Fig.ad application defaults file.
POLYLINE
Create polylines (line segments connecting a
sequence of points). Enter points by clicking
mouse button 1 at the desired positions on the can-
vas window. Click mouse button 2 to finish.
To create a freehand line press mouse button 2 to
start drawing. As the mouse is moved points will
be added to the line without having to click the
mouse buttons. To finish the freehand line press
mouse button 2 again.
For both modes, newly created points may be deleted
by pressing the Shift key and mouse button 1 before
pressing mouse button 2. The message window shows
how many points have been created as you add points
to the line.
A single point object may be created by simply
pressing mouse button 3. If the cap style is
rounded, the point object will be a filled circle.
POLYGON
The function is similar to 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.
Version 3.2 Patchlevel 2 (Protocol 3.2, July 2, 1998) 30
XFIG(1)XFIG(1)
INTERPOLATED SPLINE
The function is similar to POLYLINE except that an
open interpolated spline (a spline curve that
passes through the control points) is drawn. At
least two points must be entered.
CLOSED INTERPOLATED SPLINE
The function is similar to POLYGON except that a
closed interpolated spline is drawn. At least three
points must be entered.
APPROXIMATED SPLINE
The function is similar to POLYLINE except that an
open approximated spline (a spline curve that
passes through the two boundary points and approxi-
mates the shape of the other points) is drawn. At
least two points must be entered.
CLOSED APPROXIMATED SPLINE
The function is similar to POLYGON except that a
closed approximated spline is drawn. At least
three points must be entered.
Note: xfig provides conversion tools to switch
between any two of the following objects: poly-
lines, polygones, open interpolated spline, closed
interpolated spline, open approximated spline,
closed approximated spline. This conversion can be
done either globally for the whole object (see
LINE<->SPLINE and OPEN<->CLOSED) or locally for
each individual point (see EDIT POINT).
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 (xterm cut/paste buffer) by
pressing the F18 function key (the Paste key on Sun
keyboards) or any key/button defined in the trans-
lation 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 Control-H (backspace) will delete a character to
the left of the cursor, while the Delete key or
Control-D will delete the character to the right of
the cursor. A Control-X will erase all the text to
the left of the cursor, while a Control-K will
erase all the text to the right of the cursor. The
Home key or Control-A will move the cursor to the
start of the text, while the End key or Control-E
move the cursor to the end of the text. The left
arrow key or Control-B move the cursor left one
character and the right arrow or Control-F move the
cursor right one character. Finish
Version 3.2 Patchlevel 2 (Protocol 3.2, July 2, 1998) 31
XFIG(1)XFIG(1)
entering/editing text 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 (8-bit) characters may be entered using
the meta (compose) key. For example, to create an
``a umlaut'', press and release either the Meta
key, the Alt key or the Compose key, then the let-
ter ``a'', then " (quote). To create a ``c
cedilla'', use <meta>c followed by comma.
When modifying text in the popup edit panel, only
the Compose key will work.
The following is a list of all special characters
available using the Meta, Alt or Compose keys:
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
Version 3.2 Patchlevel 2 (Protocol 3.2, July 2, 1998) 32
XFIG(1)XFIG(1)
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
Version 3.2 Patchlevel 2 (Protocol 3.2, July 2, 1998) 33
XFIG(1)XFIG(1)
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.
Spell Checking and String Search in Text Objects
By pressing <Meta>h in the canvas area a popup panel will
appear which lets you search for strings in the text
objects and/or do string replacement and spell checking.
The external spell checking program can be specified by
the -spellcheckcommand command-line argument (resource
Fig.spellCheckCommand). The default is the ``spell'' pro-
gram. See the -spellcheckcommand description for usage
details.
The ``Search/Replace/Update'' button will search all text
objects for the pattern given in the ``Search:'' entry. A
panel pops up showing any matching text objects. If the
``Replace'' button is pressed, the matched pattern in the
text objects will be replaced by the string in the
``Replace with:'' entry. If the ``Update'' button is
pressed, the matching text objects' attributes will be
updated from the current settings in the bottom indicator
panel.
If the search pattern is empty all text objects will be
listed. If the Update button is pressed in that case, all
text objects will be updated.
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
Version 3.2 Patchlevel 2 (Protocol 3.2, July 2, 1998) 34
XFIG(1)XFIG(1)
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 but-
ton 1: the markers of one object will be temporarily high-
lighted. 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 com-
pound object. Single objects are tagged by click-
ing 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 sec-
tion 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 into separate 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. Click-
ing with mouse button 2 will achieve the same
effect but will also tag the component parts for
re-gluing into a compound later (although you will
not see the tags until you change to the GLUE
mode).
OPEN COMPOUND
Open a compound object temporarily for editing of
its components. The compound object selected will
be opened, and all other objects in the figure that
Version 3.2 Patchlevel 2 (Protocol 3.2, July 2, 1998) 35
XFIG(1)XFIG(1)
are not part of the compound will disappear. You
can make any changes to objects in the open com-
pound including adding and deleting objects. If
you delete all the objects in the compound, the
compound will be removed entirely.
A popup panel with two buttons appears which lets
you close the compound again. The first, labeled
``Close This Compound'' will close the currently
open compound. If you open a compound within a
compound, you may close all the compounds with one
step by clicking on the second button labelled
``Close All Compounds''.
After all compounds are closed, the rest of the
original figure will reappear.
IMPORTANT NOTE: A side effect occurs when you open
a compound, delete an object in that compound,
close the compound and ``undo'' the delete opera-
tion. The object you deleted will reappear but it
will not be part of the original compound anymore.
You may use this to remove objects from a compound.
Conversely, if you delete an object from the can-
vas, open a compound then undo the delete of the
original object, it will now be part of the open
compound.
PLACE LIBRARY OBJECT
Pressing this button will popup a library panel
where you may load a library from a list of
libraries. The default library directory is
XFIGLIBDIR/Libraries which is defined in the Imake-
file. This directory contains libraries which are
defined by sub-directories. The command-line argu-
ment -library_dir (resource Fig.library_dir ) may
be used to specify a different directory. The
choice of libraries is presented in a pull-down
menu. After choosing the library, the objects from
the library will be loaded. The status line shows
how many objects or any error messages that may
occur. Once a library is loaded if you single-
click on an object name in the listbox area it will
show a preview of the object in the right side pre-
view window. If you double-click on one of the
object names or single-click on one and press the
Select object button, this will pop down the
library panel and you will immediately see the cho-
sen object appear under the mouse on the canvas,
where it may be dragged around and placed by press-
ing mouse button 1 at the desired location. You
may place as many of these objects as you wish by
simply moving to the new location and pressing
Version 3.2 Patchlevel 2 (Protocol 3.2, July 2, 1998) 36
XFIG(1)XFIG(1)
mouse button 1 each time.
If mouse button 2 is pressed, the library panel
pops up again where either a different object or
library may be selected.
Pressing moust button 3 will cancel the library
mode altogether.
Pressing Shift and mouse button 1 at the same time
will switch from drawing the object itself as it is
dragged, to only drawing the outline of the bound-
ing box of the object. This second mode is desir-
able on slow machines or with complex objects.
A library is simply a directory with .fig files,
each containing one library object. When xfig
loads the .fig files as library objects, it makes
each one into a compound object so it may be moved,
scaled, etc. as a unit.
There are two ways to create your own libraries in
xfig. For the first method, create the file
xfiglib in your home directory (~/xfiglib). Each
line of the xfiglib file contains the absolute path
of the directory containing the .fig files in that
library, followed by the name of the library, which
may be multiple words with whitespace. There may
be at most 50 libraries. The length of the library
name (not the path) may be at most 40 characters
long, and any library may have no more than 400
objects, each of whose name (the name of the .fig
file) may not be more than 40 characters.
You must then either start xfig with ``
-library_dir ~/xfiglib'', or set the resource
``Fig.library_dir: ~/xfiglib''.
Here is an example:
/xfig/Examples/Libraries/Electrical/Physical Electrical Parts
/xfig/Examples/Libraries/Electrical/Schematic Electrical Schematic Components
/xfig/Examples/Libraries/Logic Logic Symbols
/xfig/Examples/Libraries/Flowchart Flowchart Elements
/xfig/Examples/Libraries/Buildings Buildings
The other method is to use the X resource
Fig.library_dir or command-line argument
-library_dir to point to a directory which may con-
tain Fig files (.fig) and sub-directories, each of
which may also contain .fig files and sub-directo-
ries if desired.
To link your libraries with the ones that come with
Version 3.2 Patchlevel 2 (Protocol 3.2, July 2, 1998) 37
XFIG(1)XFIG(1)
xfig, simply make a symlink for each xfig library
in your library directory or make one symlink to
the top-level xfig library directory in your
library directory.
This is more versatile than using the xfiglib file
because you can add more directories in the top-
level directory (or sub-directories) and there is
no need to edit the xfiglib file. Using this
method, the names of the libraries are simply the
names of the directories, e.g. if the resource
Fig.library_dir: /xfig/Examples/Libraries is
defined, the /xfig/Examples/Libraries/Electrical
directory will result in the library name Electri-
cal.
It is hoped that users will contribute Fig objects
to the libraries to expand and enhance them for all
xfig users. If you wish to contribute any Fig
objects to existing or new libraries, please send
them to me at xfigmail@epb1.lbl.gov. You may
restrict their usage by users if you wish, but all
will benefit if you allow free usage, i.e. copying,
using them in published reports, etc.
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 abut-
ting. 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 verti-
cally or horizontally.
MOVE POINT
Modify the position of a point of any object except
Version 3.2 Patchlevel 2 (Protocol 3.2, July 2, 1998) 38
XFIG(1)XFIG(1)
TEXT and COMPOUND objects. For unrestrained move-
ment, 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 direc-
tion. 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 con-
straint 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 (uncon-
strained), or mouse button 2 (constrained) if that
button was used.
ADD POINTS
Add points to POLYLINE, POLYGON, OPEN 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 poly-
gon regular.
MODIFY SHAPE
This tool is activated by holding down the Control
and Shift keys in any of the EDIT modes. Clicking
on a control point of a spline object with mouse
button 1 (resp. 3) decreases (resp. increases) the
shape factor of the spline at this point, while
clicking with mouse button 2 allows the user to
cycle quickly between the three basic status of a
control point (i.e. approximation, sharp interpo-
lation, smooth interpolation).
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 hori-
zontal/vertical constrained movement (mouse button
2) works exactly as described for MOVE POINT.
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 circum-
ferences). The object will be duplicated and then
Version 3.2 Patchlevel 2 (Protocol 3.2, July 2, 1998) 39
XFIG(1)XFIG(1)
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 direc-
tory. 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 pro-
cess 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, OPEN SPLINE,
or CLOSED SPLINE. Objects (points of a BOX or ARC-
BOX can not be added or deleted). Note that a REG-
ULAR 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 AsciiTextWidgets 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). For the coordinates of an object's points,
you may enter either Fig units (1/1200 inch) or
inches or centimeters by following the value with
an ``i'' or ``c'' respectively.
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 fur-
ther changes. Press the ``cancel'' button to
Version 3.2 Patchlevel 2 (Protocol 3.2, July 2, 1998) 40
XFIG(1)XFIG(1)
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 o o o o o o
-----------------------------------------------------------------------
Arc-Box o o o o o o
-----------------------------------------------------------------------
Circle o o o o o o o
-----------------------------------------------------------------------
Ellipse o o o o o o o
-----------------------------------------------------------------------
PIC* o
-----------------------------------------------------------------------
Box o o o o o o
-----------------------------------------------------------------------
Polygon o o o o o o
-----------------------------------------------------------------------
Line o o o o o o o
-----------------------------------------------------------------------
Spline o o o o o o
-----------------------------------------------------------------------
Text o o
-----------------------------------------------------------------------
* Only the X11 bitmap picture type uses the pen
color for coloring the bitmap image. The other
picture types don't use any of these settings.
EDIT POINT
In the EDIT OBJECT mode, click on a control point
of a spline with mouse button 3 to call the EDIT
POINT window. Set the shape factor either with the
scrollbar for arbitrary values, or with the buttons
for preset values. Modifications are displayed
interactively (the fill pattern, if any, will be
temporally removed during the edition, to provide
interactive rates).
UPDATE By pressing mouse button 1 on an object, the cur-
rent 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 but-
ton 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
Version 3.2 Patchlevel 2 (Protocol 3.2, July 2, 1998) 41
XFIG(1)XFIG(1)
color (default white) shows.
If mouse button 2 is clicked on an object, the set-
tings in the object that are selected by the indi-
cator buttons are copied into those indicator but-
ton 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) -N 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.
Version 3.2 Patchlevel 2 (Protocol 3.2, July 2, 1998) 42
XFIG(1)XFIG(1)
ROTATE COUNTER-CLOCKWISE
Rotate the object (mouse button 1) or copy (mouse
button 2) +N 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 <-> LINE
Click on mouse button 1 to cycle between polyline,
open interpolated spline and open approximated
spline when the selected object is open, or between
polygon, closed interpolated spline and closed
approximated spline when the selected object is
closed.
Click on mouse button 3 to turn an open object
(polyline or open spline) into its corresponding
closed object (polygon or closed spline) and vice
versa. The closed object is opened at the selected
point.
ADD/DELETE ARROWS
Add or delete arrow heads of OPEN SPLINE, POLYLINE
or ARC 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 thick-
ness of the arrowheads may be set using the arrow
size button in the indicator 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 click-
ing 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
Version 3.2 Patchlevel 2 (Protocol 3.2, July 2, 1998) 43
XFIG(1)XFIG(1)
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, press-
ing the Control Key and mouse button 2 will pan the figure
to the origin.
Version 3.2 Patchlevel 2 (Protocol 3.2, July 2, 1998) 44
XFIG(1)XFIG(1)X RESOURCES and DEFAULTS
The overall widget name(Class) is xfig(Fig). These
resources correspond to the command line arguments:
Name Class Type Default Command-line
equivalent
------------------------------------------------------------------------balloon_delay Balloon_delay integer 500msec -balloon_delayboldFont Font string 8x13bold -boldbut_per_row But_per_row int 2 -but_per_rowbuttonFont Font string 6x13 -buttoncanvasBackground Background string white -cbgcanvasForeground Foreground string black -cfgdebug Debug boolean off -debugdepth Depth integer * -depthdont_switch_cmap Dont_switch_cmap boolean false -dontswitchcmapexportLanguage ExportLanguage string eps -exportLanguageflushleft FlushLeft boolean false -flushleftimage_editor ImageEditor string xv -image_editorinches Inches boolean true -inches,
-centimeters,
-imperial,
-metricinternalborderwidth InternalBorderWidth integer 1-internalBWjustify Justify boolean false -left (false),
-right (true)
keyFile KeyFile string CompKeyDB -keyFilelandscape Orientation boolean true -Landscape,
-Portraitlatexfonts Latexfonts boolean off -latexfontslibrary_dir Directory string ~/xfiglib -library_dirmagnification Magnification float 100 -magnificationmax_image_colors Max_image_colors integer 64 -max_image_colorsmonochrome Monochrome boolean false -monochromemultiple Multiple boolean false -multiplenormalFont Font string 6x13 -normalpage_size Pagesize string Letter/A4 -page_sizepheight Height float 8(9.5) -pheightpwidth Width float 10(8)-pwidthrulerthick RulerThick integer 24 -rulerthickscalablefonts ScalableFonts boolean true -scalablefontsshowallbuttons ShowAllButtons boolean false -showallbuttonsshowballoons ShowBalloons boolean true -showballoonsshowlengths ShowLengths boolean false -showlengths
-dontshowballoonssingle Single boolean true -singlespecialtext SpecialText boolean false -specialtextspellcheckcommand spellCheckCommand string spell %s -spellcheckcommandstartfillstyle StartFillStyle integer 0 -startfillstylestartfontsize StartFontSize float 12 -startfontsizestartgridmode StartGridMode integer 0 -startgridmodestartlatexFont StartlatexFont string Default -startlatexFontstartlinewidth StartLineWidth integer 1 -startlinewidthstartposnmode StartPosnMode integer 1 -startposnmode
Version 3.2 Patchlevel 2 (Protocol 3.2, July 2, 1998) 45
XFIG(1)XFIG(1)startpsFont StartpsFont string Times-Roman -startpsFontstarttextstep StartTextStep float 1.2 -starttextsteptrackCursor Track boolean on -track,
-notrackuserscale UserScale float 1.0 -userscaleuserunit UserUnit string in(cm)-userunitvisual Visual string * -visualzoom Zoom float 1.0 -zoom
* Default visual and depth depend on the X server. Use xdpyinfo to see what visuals
and depths are supported.------------------------------------------------------------------------
The following are the default keyboard accelerators as
distributed in the Fig.ad app-defaults file:
(Context)
Keys Function
-----------------------------------------------------
(Main xfig panels)
<Meta>q Quit xfig
<Meta>n make New drawing by deleting all objects from canvas
<Meta>d Delete all objects from canvas but keep current filename
<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 directory
<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
Version 3.2 Patchlevel 2 (Protocol 3.2, July 2, 1998) 46
XFIG(1)XFIG(1)
(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 approximated spline
<None>s Draw open approximated 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
<None>o Open compound
<Shift>l Place library object
<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 new
Command orient
Command undo
Command redraw
Command paste
Command file
Version 3.2 Patchlevel 2 (Protocol 3.2, July 2, 1998) 47
XFIG(1)XFIG(1)
Command export
Command library
Command print
MenuButton help
SimpleMenu menu
SmeBSB Xfig Reference (HTML)
SmeBSB How-To Guide (PDF)
SmeBSB Man pages (PDF)
SmeBSB About Xfig
Form msg_form
Text message
Label file_name
Toggle balloon_toggle
Label mouse_panel
Box mode_panel
Label label
Command button (one for each of the 17 drawing mode buttons)
Label label
Command button (one for each of the 19 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
VendorShellExt shellext
Version 3.2 Patchlevel 2 (Protocol 3.2, July 2, 1998) 48
XFIG(1)XFIG(1)
Form file_panel
Label file_status_label
Label file_status
Label num_objects_label
Label num_objects
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_y
Text fig_offset_y
MenuButton Inches
SimpleMenu menu
SmeBSB Inches
SmeBSB Centim.
SmeBSB Fig Units
Label cur_file_label
Label 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
Command hidden
Viewport dirvport
Core clip
Scrollbar vertical
List dir_list_panel
Form preview_form
Label preview_label
Label preview_size
Label preview_name
Label preview_widget
Command rescan
Command cancel
Command save
Command load
Command merge
TransientShell export_menu
VendorShellExt shellext
Form export_panel
Version 3.2 Patchlevel 2 (Protocol 3.2, July 2, 1998) 49
XFIG(1)XFIG(1)
Label mag_label
Box spinner_box
Text magnification
Box spinner_frame
Command spinup
Command spindown
Command fitpage
Label size_label
Label papersize_label
MenuButton papersize
SimpleMenu menu
SmeBSB Letter (8.5" x 11")
SmeBSB Legal (8.5" x 14")
SmeBSB Ledger ( 17" x 11")
SmeBSB Tabloid ( 11" x 17")
SmeBSB A (8.5" x 11")
SmeBSB B ( 11" x 17")
SmeBSB C ( 17" x 22")
SmeBSB D ( 22" x 34")
SmeBSB E ( 34" x 44")
SmeBSB A4 (210mm x 297mm)
SmeBSB A3 (297mm x 420mm)
SmeBSB A2 (420mm x 594mm)
SmeBSB A1 (594mm x 841mm)
SmeBSB A0 (841mm x 1189mm)
SmeBSB B5(JIS) (182mm x 257mm)
Label orient_label
MenuButton orientation
SimpleMenu menu
SmeBSB portrait
SmeBSB landscape
Label just_label
MenuButton justify
SimpleMenu menu
SmeBSB Flush left
SmeBSB Centered
Label multiple_label
MenuButton multiple_pages
SimpleMenu menu
SmeBSB Single
SmeBSB Multiple
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
Version 3.2 Patchlevel 2 (Protocol 3.2, July 2, 1998) 50
XFIG(1)XFIG(1)
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 (both parts)
SmeBSB Textyl \special commands
SmeBSB TPIC
SmeBSB PIC
SmeBSB MF (MetaFont)
SmeBSB ACAD (AutoCAD Slide)
SmeBSB PCX (PC Paintbrush)
SmeBSB PNG
SmeBSB GIF
SmeBSB JPEG
SmeBSB TIFF (no compression)
SmeBSB TK
SmeBSB X11 Bitmap (XBM)
SmeBSB X11 Pixmap (XPM)
SmeBSB Portable Pixmap (PPM)
Label transp_label
MenuButton transparent
SimpleMenu menu
SmeBSB Background
SmeBSB None
SmeLine None
SmeBSB Black
SmeBSB Blue
SmeBSB Green
SmeBSB Cyan
[more colors here]
SmeBSB Gold
SmeBSB Default
Label quality_label
Box spinner_box
Text quality_text
Box spinner_frame
Command spinup
Command spindown
Text quality_text
Label def_file_label
Label def_file_name
Label out_file_name
Text file
Label file_alt_label
Version 3.2 Patchlevel 2 (Protocol 3.2, July 2, 1998) 51
XFIG(1)XFIG(1)
Viewport vport
Core clip
Scrollbar vertical
Scrollbar horizontal
List file_list_panel
Label mask_label
Text mask
Label dir_label
Text dir_name
Label dir_alt_label
Command home
Command hidden
Viewport dirvport
Core clip
Scrollbar vertical
List dir_list_panel
Command rescan
Command cancel
Command export
TransientShell print_menu
VendorShellExt shellext
Form print_panel
Label printer_image
Label print_label
Label mag_label
Box spinner_box
Text magnification
Box spinner_frame
Command spinup
Command spindown
Command fitpage
Label size_label
Label papersize_label
MenuButton papersize
SimpleMenu menu
SmeBSB Letter (8.5" x 11")
SmeBSB Legal (8.5" x 14")
SmeBSB Ledger ( 17" x 11")
SmeBSB Tabloid ( 11" x 17")
SmeBSB A (8.5" x 11")
SmeBSB B ( 11" x 17")
SmeBSB C ( 17" x 22")
SmeBSB D ( 22" x 34")
SmeBSB E ( 34" x 44")
SmeBSB A4 (210mm x 297mm)
SmeBSB A3 (297mm x 420mm)
SmeBSB A2 (420mm x 594mm)
SmeBSB A1 (594mm x 841mm)
SmeBSB A0 (841mm x 1189mm)
SmeBSB B5(JIS) (182mm x 257mm)
Label orient_label
MenuButton landscape
SimpleMenu menu
Version 3.2 Patchlevel 2 (Protocol 3.2, July 2, 1998) 52
XFIG(1)XFIG(1)
SmeBSB portrait
SmeBSB landscape
Label just_label
MenuButton justify
SimpleMenu menu
SmeBSB Centered
SmeBSB Flush left
Label multiple_label
MenuButton multiple_pages
SimpleMenu menu
SmeBSB Single
SmeBSB Multiple
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
VendorShellExt shellext
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
Version 3.2 Patchlevel 2 (Protocol 3.2, July 2, 1998) 53
XFIG(1)XFIG(1)
SimpleMenu menu
SmeBSB Unity
SmeBSB User defined
Label scale_factor
Text 1.0000
Command cancel
Command set
Library panel:
TransientShell library_menu
VendorShellExt shellext
Form library_panel
Label library_intro
Label library_label
MenuButton library
SimpleMenu menu
SmeBSB Electrical - Physical
SmeBSB Electrical - Schematic
SmeBSB Logic
SmeBSB Flowchart
[ one for each library ]
Label status_label
Text status
Label cur_library_label
Label cur_library)
Label cur_lib_object_label
Label cur_lib_object
Viewport object_vport
Core clip
List object_list_panel
Scrollbar horizontal
Scrollbar vertical
Label library_preview_label
Label library_object_label
Label library_preview_widget
Command select
Command cancel
Popup color panel:
VendorShellExt shellext
TransientShell set_indicator_panel
Form form
Label Colors
Command cancel
Command set_color_ok
Form mixedForm (for Pen Color)
Toggle mixedEdit
Label mixedColor
Text tripleValue
Form mixedForm (for Fill Color)
Toggle mixedEdit
Label mixedColor
Text tripleValue
Label stdLabel
Version 3.2 Patchlevel 2 (Protocol 3.2, July 2, 1998) 54
XFIG(1)XFIG(1)
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 lookupColor
Command undelColor
Form mixingForm
Label redLocked
Label greenLocked
Label blueLocked
Label lockedLabel
Scrollbar redScroll
Scrollbar greenScroll
Scrollbar blueScroll
Scrollbar lockedScroll
Label hueLabel
Label satLabel
Label valLabel
Scrollbar hueScroll
Scrollbar satScroll
Scrollbar valScroll
Close compound popup:
TransientShell close_compound_popup
VendorShellExt shellext
Form close_compound_form
Command close_compound
Command close_all_compounds
TransientShell cmd_balloon_popup
VendorShellExt shellext
Box box
Label l_label
Label r_label
TransientShell mode_balloon_popup
VendorShellExt shellext
Box box
Label label
TransientShell unit_balloon_popup
VendorShellExt shellext
Box box
Label label
TransientShell mouse_balloon_popup
VendorShellExt shellext
Version 3.2 Patchlevel 2 (Protocol 3.2, July 2, 1998) 55
XFIG(1)XFIG(1)
Box box
Label label
TransientShell toggle_balloon_popup
VendorShellExt shellext
Box box
Label label
TransientShell search_panel
VendorShellExt shellext
Form form
Label search_lab
Text search_text
Toggle case_sensitive
Label replace_lab
Text replace_text
Command dismiss
Command search
Command replace
Command spell_button
TransientShell found_text
VendorShellExt shellext
Form form
Text found_msg_win
Command dismiss
Command do_replace
Command dismiss
NOTE: The following is a typical popup edit panel (for
ARC-BOX) The panel will be different for other objects.
TransientShell edit_panel
VendorShellExt shellext
Form form
Label POLYLINE:ArcBox
Label image
Command done
Command apply
Command cancel
Label
Label Width
Box spinner_box
Text Width
Box spinner_frame
Command spinup
Command spindown
Label Depth
Box spinner_box
Text Depth
Box spinner_frame
Command spinup
Command spindown
Label Pen color
Version 3.2 Patchlevel 2 (Protocol 3.2, July 2, 1998) 56
XFIG(1)XFIG(1)
MenuButton pen_colors
SimpleMenu menu
SmeBSB Black
SmeBSB Blue
SmeBSB Green
SmeBSB Cyan
SmeBSB Red
SmeBSB Magenta
SmeBSB Yellow
SmeBSB White
SmeBSB Blue4
[22 more colors]
SmeBSB Default
Label Fill color
MenuButton fill_colors
SimpleMenu menu
SmeBSB Black
SmeBSB Blue
SmeBSB Green
SmeBSB Cyan
SmeBSB Red
SmeBSB Magenta
SmeBSB Yellow
SmeBSB White
SmeBSB Blue4
[22 more colors]
SmeBSB Default
Label Fill style
MenuButton No fill
SimpleMenu menu
SmeBSB No fill
SmeBSB Filled
SmeBSB Pattern
Label Fill intensity %
Box spinner_box
Text Fill intensity %
Box spinner_frame
Command spinup
Command spindown
Label Fill pattern
Box spinner_box
Text Fill pattern
Box spinner_frame
Command spinup
Command spindown
Label Line style
MenuButton Solid Line
SimpleMenu menu
SmeBSB Solid Line
SmeBSB Dashed Line
SmeBSB Dotted Line
Label Dash length/Dot gap
Box spinner_box
Text Dash length/Dot gap
Version 3.2 Patchlevel 2 (Protocol 3.2, July 2, 1998) 57
XFIG(1)XFIG(1)
Box spinner_frame
Command spinup
Command spindown
Label Corner Radius
Box spinner_box
Text Corner Radius
Box spinner_frame
Command spinup
Command spindown
Label First Corner
Label First Corner
Text First Corner
Label First Corner
Text First Corner
Label Opposite Corner
Label Opposite Corner
Text Opposite Corner
Label Opposite Corner
Text Opposite Corner
Popup edit spline point panel:
TransientShell edit_spline_point_panel
VendorShellExt shellext
Form form
ScrollBar control_bar
Label Use scrollbar to modify tension
Command done
Command cancel
Command Approximated
Command Angular
Command Interpolated
The following is the widget structure for the popup
browser available for the Picture Object edit popup.
TransientShell xfig_browse_menu
VendorShellExt shellext
Form browse_panel
Label file_label
Text file_name
Label file_alt_label
Viewport vport
Core clip
List file_list_panel
Scrollbar vertical
Scrollbar horizontal
Label mask_label
Text mask
Label dir_label
Text dir_name
Label dir_alt_label
Command home
Command hidden
Viewport dirvport
Version 3.2 Patchlevel 2 (Protocol 3.2, July 2, 1998) 58
XFIG(1)XFIG(1)
Core clip
List dir_list_panel
Command rescan
Command close
Command apply
Version 3.2 Patchlevel 2 (Protocol 3.2, July 2, 1998) 59
XFIG(1)XFIG(1)BUGS and RESTRICTIONS
Please send bug reports, fixes, new features etc. to:
xfig-bugs@epb1.lbl.gov (Brian V. Smith)
Because of the difference of some fonts in some X servers
and the PostScript fonts on printers, text alignment can
be problematic.
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.
Some servers do not allow bitmaps/pixmaps taller than the
screen height or wider than the screen width. That is why
there is a limit on the width of the top ruler and height
of the side ruler. If you need wider/taller rulers AND
your server allows bigger pixmaps, you may define
MAX_TOPRULER_WD and/or MAX_SIDERULER_HT in your Imakefile
in the DEFINES line. For example, to have a maximum top
ruler width of 1160 pixels, add -DMAX_TOPRULER_WD=1160 to
your DEFINES line in the Imakefile.
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.
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.
When zoomed very large, the length of dashes in dashed
lines will top out at 255 pixels long. This is due to a
restriction in X that the dash list is defined by char
(255 pixels maximum for a dash). The figure will print
correctly, however.
When you do a copy/rotate or array place when making mul-
tiple copies of objects, only the creation of the last
object can be undone with the Undo button.
Modifications to text using the popup
search/update/replace/spell check panel cannot be undone.
See the README file for troubleshooting.
SEE ALSO
Brian W. Kernighan PIC -- A Graphics Language for Typeset-
ting User Manual
fig2dev(1) (TransFig package)
gs(1) (Ghostscript PostScript previewer)
Version 3.2 Patchlevel 2 (Protocol 3.2, July 2, 1998) 60
XFIG(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
Parts Copyright (c) 1994 by Brian V. Smith
Parts Copyright (c) 1991 by Paul King
Other Copyrights may be found in various files
The X Consortium, and any party obtaining a copy of these
files from the X Consortium, directly or indirectly, is
granted, free of charge, a full and unrestricted irrevoca-
ble, world-wide, paid up, royalty-free, nonexclusive right
and license to deal in this software and documentation
files (the ``Software''), including without limitation the
rights to use, copy, modify, merge, publish, distribute,
sublicense, and/or sell copies of the Software, and to
permit persons who receive copies from any such party to
do so, with the only requirement being that this copyright
notice remain intact. This license includes without limi-
tation a license to do the foregoing actions under any
patents of the party supplying this software to the X Con-
sortium.
No representations are made about suitability of this
software for any purpose. It is provided ``as is'' with-
out express or implied warranty.
PostScript is a trademark of Adobe Systems Incorporated.
Parts Copyright (C) 1989 by Jef Poskanzer.
Copyright notice for pbmplus code:
Permission to use, copy, modify, and distribute this
software and its documentation for any purpose and without
fee is hereby granted, provided that the above copyright
notice appear in all copies and that both that copyright
notice and this permission notice appear in supporting
documentation. This software is provided ``as is'' without
express or implied warranty.
FILES
CompKeyDB Data base of compose (meta) key sequences
for 8-bit characters. Must be installed
in $(XFIGLIBDIR) with ``make install'',
or may be specified with command line
option -keyFile or X toolkit resource
keyFile. See the Imakefile.
~/xfiglib This file must be in the login directory
of the user or must be a symbolic link to
a file containing the library defini-
tions. See "PLACE LIBRARY OBJECT" in the
Version 3.2 Patchlevel 2 (Protocol 3.2, July 2, 1998) 61
XFIG(1)XFIG(1)
"EDITING MODE PANEL COMMAND DESCRIPTIONS"
section for the format of this file.
Fig.ad and Fig-color.ad
Application defaults files which are
automatically installed in the system
app-defaults directory with the make
install command.
Doc/FORMAT3.1 Description of Fig file format.
CHANGES Description of bug fixes/new features.
AUTHORS
Many people have contributed to xfig. Here is a list of
the people who have contributed the most (in chronological
order):
Version 1:
Original author:
Supoj Sutanthavibul, University of Texas at Austin
The LaTeX line drawing modes were contributed by:
Frank Schmuck, Cornell University
Original X11 port by:
Ken Yap, Rochester
Variable window sizes, cleanup of X11 port, right hand
side panel:
Dana Chee, Bellcore
Cleanup of color port to X11 by:
John T. Kohl, MIT
Version 2.0:
Area fill, multiple line thicknesses, multiple fonts
and font sizes, bottom panel, line style/thickness,
(and anything else that wasn't written by the others)
by:
Brian Smith
(standard disclaimer applies)
(bvsmith@lbl.gov)
Popup change-object menu by:
Jon Tombs
Frank Schmuck
Zooming and panning functions, shift key select
Version 3.2 Patchlevel 2 (Protocol 3.2, July 2, 1998) 62
XFIG(1)XFIG(1)
mechanism by:
Dieter Pellkofer
Henning Spruth
Depth feature by:
Mike Lutz
Cut/Paste by:
Tom Tkacik
Version 2.1:
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 sensi-
tive corner markers, smarter redraw, undo for compound
and point move for boxes, cancel object creation,
point positioning to three resolutions, TransFig scal-
able text, hidden text, special text, save of figure
on crash by:
Paul King (king@cs.uq.oz.au)
with help from:
Brian Smith and Micah Beck (beck@cs.utk.edu)
Encapsulated PostScript importing by:
Brian Boyter
Pan/zoom with ctrl key/mouse by:
Henning Spruth
International characters by:
Herve Soulard
Directory Browser based on XDir by:
Win Treese, Digital Equipment Corporation
Rotated ellipses by:
James Tough, Dept. of Computer Science, Heriot-Watt
University, Scotland
Rotated text from the xvertext package by:
Alan Richardson, Space Science Centre, School of MAPS,
University of Sussex
Popup scale menu and dynamic switching between inches
and cm by:
Paul King (king@cs.uq.oz.au)
Version 3.2 Patchlevel 2 (Protocol 3.2, July 2, 1998) 63
XFIG(1)XFIG(1)
Extensive man page formatting revisions by:
David W. Sanderson
Display Postscript code for IBM RS/6000 by:
Dave Hale (dhale@green.mines.colorado.edu)
Version 3.0:
New arrowhead types, separate pen/fill colors, new
file protocol, more colors with extended color popup
panel, new arc style, new fill patterns (bricks, etc),
new line join and cap styles, export offset and file
load offset, XPM import, XBM import and export (and
anything else that wasn't written by the others) by:
Brian Smith
(Note: the color popup panel was based on xcoloredit
by Richard Hesketh)
GIF output code by:
E. Chernyaev (chernaev@mx.decnet.ihep.su) *
GIF import code by:
David Koblas from the giftoppm part of the pbmplus
package
XPM export code (using XPM3 libraries) by:
Karel van Houten (K.H.C.vanHouten@research.ptt.nl)
Higher figure resolution (1200dpi) by:
Ross Martin (martin@trcsun3.eas.asu.edu)
Color quantization using neural network by:
Anthony Dekker (dekker@ACM.org)
[NEUQUANT Neural-Net quantization algorithm by Anthony
Dekker, 1994. See ``Kohonen neural networks for opti-
mal colour quantization'' in ``Network: Computation in
Neural Systems'' Vol. 5 (1994) pp 351-367. for a dis-
cussion of the algorithm.]
Floyd-Steinberg algorithm for dithering color images
on monochrome displays lifted from the Pbmplus package
by Jef Poskanser.
rotate/flip objects around/about selected anchor point
and multiple copies of objects by:
Uwe Bonnes (bon@lte.e-technik.uni-erlangen.de)
Input tablet extension by:
Greg LaCoste (greg@seismo.do.usbr.gov)
Version 3.1:
Version 3.2 Patchlevel 2 (Protocol 3.2, July 2, 1998) 64
XFIG(1)XFIG(1)
The only difference between protocol version 3.0 and
version 3.1 is that the position of the ``magnet'' has
been shifted by 14 fig units. In the 2.1 and older
versions of xfig the grid was in multiples of 5 fig
units, but they were on intervals 4, 9, 14, 19, etc.
When version 3.0 was created, coordinates were simply
multiplied by the ratio of the resolutions (1200/80 =
15) so values like 4 became 60 instead of 74 ((4+1)*15
- 1).
The JPEG import/export code uses the Independent JPEG
Group software (see jpeg/README for details)
Image browser, editor and screen capture features by:
Jim Daley (jdaley@cix.compulink.co.uk)
Version 3.2:
The changes to the version 3.2 file protocol are the
addition of the paper size, print/export magnifica-
tion, single/multiple page indicator and a transparent
color name used for GIF export to the header of the
file.
The other difference in the version 3.2 protocol is
the mathematical model used for splines. The new ver-
sion uses X-splines which allows the user to mix
interpolation and approximation points in a same
curve. More precisely, it means that an X-spline curve
is neither an interpolated spline nor an approximated
one, it is BOTH (the behaviour of each point is con-
trolled by one single parameter called ``shape fac-
tor''). For additional information about X-splines,
see:
``X-Splines: A Spline Model Designed for the End
User''
by C. Blanc and C. Schlick, Proceedings of SIG-
GRAPH'95
http://dept-info.labri.u-bor-
deaux.fr/~schlick/DOC/sig1.html
Caveat: Because previous spline models (quadratic B-
splines and Bezier with hidden points) are no longer
supported, curves that are present in version 3.1 and
older files are automatically converted to X-splines.
This translation is only an approximation process. It
means that the converted curves are not exactly the
same as the original ones. Though they are usually
very close, some hand-fitting may be needed in some
pathological cases.
Inclusion of X-splines by:
Carole Blanc (blanc@labri.u-bordeaux.fr)
Version 3.2 Patchlevel 2 (Protocol 3.2, July 2, 1998) 65
XFIG(1)XFIG(1)
Christophe Schlick (schlick@labri.u-bordeaux.fr)
Note: the initial implementation was done by C.
Feuille, S. Grosbois, L. Maziere and L. Minihot as a
student practice (Universite Bordeaux, France).
Open/close compound feature written by
Bill Taylor (bill@mainstream.com)
Library feature written by
Stephane Mancini (mancini@elecsrv.enst.fr) (object
preview by Brian V. Smith)
The library objects in the Electrical and Logic
libraries were done by
Peter Hiscocks (phiscock@ee.ryerson.ca)
The library objects in the Computer, Networks, and
Hospital-Equipment libraries were extracted from the
clipart example files by
Bill Chimiak (chim@bgsm.edu)
Importing of Fig files as picture objects by
Georg Stemmer, with supervision and discussion by
Ruediger Bess (bess@informatik.uni-erlangen.de)
NOTES
Many bug fixes/cleanups etc. by a host of faithful users
See the
CHANGES
file for all the credits
The
TransFig
package was written by Micah Beck and is maintained by Brian Smith
Version 3.2 Patchlevel 2 (Protocol 3.2, July 2, 1998) 66