xfig
NAME
xfig - Facility for Interactive Generation of figures under
X11
SYNOPSIS
xfig [options] [file]
DESCRIPTION
Xfig is a menu-driven tool that allows the user to draw and
manipulate objects interactively under the X Window System.
It runs under X version 11 release 4 or higher and requires
a two- or three-button mouse. file specifies the name of a
file to be edited. The description of objects in the file
will be read at the start of xfig.
When using a two-button mouse use the <Meta> key and the
right button at the same time to effect the action of the
middle button.
Xfig is available via anonymous ftp from ftp.x.org in
/contrib/applications/drawing_tools/xfig.
The TransFig package is used when printing or exporting the
output from xfig. It is automatically called by xfig as a
back-end processor to produce various types of output:
LaTeX fig2dev -L latex translates xfig to LaTeX
picture environment commands which can be
processed along with other LaTeX commands.
Metafont fig2dev -L mf produces Metafont output.
PostScript fig2dev -L ps produces an Encapsulated
PostScript output.
IBM-GL fig2dev -L ibmgl produces a IBM-GL (HP/GL)
output.
Pic fig2dev -L pic produces a pic output.
PiCTeX fig2dev -L pictex produces PiCTeX output.
This contains macros that can be used with the
PiCTeX environment under TeX or LaTeX.
Others fig2dev has options for these other languages:
box, epic, eepic, and eepicemu.
The TransFig package is available via anonymous ftp from
ftp.x.org in /contrib/applications/drawing_tools/transfig.
OPTIONS
-help
Print all command-line options for xfig and quit.
-L[andscape]
Make xfig come up in landscape mode (10.5" x 8"). This
is the default; however as the orientation is stored
with Fig files, when you load a Fig file the
orientation will change as required. This is only true
for files of version 3.0 or higher.
-P[ortrait]
Make xfig come up in portrait mode (8.5" x 9"). See
note about landscape mode.
-bg color
Use color as the background color for the canvas and
buttons.
-bol[d] font
Cause the font used for displaying the file name and
confirmation messages to be font (default = 8x13bold).
-butt[on] font
Cause the font used for most buttons to be font
(default = 6x13).
-but_[per_row] number
Specify the number of buttons wide the mode panel
should be. This is useful in conjunction with the
-pheight parameter to reduce the canvas height for
small screens.
-de[bug]
Turn on debugging mode. Prints various debugging
messages like font names etc.
-do[ntswitchcmap]
Prevents xfig from switching to a private colormap if
there aren't enough colors available in the default
colormap. See also -max_image_colors.
-e[xportLanguage] language
Specifies the language to be used for when exporting a
fig file. Choices are:
Name Language
-------------------------------------------
box LaTeX box (figure boundary)
latex LaTeX picture
epic LaTeX picture + epic macros
eepic LaTeX picture + eepic macros
eepicemu LaTeX picture + eepicemu macros
pictex PiCTeX macros
ibmgl IBMGL (or HPGL)
eps Encapuslated PostScript
ps PostScript
pstex Combined PS/LaTeX (PS part)
pstex_t Combined PS/LaTeX (LaTeX part)
textyl Textyl special commands
tpic TPIC
pic PIC
mf MF (MetaFont)
gif GIF
jpg JPEG (JFIF)
xbm X11 Bitmap
xpm X11 Pixmap (XPM3 package)
-------------------------------------------
-fg color
Use color as the foreground color and default color for
objects.
-fl[ushleft]
Set the print option to print the figure flush left.
The default is to center the figure on the page.
-geom[etry] WxH+X+Y
Specifies the geometry for Fig application.
-iconG[eometry] +X+Y
Specifies the position for the icon.
-inc[hes]
Make inches the unit of choice (default).
-ma[ximagecolors] numcols
Limit the number of colors used for EPS, GIF, JPEG or
XPM images to numcols.
-me[tric]
Make centimeters the unit of choice.
After xfig is started you may change the units from
metric to imperial or vice versa from a popup menu
available by pressing mouse button 3 in the units box
where the two rulers meet.
-internalBW width
Use lines of width width between all buttons and panels
(default = 1).
-inv[erse]
Use inverse video (white on black).
-k[eyFile] compose-key-file
Use compose-key-file instead of CompKeyDB for compose
(meta) key database. If there are no ``/''s in the
name, the file must reside in the xfig library
directory, $XFIGLIBDIR, usually
/usr/local/lib/X11/xfig. If there are any ``/''s in
the name it is taken as is (not relative to
$XFIGLIBDIR). If there is a leading ``~/'' in the
string then the ``~'' is expanded to the user's home
directory.
-lat[exfonts]
Start xfig with LaTeX font selection. Normally, the
PostScript fonts are available as the default. This
flag selects the LaTeX fonts to start.
-le[ft]
Change the position of the side panel window to the
left of the canvas window. This is the default.
-mo[nochrome]
Use black and white only.
-nor[mal] font
Cause the font used for the message window to be font.
This font is also used on the canvas when the selected
font is not available in an X11 font (default = 6x13).
-not[rack]
Turn off cursor (mouse) tracking arrows.
-ph[eight] height
Make the xfig canvas height high (where height is
either cm or in, depending on the -metric setting).
-pw[idth] width
Make the xfig canvas width wide (where width is either
cm or in, depending on the -metric setting).
-ri[ght]
Change the position of the side panel window to the
right of the canvas window (default: left).
-sc[alablefonts]
Allows use of the X11R5 or OpenWindows scalable fonts
(this is the default). If the scalable fonts aren't
available xfig will automatically switch to non-scaling
fonts.
-nosc[alablefonts]
Disables use of the X11R5 or OpenWindows scalable
fonts. You might want to use this for debugging.
-sh[owallbuttons]
Show all the xfig indicator buttons instead of only
those relevant to the current drawing mode. Normally,
the buttons line width, area-fill, grid mode, text
size, etc. are only visible when they are relevant to
the current drawing mode. The -showallbuttons option
makes all of the indicator buttons visible at all
times. This takes up more screen real estate, but
allows the user to see all settable parameters.
-sp[ecialtext]
Start xfig with the special text mode for text objects.
-startfi[llstyle] stylenumber
Set the starting fill style for area fill (-1 to 21).
-startfo[ntsize] pointsize
Set the default font size for text objects (default =
12pt).
-startg[ridmode] modenumber
Set the starting grid mode (0 to 3). Mode 0 is no
grid. In imperial (inches) mode, grid mode 1 is 1/4
inch, mode 2 is 1/2 inch and mode 3 is 1 inch. In
metric mode, grid mode 1 is 5mm, mode 2 is 1cm and mode
3 is 2cm.
-startla[texFont] font
Set the starting font name for LaTeX fonts.
-startt[extstep] stepsize
Set the starting text step.
-startli[newidth] width
Set the starting line width.
-startp[sFont] font
Set the starting font name for PostScript fonts.
-ta[blet]
Specifies that xfig should use the input tablet instead
of the mouse for drawing. You must have the
XInputExtension in your X server and an input tablet
for this to work. Also, you must modify the Imakefile
to include the USETAB and TABLIB variables.
-tr[ack]
Turn on cursor (mouse) tracking arrows (default).
-users[cale] scale
Set the multiplier for displayed line lengths etc.
This factor is multiplied by the actual length, radius
or diameter of the object currently being drawn on the
canvas. It is useful for making scale drawings, where
e.g. 1 inch = 1 foot (userscale = 12.0) or 1cm = 1m
(userscale = 100.0).
-useru[nit] units
The units string is printed with the length information
when drawing objects. For example if the userscale =
1.0 and the userunit = ft then a line which is 3 inches
long on the canvas would be displayed as ``length = 3
ft'' when it is being drawn.
After xfig is started you may change the userscale and
the userunit from a popup menu available by pressing
mouse button 3 in the units box where the two rulers
meet.
GRAPHICAL OBJECTS
The objects in xfig are divided into primitive objects and
compound objects. The primitive objects are: ARC, CIRCLE,
CLOSED SPLINE, ELLIPSE, POLYLINE, POLYGON, PICTURE, BOX,
ARC-BOX, SPLINE, and TEXT.
A primitive object can be moved, rotated, flipped vertically
or horizontally, scaled, copied, aligned within a compound
object or erased. The TEXT primitive may not be flipped.
The attributes of any primitive object can be edited using a
popup panel (discussed below), so you can, for instance, set
the position of an object manually.
A compound object is composed of primitive objects. The
primitive objects that constitute a compound can not be
individually modified, but they can be manipulated as an
entity; a compound can be moved, rotated, flipped vertically
or horizontally, scaled, copied or erased. A compound that
contains any boxes or arc-boxes may only be rotated by 90
degrees.
Objects may overlap other objects according to their
``depth''. Objects with larger depth number are obscured by
objects with smaller depth.
Regular polygons may be created using a special drawing
mode, but a general POLYGON is created as a result, which
may then be modified, i.e. the individual vertices may be
moved if desired.
DISPLAY WINDOWS
Ten regions comprise the display area of xfig: the command
region, top ruler, side ruler, drawing mode region, editing
mode region, filename region, message region, mouse function
indicator region and canvas region, and indicator region
with buttons to set and show current line thickness, line
style, color, area-fill gray color and several other
settings. (The mouse function indicator region was inspired
by the UPS debugger from the University of Kent.) The
drawing and editing mode regions may be placed (together) to
the left or right of the the canvas window (default: left).
COMMAND PANEL FUNCTIONS
Quit Exit from xfig, discarding the figure. If the figure
has been modified and not saved, the user will be asked
to confirm the action, by clicking mouse button 1 on a
confirm/cancel popup menu. The accelerator <Meta>q
will also perform this function. This and all other
accelerators are defined in the app-defaults file and
may be changed if desired.
Port/Land
Change shape of xfig canvas from/to portrait/landscape.
Note: the canvas will automatically change to the
portrait/landscape configuration specified in Fig files
of version 3.0 or higher when loading those files.
Delete ALL
Delete all objects from the canvas window (may be
undone). The accelerator <Meta>d will also perform
this function.
Undo Undo the last object creation, deletion or
modification. The accelerator <Meta>u will also
perform this function. If an undo of a Paste or file
Merge is done, any user-defined colors in the figure
pasted in or the file just merged will NOT be
undefined.
Redraw
Redraw the canvas. There are also two accelerators
which do a redraw - <Meta>r and <Ctrl>l.
Paste
Paste the object previously copied into the cut/paste
file into the current figure (at its original
position). The accelerator <Meta>t will also perform
this function.
File Pressing mouse button 3 on this button invokes Save
function without popping up the file panel. Before the
figure is saved the original file is first renamed with
the suffix ``.bak'' appended. This provides a backup
file.
Mouse button 1 or <Meta>f pops up a panel which
contains several file-related functions:
Current Filename
This is read-only AsciiTextWidget which contains
the filename that will be used to write output to
a file if there is no name specified in the
Filename panel.
Filename
This is an editable AsciiTextWidget which contains
the filename selected either by clicking on a
filename from the Alternatives list or by typing a
name in directly. Pressing return in the Filename
window will Load the file and copy the name to the
Current Filename widget.
(File) Alternatives
Pressing mouse button 1 on a filename in the file
alternatives window will select that file by
copying the filename into Filename window.
Pressing return in this window will Load the file
specified in the Filename window (if any) or the
Current Filename widget.
Filename Mask
A wildcard mask may be typed into this editable
AsciiTextWidget to restrict the search of
filenames to a subset ala the ls command.
Pressing return in this window will automatically
rescan the current directory. This string may be
set by setting the X toolkit resource
Fig*file_panel*mask*string.
Current Directory
This is an editable AsciiTextWidget which shows
the current directory. It may be modified by the
user to manually set a directory name. When
return is pressed in this window the directory
specified is scanned for files matching the
Filenamemask, if any.
The ~ (tilde) character may be used to specify a
user's home directory, ala unix shell tilde
expansion.
(Directory) Alternatives
Pressing mouse button 1 on a directory name in the
directory alternatives list will do a ``change
directory'' to that directory.
Pressing mouse button 3 in either the file or
Directory Alternatives window will do a ``change
directory'' to the parent directory.
Load/Merge figure offset
These two editable AsciiTextWidgets allow one to
load or merge a figure with an offset on the
canvas. The figure will be offset by the amounts
specified (in Fig units) in the X and Y panels. A
negative value in the X offset will shift the
figure to the left, and a negative value in the Y
offset will shift the figure up.
Home Pressing this button will change the directory to
the $HOME directory of the user.
Rescan
Pressing this button or <Meta>r will rescan the
current directory.
Cancel
Pressing this button or <Meta>c will pop down the
File panel without making any changes to the
directory or file name.
Save Pressing this button or <Meta>s will save the
current contents of the canvas in the file
specified in the Filename window if any, or the
name specified in the Current Filename if the
former is empty. If the file already exists a
confirmation popup menu will appear asking the
user to confirm or cancel the save. If there is a
filename in the Filename window it is copied to
the Current Filename window.
The current Export directory is updated to the
current File directory when Save is pressed.
Before the figure is saved the original file is
first renamed with the suffix ``.bak'' appended.
This provides a backup file.
Load Pressing this button or <Meta>l will clear the
canvas of any current figure and read the figure
from the filename specified in the Filename menu
item if any, or the name specified in the Current
Filename if the former is empty. The figure will
be offset by the amounts specified (Fig units) in
the X and Y load/merge offset widgets. If there
is a figure currently on the canvas and any
modifications have been made to it and not saved,
a popup query window will first appear asking if
the user wishes to discard the current figure or
cancel the Load operation.
The current Export directory is updated to the
current File directory when Load is pressed.
A popup message window will appear and diagnostic
messages will be written if xfig changes any
``illegal'' object values to legal values. For
example, older versions of xfig were lax about
initializing unused parts such as depth, and would
produce very large, random values. Xfig now will
``clean up'' bad values and inform you when it
does so. Also, if you read in an older file
format, xfig will inform you that it is converting
it to the current format for that version of xfig.
This window can be popped down by clicking the
mouse button on the Dismiss button.
Merge Read
Pressing this button or <Meta>r will read the
figure from the filename specified in the Filename
window if any, or the name specified in the
Current Filename if the former is empty, and merge
it with the figure already shown on the canvas.
The figure will be offset by the amounts specified
(Fig units) in the X and Y load/merge offset
widgets. Any user-defined colors in the file
being merged will be renumbered if necessary to
unique values so as not to conflict with any
user-defined colors already defined. There is no
comparison of the color values of the existing
user-defined colors with the colors being merged
in so there may be identical colors with different
numbers.
See Load above for a description of the popup
message window.
Export
Will let you export the figure to an output file in one
of several formats. Pressing mouse button 3 on this
button invokes Export function without popping up the
export panel.
Mouse button 1 or <Meta>e pops up a directory browser
widget and a menu with several export-related
functions:
Magnification
This is an editable AsciiTextWidget which contains
the magnification to use when translating figure
to the output language. The default is 100%.
Orientation
This button will toggle the output orientation
between Landscape (horizontal) and Portrait
(vertical). The default orientation is the same
as the mode that xfig was started with, or the
orientation in the Fig file when loading a Fig
file of version 3.0 or higher.
Justification
This window will only be sensitive when the
language selected is ``ps'' (PostScript). You may
choose that the figure is flush left or centered
in the output file. Export Offset These two
editable AsciiTextWidgets allow one to export a
figure with an offset. The figure will be offset
by the amounts specified (in inches or cm) in the
X and Y panels. A negative value in the X offset
will shift the figure to the left, and a negative
value in the Y offset will shift the figure up.
These offsets are in addition to any centering
done with the centering option.
Language
The translation language to use for xfig output.
The default is PostScript. The figure may be
saved as an X11 bitmap by choosing X11 Bitmap as
the output language. The bitmap(pixmap) is
created from the figure, the size of which is
determined by the enclosing rectangle of all the
figure plus a small border.
The figure may also be saved as an color X11
pixmap (using the XPM3 package) by choosing X11
Pixmap as the output language, or as a GIF file.
Finally, the figure may be saved as a JPEG image
in a JFIF file. The quality factor for exporting
JPEG is fixed at 75. This seems to be fine for
figures containing only solid objects (no images)
and adequate for figures containing imported
images (GIF, JPEG, etc.).
Default Output Filename
This is read-only AsciiTextWidget which contains
the filename that will be used to write output to
a file if there is no name specified in Output
File. The default is the figure name plus an
extension that reflects the output language used,
e.g. myfigure.ps if PostScript is the current
language used. If the file already exists a
confirmation popup menu will appear asking the
user to confirm or cancel the save.
Output Filename
This is an editable AsciiTextWidget which contains
the filename to use to write output to a file.
Pressing return in this window will Export the
file and copy the name to the Default Output
Filename widget. If the file already exists a
confirmation popup menu will appear asking the
user to confirm or cancel the save.
(File) Alternatives
Pressing mouse button 1 on a filename in the file
alternatives window will select that file by
copying the filename into Filename window.
Pressing return in this window will Export the
file and copy the name to the Default Output
Filename widget.
Filename Mask
A wildcard mask may be typed into this editable
AsciiTextWidget to restrict the search of
filenames to a subset ala the ls command.
Pressing return in this window will automatically
rescan the current directory. This string may be
set by setting the X toolkit resource
Fig*export_panel*mask*string.
Current Directory
This is an editable AsciiTextWidget which shows
the current directory. It may be modified by the
user to manually set a directory name. When
return is pressed in this window the directory
specified is scanned for files matching the
Filenamemask, if any.
It is automatically updated to follow the current
File directory when a File Load or Save is done.
The ~ (tilde) character may be used to specify a
user's home directory, ala unix shell tilde
expansion.
(Directory) Alternatives
Pressing mouse button 1 on a directory name in the
directory alternatives list will do a ``change
directory'' to that directory.
Pressing mouse button 3 in either the file or
Directory Alternatives window will do a ``change
directory'' to the parent directory.
Home Pressing this button will change the directory to
the $HOME directory of the user.
Rescan
Pressing this button or <Meta>r will rescan the
current directory.
Cancel
Pressing this button or <Meta>c will pop down the
Export menu without doing any print operation.
Export
Pressing this button or <Meta>e will write
(export) the figure to the file using the selected
language. If the file already exists, a
confirmation window will popup to ask the user to
confirm the write or cancel. Pressing return in
the Output Filename window will also Export the
file.
Print
Pressing mouse button 3 on this button invokes Print to
Printer function without popping up the print panel.
Pressing the Shift key and mouse button 3 invokes the
Print to Batch function. Pressing mouse button 1 or
<Meta>p pops up a menu with several print-related
functions:
Magnification
This is an AsciiTextWidget which contains the
magnification to use when translating figure to
the output language.
Orientation
This button will toggle the output orientation
between Landscape (horizontal) and Portrait
(vertical). The default orientation is the same
as the mode that xfig was started with, or the
orientation in the Fig file when loading a Fig
file of version 3.0 or higher.
Justification
This button will bring up a sub-menu from which
you may choose center or flush left to justify the
figure on the page. The default is flush left.
Printer
This is an AsciiTextWidget which contains the
printer to use if output is directed to a printer.
The name of the printer may be set setting the X
toolkit resource Fig*printer*string. If no
resource is set, the environment variable PRINTER
is used.
Print Job Params
This is an AsciiTextWidget which into which you
may put any extra command-line parameters that
your lpr or lp program needs for printing. If the
meta sequence %f appears in the string the current
figure name will be substituted. It may appear
more than once. This may be set using the
resource Fig*job_params*string.
Figures in batch
This indicator shows how many figures have been
put in the batch file for printing
Dismiss
Pressing this button or <Meta>c will pop down the
Print menu.
Print FIGURE/BATCH to Printer
Pressing this button or <Meta>p will send the
current figure (or the batch file if it is has any
figures in it) to the printer, by passing it
through fig2dev to convert it to PostScript then
to the unix lpr (on BSD equivalent Unixes) or lp
(on SYSV systems) program. If the batch file is
printed by this button then it is removed after
printing. The message in the button changes to
reflect whether the batch file will be printed
(when there are any figures in the batch file) or
the current figure.
Note that the figure that is printed is what you
see on the canvas, not necessarily the figure
file. I.e., if you haven't saved the figure since
the last changes, the figure from the canvas is
printed. Xfig writes the figure to a temporary
file to do this. The name of the file is
XFIGTMPDIR/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
variable XFIGTMPDIR is empty or not set, the /tmp
directory is used. Print FIGURE to Batch Pressing
this button or <Meta>b will append the figure (in
PostScript form) to a batch file. The Print to
Printer button will send the batch file to the
printer.
Clear Batch
Pressing this button or <Meta>x will erase the
accumulated figures from the batch file.
INDICATOR PANEL COMMAND DESCRIPTIONS
The indicator panel contains buttons to set certain drawing
parameters such as line thickness, canvas grid, rotation
angle etc. All of the buttons use the same mouse buttons
for setting values. Pressing mouse button 1 on the
indicator will pop up a panel in which either a value may be
typed (e.g. for a line thickness) or the mouse may be
clicked on one of several buttons (e.g. for grid style or
font name). For those that expect a value, pressing return
in the value part of the window will set the new value and
pop down the menu.
Pressing mouse button 2 on an indicator will decrement the
value (e.g. for line thickness) or cycle through the options
in one direction (e.g. font names), while pressing mouse
button 3 will increment the value or cycle through the
options in the other direction.
ZOOM SCALE
The canvas zoom scale may be set/increased/decreased
with this button. The zoom scale is displayed within
the zoom button. Ruler, grid and linewidth are scaled,
too. Pressing mouse button 2 will decrease the zoom
factor by 1.0 unless it is less than 1.0 already in
which case it will reduce to the nearest 0.25.
Pressing mouse button 3 will increase the zoom factor
by 1.0 unless it is less than 1.0 in which case it will
increase it to the nearest 0.25. Pressing the control
key and mouse button 3 together will set the zoom scale
to 1.
The figure may also be zoomed by defining a zoom
rectangle by pressing the control key and mouse button
1 together. This will define one corner of the zoom
rectangle. Move the mouse and click mouse button 1
again to define the opposite corner of the zoom
rectangle.
GRID MODE
With this button the user may select no grid, 1/4 inch
(5mm in metric mode) grid 1/2 inch (10mm) grid, or 1
inch (20mm).
POINT POSITION
This button controls the coarseness of object placement
on the canvas. The options are exact (on pixel)
placement, 1/16 inch (1mm in metric mode), 1/4 inch
(5mm) or 1/2 inch (10mm). This allows the user to
easily place objects in horizontal or vertical
alignment.
This also restricts which objects may be ``picked up''
by the mouse when editing. If a corner of an object is
not positioned on the canvas on a multiple of the point
positioning resolution you may not be able to pick it.
If this happens, a black square will temporarily appear
above the mouse cursor. This square will also appear
anytime the user tries to pick a nonexistent object.
ROTATION ANGLE
The rotation angle for rotating objects may be
set/increased/decreased with this button. Note that
not all objects may be rotated, and certain objects may
only be rotated by certain angles. Pressing mouse
button 2 will decrease the angle in steps of 15
degrees, while mouse button 3 will increase the angle
the same amount. To select other angles, press mouse
button 1 and enter the angle in the popup menu.
DEPTH
The depth at which new objects will be created may be
set/increased/decreased with this button.
NUMBER OF POLYGON SIDES
The number of sides used in creating a REGULAR POLYGON
is set with this button.
NUMBER OF COPIES
The number of copies to make when doing a COPY & ROTATE
function on an object. Each copy will be rotated an
additional ROTATION ANGLE angle from the previous.
NUMBER OF X (or Y) COPIES
The number of copies to make in the X (or Y) direction
when doing a COPY function on an object.
SMART-LINKS MODE
This button controls the smart-links mode. When turned
on, lines which link box-like objects together
(henceforth called links) are treated specially when
one of the box-like objects is moved. When set to MOVE
mode, the end point of the link which touches (or is
very near) the perimeter of the box is moved with the
box so that the box and the end point remain linked.
When set to SLIDE mode, the end segment of the link
slides so that the box remains linked and the angle of
the end segment is maintained. This is useful for
keeping the last segment of a link horizontal or
vertical.
(At the moment, this mode only works for the MOVE and
COPY functions and only works for POLYLINE links and
box-like objects. Another limitation at the moment is
that if both ends of a link touch the box being
operated on, only one end of the link will be
adjusted.)
VERTICAL ALIGN
This sets the vertical alignment mode for the ALIGN
button in the editing mode panel. The choices are no
vertical alignment, align to top edge, middle or bottom
edge of compound, distribute the centres or edges
evenly, or abut the vertical edges together. The
HORIZONTAL ALIGN and VERTICAL ALIGN indicator settings
are used together to align objects inside a compound or
in canvas.
HORIZONTAL ALIGN
This sets the horizontal alignment mode for the ALIGN
button in the editing mode panel. The choices are no
horizontal alignment, align to left edge, middle or
right edge of compound, distribute the centres or edges
evenly, or abut the horizonaal edges together. The
HORIZONTAL ALIGN and VERTICAL ALIGN indicator settings
are used together to align objects inside a compound or
in canvas.
ANGLE GEOMETRY
The following settings are available to restrict the
drawing angle of line segments in POLYLINES, POLYGONS
and SPLINES.
UNRESTRICTED
Allow lines to be drawn with any slope. This is
the default setting.
LATEX LINE
Allow lines to be drawn only at slopes which can
be handled by LaTeX picture environment lines:
slope = x/y, where x,y are integers in the range
[-6,6].
LATEX VECTOR
Allow lines to be drawn only at slopes which can
be handled by LaTeX picture environment vectors:
slope = x/y, where x,y are integers in the range
[-4,4].
MANHATTAN-MOUNTAIN
Allow lines to be drawn in the horizontal,
vertical or diagonal direction only.
MANHATTAN
Enforce drawing of lines in the horizontal and
vertical direction only. The name Manhattan comes
from the horizontal/vertical look of the Manhattan
(New York City) skyline.
MOUNTAIN
Enforce drawing of only diagonal lines. The name
comes from the pointed shape of mountains.
FILL STYLE
This button allows the user to select the area fill
darkness (grey scale or color intensity) or fill
patterns for all objects except TEXT and PICTURE, or to
turn off area fill altogether.
There are 21 ``shades'' going from black to full
saturation of the fill color, and 21 more ``tints''
from full saturation + 1 to white. In addition, there
are 16 patterns (currently only available for
PostScript, GIF, JPEG, XPM and X11 bitmap output):
30 degree left-leaning diagonal lines,
30 degree right-leaning diagonal lines,
30 degree crosshatch,
45 degree left-leaning diagonal lines,
45 degree right-leaning diagonal lines,
45 degree crosshatch,
bricks,
circles
horizontal lines,
vertical lines,
90 degree crosshatch,
fishscales,
small fishscales,
octagons,
horizontal ``sawtooth'' and
vertical ``sawtooth''.
PEN COLOR
This button is used to select one of 32 standard colors
for the borders of objects, or one of the user-defined
colors
FILL COLOR
This button is used to select one of 32 standard colors
or user-defined color to fill objects with if they have
a fill style.
Pressing mouse button 1 on either the fill or pen color
buttons will popup an extended color panel, allowing
the user to select either a standard color or a user-
defined color from menus.
The 32 standard colors are black, yellow, white, gold,
five shades of blue, four shades of green, four shades
of cyan, four shades of red, five shades of magenta,
four shades of brown, and four shades of pink.
To select one of the standard colors either click mouse
button 1 on the desired color and either press Return
or click mouse button 1 on the "Ok" button. The latter
step will pop down the color panel. You may also
double click mouse button 1 on the desired color to
select it and pop down the color panel in one step.
To add a user-defined color press mouse button on the
``Add Color'' button in the ``User Defined Colors''
section. User defined colors are assigned values
sequentially starting from 32 for a maximum of 512
colors.
A user color may be deleted by pressing mouse button 1
on the color box to select it and then pressing the
``Del Color'' button.
The last color deleted may be undeleted by pressing the
``UnDel Color'' button.
To edit a user color first select the color square by
pressing mouse button 1 on the desired square. A solid
or dashed line will be drawn around the box to show
that it is selected. Then choose the color either by
using the RGB (red, green, blue) or the HSV (hue,
saturation, value) sliders. or by typing a hexadecimal
value into the window under the pen or fill color boxes
representing the red, green and blue components (00 to
FF). If the latter is used, typing carriage return in
the hexadecimal window will set the color.
Additionally, there is a button above each of the RGB
sliders which when activated will ``lock'' two or more
sliders together at their current setting and allow you
to increase or decrease their values together with the
``lock'' slider.
If the user color being edited was just created, a
dashed line will be drawn around the box instead of a
solid line to indicate that it is new. The color that
is currently in the pen or fill boxes will be copied
into the user color cell for modification. In this way
you may start with a standard color or other user color
and modify it from there.
The user color is said to be ``defined'' when any of
the sliders is moved or a carriage return is typed into
the hexadecimal window. This will be shown by a solid
line being drawn around the square instead of dashed.
The pen or fill color choice is activated when the
panel is popped up by the respective button in the
indicator panel, but you may switch to editing the
other color by pressing either the ``Edit Pen'' or
``Edit Fill'' button.
Note that TransFig supports color output for
PostScript. On monochrome screens the objects are
created with the selected color, but black (or white)
is used to draw the objects on the canvas.
LINE WIDTH
The width of lines may be selected with this button.
Zero width lines may be drawn for the purpose of having
filled areas without outlines.
LINE STYLE
The choices for line style are solid, dashed and
dotted. Once created, a dashed or dotted line may be
edited to change the length of dashes or the spacing of
dots respectively. The dash length and dot gap can be
changed from the default using the popup menu.
JOIN STYLE
Lines may be joined with a miter, rounded or bevel
joint. This is only used for POLYLINE or POLYGON
objects.
CAP STYLE
The ends of lines may be capped with butt, round or
projecting cap. This is only used for POLYLINE, SPLINE
or OPEN ARC objects.
ARROW MODE
This button selects the auto-arrow mode for drawing
lines. The options are no arrow heads, backward-
pointing arrow head, forward-pointing arrow head or
both. If one or both arrow head modes are turned on,
then arrow heads are automatically drawn when drawing
POLYLINE, SPLINE or OPEN ARC objects.
ARROW TYPE
There are four types of arrows which may be filled with
white or the object color.
BOX CURVE
The radius of the corners on ARC-BOX objects may be set
with this button.
TEXT JUSTIFICATION
The adjustment of text may be set to left, center or
right justification.
TEXT SIZE
The text size may be set/increased/decreased with this
button. The default is 12 points.
TEXT STEP
The interline spacing of text may be
set/increased/decreased with this button. The number
displayed gives the multiple of the font height that
will be placed between lines on hitting <return>. The
default is a factor of 1.2 times the current font size.
TEXT FONT
This button allows a selection of 35 fonts available
for most Apple PostScript printers. There are two
buttons at the top of the menu. The cancel button pops
down the menu without changing the current font. The
use latex fonts will switch the menu to the LaTeX font
choices. When the LaTeX font menu is up, besides a
cancel button there is a button to switch back to the
PostScript fonts.
The name of the font is printed in the font itself so
that one may see what that font looks like. If a
corresponding X11 font exists, new text is created on
the canvas using that font. xfig uses the size of X11
font closest to that selected by the font size button.
If the X11 font doesn't exist, xfig uses the font
selected by the -normal option. To abort selection of
a font, click mouse button 1 on cancel.
TEXT FLAGS
This button displays the current setting of the text
flags. You may use mouse buttons 2 and 3 to step back
and forth through the three flag settings: Hidden,
Rigid and Special. To change any of the flags you must
use mouse button 1 to popup a menu from which you may
change any or all of the flags.
The Hidden flag is used for figures that will be used
with LaTeX and is applicable only to the display of the
document in xfig. It means that the text itself is not
shown onscreen, but only the string "<text>". This is
to keep long sequences of LaTeX formatting commands
from making the screen messy and hard to read. The
default for the Hidden flag is off.
The Special Special flag means that special characters
in the string are not specially processed but are
passed directly to LaTeX. If this flag is not set,
then the backslash character '\' is changed to the
\backslash command, a brace '{' is turned into a brace
command \{, etc. The default for the Special flag is
off unless xfig is started with the command-line
parameter -specialtext (resource specialtext).
The Rigid attribute forces text to remain the same size
even if inside a compound object that is scaled up or
down. The default is off.
DRAWING AND EDITING MODE PANELS
Icons in the drawing and editing mode panel windows
represent object manipulation functions, modes and other
drawing or modification aids. Manipulation functions are
selected by positioning the cursor over the icon
representing the desired drawing/editing function and
clicking mouse button 1. The selected icon is highlighted,
and a message describing its function appears in the message
window. The hilighting remains on until another function is
selected.
DRAWING MODE PANEL COMMAND DESCRIPTIONS
The drawing mode panel contains buttons used to create the
various xfig objects. Once the drawing mode is selected,
the object is created by moving the mouse to the point on
the canvas where the object is to be placed and pressing and
releasing mouse button 1. After that the mouse is moved to
the second point and mouse button 1 is again pressed for the
next point. For those objects which may have more than two
points (e.g. a line), mouse button 1 may be pressed for each
successive point, and mouse button 2 must be pressed to
finish the object. To create a single point using the
POLYLINE button, press and release mouse button 2. Newly
created points may be deleted by pressing the shift key and
mouse button 1. For the ARC object, which requires exactly
three points mouse button 1 is used for all three points.
At any time mouse button 3 may be pressed to cancel the
creation of the object.
ARC Create an arc. Specify three points using mouse button
1. The first and last points will form the endpoints
of the arc and the second specifies any point on the
arc. There are two types of arcs, open and pie-wedge.
BOX Create rectangular boxes. Start by clicking mouse
button 1 on any corner of the desired box and finish
with the same mouse button on the diagonally opposite
corner of the box.
ARC-BOX
Create rectangular boxes with rounded corners. Start
and finish with mouse button 1 in the same way as BOX.
The radius of the corners is selected by the BOX CURVE
button.
CIRCLE
Create circles by specifying their radii or diameters.
Click mouse button 1 on the center of the circle and
drag the mouse until the desired radius or diameter is
attained. Click mouse button 1 again to finish the
circle.
ELLIPSE
Create ellipses using the same procedure as for the
drawing of circles.
PICTURE OBJECT (PIC)
This has been changed from the previous (2.1) version
to be more generic, allowing GIF files, JPEG (JFIF)
files, X11 bitmap (monochrome) files and X11 pixmap
(XPM3) color files in addition to Encapsulated
PostScript files to be imported. Compressed (.Z) and
gzipped (.z or .gz) files are also handled. You must
have the XPM3 libraries installed to use the XPM
import/export features. See the README and Imakefile
files.
A Floyd-Steinberg dithering is applied to color images
for monochrome displays.
For EPS files, xfig will attempt to use Ghostscript to
generate a color image if xfig is running on an color
display. Ghostscript must be compiled with with the
"gif8" and "pbmraw" drivers. The pbm driver is used
when you run xfig on a monochrome display and the gif8
driver is used on a color display.
Ghostscript is available from prep.ai.mit.edu.
A neural network color allocation scheme is used when
the number of colors for all the color images on the
canvas exceeds the lesser of the number of free
colorcells or the value in the resource
Max_image_colors (command-line parameter
-max_image_colors). Whenever a new color image is
added to the canvas, the colors for all the images on
the canvas are reallocated and the images are redrawn.
No reallocation is done when images are deleted from
the canvas.
Click mouse button 1 on any corner for the PIC object
and finish by clicking mouse button 1 again on the
diagonally opposite corner. The EDIT popup panel will
appear and the file name of the PIC object may be
entered. After pressing DONE or APPLY (see the
description of the EDIT panel for the difference
between the DONE and APPLY buttons) the bitmap part of
the PIC object will appear in the box just created. If
no PIC file is available yet or no name is entered or
in the case of an Encapsulated PostScript file there is
no preview bitmap pressing DONE will pop down the edit
panel and the word <empty> or the PIC file name will
remain in the PIC box. Later, when the name of the PIC
file is known or the file is available, you may re-read
the PIC file using the popup edit panel and the bitmap
part of the PIC file will replace the name in the box.
If you want the original size of the PIC object, press
the ``Use orig size'' button and the eps bitmap will
enlarge or shrink to the size specified in the preview
bitmap of the PIC file. If you want the PIC object to
be approximately the size of the rectangle specified
with the mouse but want the aspect ratio to be same as
the original, press either ``Shrink to orig'' or
``Enlarge to orig'' buttons. You must press the APPLY
button to see these effects.
The Screen Capture button will unmap the xfig windows,
allowing you to capture a rectangular section of the
screen to a GIF file, which becomes the current import
file. After pressing the Screen Capture button you
press and release mouse button 1 at one corner of the
area of the screen you want to capture, drag out the
rectangle and press and release mouse button 1 to
finish. You may cancel the operation by pressing
either of the two other mouse buttons.
The Edit Image button will call an external image
viewer/editor (see resource Fig.image_editor: in the
Fig.ad file) to allow you to edit the current image.
The file is reimported automatically after exiting the
editor. The xfig windows are automatically unmapped
during the call of the editor.
The Reread button will cause xfig to re-read the image
file in case it has changed. This is useful (e.g.)
when you have made changes to the image file in a
program external to xfig and you wish to update the
imported image.
The Browse button which will popup a file browser to
allow you to search directories for image files. The
default search mask will match *.gif*, *.jpg*, *.xpm*,
*.xbm* and *.eps*. This mask is in the Fig.ad
application defaults file.
INTERPOLATED SPLINE
Create (cubic spline) spline objects. Enter control
vectors in the same way as for creation of a POLYLINE
object. At least three points (two control vectors)
must be entered. The spline will pass through the
entered points. Newly created points may be deleted by
pressing the shift key and mouse button 1 before
pressing mouse button 2.
POLYLINE
Create polylines (line segments connecting a sequence
of points). Enter points by clicking mouse button 1 at
the desired positions on the canvas window. Click
mouse button 2 to finish. Newly created points may be
deleted by pressing the shift key and mouse button 1
before pressing mouse button 2.
POLYGON
Same as POLYLINE except that a line segment is drawn
connecting the first and last points entered.
REGULAR POLYGON
The number of sides is first selected with the NUM
SIDES button in the indicator panel. Then mouse button
1 is clicked on the center and the mouse dragged to the
desired size. The object may be rotated as it is being
created by moving the mouse up or down relative to the
starting point. Click mouse button 1 to finish.
CLOSED INTERPOLATED SPLINE
Create closed or periodic splines. The function is
similar to POLYGON except that a closed interpolated
spline is drawn. The spline will pass through the
points (knots).
CLOSED SPLINE
Create closed or periodic spline objects. The function
is similar to POLYGON except that a closed spline will
be drawn instead of polygon. The entered points are
just control points; i.e. the spline will not pass any
of these points. Newly created points may be deleted
by pressing the shift key and mouse button 1 before
pressing mouse button 2.
SPLINE
Create (quadratic spline) spline objects. Enter
control vectors in the same way as for creation of a
POLYLINE object. At least three points (two control
vectors) must be entered. The spline will only pass
through the two end points. Newly created points may
be deleted by pressing the shift key and mouse button 1
before pressing mouse button 2.
TEXT Create text strings. Click mouse button 1 at the
desired position on the canvas window, then enter text
from the keyboard. Text may be pasted from the PRIMARY
cut buffer (xterm cut/paste buffer) by pressing the F18
function key (the Paste key on Sun keyboards) or any
key/button defined in the translation table for the
canvas. See the default Fig.ad file for example. Text
is drawn using the current font, font size and
justification settings. A DEL or ^H (backspace) will
delete a character, while a ^X will erase the entire
line. Finish by clicking mouse button 2 or typing the
<return> key. If <return> is used, the text pointer
automatically moves to the next ``line'', a distance of
the font height times the value in the TEXT STEP
button, and text input mode is re-entered. To finish
text fully, click mouse button 2 or choose any panel
button that changes modes (e.g. box, save, etc). To
edit text, click on an existing text string with mouse
button 1. Insertion of characters will take place at
that point. Or, use the popup EDIT mode to modify the
text.
Eight-bit characters may be entered using the meta
(compose) key. For example, to create an ``a umlaut'',
press and release the meta key, then the letter ``a'',
then " (quote). To create a ``c cedilla'', use <meta>c
followed by comma. The following is a list of all
special characters available using the meta key:
Keys Character Name
-------------------------------------
!! upside-down exclamation point
?? upside-down question mark
C/ cent sign
L- British pound
OX currency
Y- yen
__ broken vertical bar
SO section
"" dieresis
CO copyright
RO registered trademark
_a ordfeminine
_o ordmasculine
<< guillemotleft
>> guillemotright
-| notsign
-- hyphen
+- plusminus
^- macron
^* degree
^. periodcentered
^1 onesuperior
^2 twosuperior
^3 threesuperior
14 onequarter
12 onehalf
34 threequarters
** multiply
-: division
/u mu
P! paragraph
A` A accent grave
A' A accent acute
A^ A accent circumflex
A~ A accent tilde
A" A dieresis
A* A ring
AE AE
a` a accent grave
a' a accent acute
a^ a accent circumflex
a~ a accent tilde
a" a dieresis
a* a ring
ae ae
C, C cedilla
c, c cedilla
D- Eth
d- eth
E` E accent grave
E' E accent acute
E^ E accent circumflex
E" E dieresis
e` e accent grave
e' e accent acute
e^ e accent circumflex
e" e dieresis
I` I accent grave
I' I accent acute
I^ I accent circumflex
I" I accent dieresis
i` i accent grave
i' i accent acute
i^ i accent circumflex
i" i dieresis
N~ N tilde
n~ n tilde
O` O accent grave
O' O accent acute
O^ O accent circumflex
O~ O accent tilde
O" O dieresis
O/ O slash
OE OE
o` o accent grave
o/ o accent acute
o^ o accent circumflex
o~ o accent tilde
o" o dieresis
o/ o slash
oe oe
P| Thorn
p| thorn
ss German ss (s-zed)
U` U accent grave
U' U accent acute
U^ U accent circumflex
U" U dieresis
u` u accent grave
u' u accent acute
u^ u accent circumflex
u" u dieresis
Y' Y accent acute
y' y accent acute
y" y dieresis
-------------------------------------
Note: the two special characters OE and oe are not
displayed on the screen, but they are printed by
fig2dev.
EDITING MODE PANEL COMMAND DESCRIPTIONS
When a button in the editing mode panel is pressed, any
objects that may be affected by that editing operation will
show their corner markers. Only those objects may be
affected by the particular edit mode. In cases where two
edit modes exist for one button, it may be that the corner
markers will appear for objects that may be affected by one
button but not the other.
SELECTING OBJECTS
When multiple objects have points in common, e.g. two boxes
that touch at one corner, only one object can be selected by
clicking on that point. To select other objects, hold down
the shift key while pressing mouse button 1: the markers of
one object will be temporarily highlighted. By repeatedly
clicking mouse button 1 while holding down the shift key, it
is possible to cycle through all candidates for selection at
that point. To perform the selected action, e.g. deleting
one box, click on the point without holding down the shift
key. The operation will be performed on the highlighted
object.
Note: If the mouse is not clicked near enough to an object
marker or for whatever reason xfig cannot ``find'' the
object the user is trying to select, a black square will
temporarily appear above the mouse cursor.
GLUE COMPOUND
Compound objects are created by first tagging the
objects to be compounded and then pressing mouse button
3 to group the tagged objects into a compound object.
Single objects are tagged by clicking on them with
mouse button 1. A number of objects can be tagged at
once by using mouse button 2 to define the upper-left
and lower-right corners of a region enclosing the
objects. Tagged objects are shown with highlighted
markers. Tagged objects which are selected (see the
SELECTING OBJECTS section above) will be temporarily
unhighlighted. There is currently no special command
to tag or untag all of the objects within a figure.
You can untag all of the objects by changing from GLUE
mode to some other mode (apart from BREAK) and back
again.
BREAK COMPOUND
Break a compound object to allow manipulation of its
component parts. Click mouse button 1 on one of the
corner markers of the compound object or along one of
the imaginary lines defining the compound box.
Clicking with mouse button 2 will achieve the same
effect but will also tag the component parts (although
you will not see the tags until you change to the GLUE
mode). You can use this feature to easily alter the
objects within a compound.
SCALE OBJECT
Any object may be scaled. If mouse button 1 is pressed
on any corner of a BOX or ARC-BOX object, then that
object will be scaled proportionally to its aspect
ratio. If pressed on an edge then that dimension will
be scaled. For other objects only mouse button 2 may
be used for scaling; said object will be scaled larger
or smaller about its center. Mouse button 2 may be
used on boxes too. Text may only be scaled if inside a
compound object and then only if its RIGID flag is set
to NORMAL (using the popup edit panel). See the
TransFig manual for description of text options.
ALIGN
Align objects. Click mouse button 1 to align objects
inside a compound object or mouse button 2 to align all
objects on canvas according to the setting in the
VERTICAL ALIGN and HORIZONTAL ALIGN indicators. Note
that alignment with respect to the canvas doesn't work
for distributing or abutting. The choices are the
cumulative effect of vertically aligning the objects to
the TOP, MIDDLE or BOTTOM edge and horizontally
aligning to the LEFT, MIDDLE or RIGHT edge of the
compound, along with distributing or abutting the
objects vertically or horizontally.
MOVE POINT
Modify the position of a point of any object except
TEXT and COMPOUND objects. For unrestrained movement,
click mouse button 1 over the desired point, reposition
the point, and click the left button again. For
horizontally or vertically constrained move, click
mouse button 2 on the desired point and move either
horizontally or vertically. Notice that once you
choose the direction (horizontal or vertical), movement
is constrained in that direction. If, after moving the
mouse initially, it is moved in the other direction a
greater distance than the current position of the mouse
relative to the starting point, then that will be the
new constraint direction. In other words if you first
move the mouse horizontally one inch (say) then move it
vertically 1.3 inches, the direction will switch to
vertical until any horizontal motion exceeds 1.3
inches. When the object is positioned where desired,
click mouse button 1 to place it if that button was
used to start the move (unconstrained), or mouse button
2 (constrained) if that button was used.
MOVE Move object. Click mouse button 1 (unconstrained move)
or mouse button 2 (constrained move) on any corner
marker of the object to be moved. The
horizontal/vertical constrained movement (mouse button
2) works exactly as described for MOVE POINT.
ADD POINTS
Add points to POLYLINE, POLYGON, SPLINE, or CLOSED
SPLINE objects (points of a BOX can not be added or
deleted). Note that a REGULAR POLYGON is really an
ordinary POLYGON, so adding points to this object is
allowed and does NOT keep the polygon regular.
COPY / CUT TO CUT BUFFER
Copy object to canvas or cut buffer. Click mouse
button 1 (unconstrained copy) or mouse button 2
(constrained copy) on any corner marker of the object
to be copied (for CIRCLE and ELLIPSE objects, mouse may
also be clicked on their circumferences). The object
will be duplicated and then moved exactly as in MOVE.
If the number of X or Y copies is non-zero (from the
bottom panel) then that many copies will be made in
each respective direction, spaced evenly by the amount
of the distance the object is placed from the original
object.
If mouse button 3 is clicked on an object, that object
is copied to the cut buffer for pasting into this or
another figure. The file used for the cut buffer is
called .xfig in the user's $HOME directory. This
allows a user to run two or more xfig processes and
cut/paste objects between them. If there is no $HOME,
a file is created in a temporary directory called
xfigPID where PID is the xfig process ID. The
temporary directory used is specified in the
environment variable XFIGTMPDIR. If that variable is
empty or not set then /tmp is used.
DELETE POINTS
Delete points from POLYLINE, POLYGON, SPLINE, or CLOSED
SPLINE. Objects (points of a BOX or ARC-BOX can not be
added or deleted). Note that a REGULAR POLYGON is
really an ordinary POLYGON, so deleting points from
this object is allowed and does NOT keep the polygon
regular.
DELETE
Click mouse button 1 on an object to delete the object.
Delete a region of the canvas by clicking mouse button
2 and dragging the mouse to define an area of objects
to delete. Clicking mouse button 3 on an object will
copy the object to the cut buffer (see COPY/CUT TO CUT
BUFFER above).
EDIT OBJECT
Edit settings for an existing object. Click mouse
button 1 on the object and a pop-up menu will appear
showing existing settings for the object. Some of the
menu entries may be changed by typing new values in the
appropriate windows. These are editable Ascii-
TextWidgets and allow cut and paste. Others pop up a
sub-menu of multiple choices when pressed and held.
Yet others are buttons which toggle a setting on or off
(e.g. arrow heads on lines).
Press the ``done'' button to apply the changes to the
object and finish. Press the ``apply'' button to apply
the changes but keep the menu up for further changes.
Press the ``cancel'' button to cancel the changes and
pop down the menu.
The following table shows which settings are used for
the different objects.
Object Angle Fill Line Line Cap Join Box Pen Fill Radius
Style Width Style Style Style Curve Color Color
-----------------------------------------------------------------------
Arc + + + + + +
-----------------------------------------------------------------------
Arc-Box + + + + + +
-----------------------------------------------------------------------
Circle + + + + + + +
-----------------------------------------------------------------------
Ellipse + + + + + + +
-----------------------------------------------------------------------
PIC* +
-----------------------------------------------------------------------
Box + + + + + +
-----------------------------------------------------------------------
Polygon + + + + + +
-----------------------------------------------------------------------
Line + + + + + + +
-----------------------------------------------------------------------
Spline + + + + + +
-----------------------------------------------------------------------
Text + +
-----------------------------------------------------------------------
* Encapsulated PostScript picture objects don't use any
of the above attributes. The PostScript image is
self-defined. However, X11 bitmap picture objects use
the pen color for coloring the bitmap image.
UPDATE
By pressing mouse button 1 on an object, the current
settings for the indicator buttons (line width, line
style, area fill etc.) which have been selected for
update are copied into that object. When xfig is
started, all indicator buttons which are components of
objects are selected for update. To unselect an
indicator, click on the update button and click mouse
button 1 on the small button in the upper-right corner
of the indicator. When that indicator is selected the
foreground color (default black) shows. When it is
unselected the background color (default white) shows.
If mouse button 2 is clicked on an object, the settings
in the object that are selected by the indicator
buttons are copied into those indicator button
settings. Thus, one may copy selected attributes of
one object to another.
FLIP VERTICALLY
Flip the object up/down (mouse button 1) or copy the
object and flip it (mouse button 2). Point to part of
the object, click the appropriate button. That object
will be flipped vertically about that point.
Optionally, mouse button 3 may be pressed on the canvas
to set an anchor point about which the object will be
flipped. A crosshair indicates the anchor point on the
canvas. Pressing this button again will unset the
anchor point.
FLIP HORIZONTALLY
Flip the object left/right (mouse button 1) or copy the
object and flip it (mouse button 2). Point to part of
the object, click the appropriate button. That object
will be flipped horizontally about that point.
Optionally, mouse button 3 may be pressed on the canvas
to set an anchor point about which the object will be
flipped. A crosshair indicates the anchor point on the
canvas. Pressing this button again will unset the
anchor point.
ROTATE CLOCKWISE
Rotate the object (mouse button 1) or copy and rotate
it (mouse button 2) -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.
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 <-> POLYLINE
and
7
Turn a POLYGON into a CLOSED INTERPOLATED SPLINE , turn
a POLYLINE into a INTERPOLATED SPLINE or turn a BOX
into a ARC-BOX or vice versa.
ADD/DELETE ARROWS
Add or delete arrow heads of OPEN ARC, POLYLINE or
SPLINE objects. Add an arrow head by clicking mouse
button 1 on the endpoint of the object. Delete an
arrow head by clicking mouse button 2 on the endpoint
or arrow head. The length and thickness of the
arrowheads may be modified using the popup edit panel.
PANNING
The figure may be panned by clicking mouse button 1, 2 or 3
in the rulers. Clicking mouse button 1 in the top ruler
will pan the image to the left by 1/2 inch (1cm in metric
mode), adjusted for zoom factor. Clicking mouse button 3 in
the top ruler will pan the image right by the same amount.
By pressing and holding mouse button 2 the user may drag the
ruler by the amount desired, thus panning the image by that
amount.
If the Shift key is held down while panning the movement is
five (5) times the normal rate.
The figure is panned up and down in the same way by clicking
the mouse in the ruler on the right of the canvas.
If the Shift key is held down while panning the movement is
five (5) times the normal rate.
The figure can be returned to its origin by clicking mouse
button 1 in the units (e.g. cm or in) box.
The arrow keys may also be used to pan the image and the
home key to return the figure to the origin. Also, pressing
the Control Key and mouse button 2 will pan the figure to
the origin.
X DEFAULTS
The overall widget name(Class) is xfig(Fig). These
resources correspond to the command line arguments:
Name Class Type Default Command-line
equivalent
------------------------------------------------------------------------
boldFont Font string 8x13bold -bold
but_per_row But_per_row int 2 -but_per_row
buttonFont Font string 6x13 -button
debug Debug boolean off -debug
dont_switch_cmap Dont_switch_cmap boolean false -dontswitchcmap
exportLanguage ExportLanguage string eps -exportLanguage
flushleft FlushLeft boolean false -flushleft
image_editor ImageEditor string xv -image_editor
inches Inches boolean true -inches,
-centimeters,
-imperial,
-metric
internalborderwidth InternalBorderWidth integer 1 -internalBW
justify Justify boolean false -left (false),
-right (true)
keyFile KeyFile string CompKeyDB -keyFile
landscape Orientation boolean true -Landscape,
-Portrait
latexfonts Latexfonts boolean off -latexfonts
max_image_colors Max_image_colors integer 100 -max_image_colors
monochrome Monochrome boolean false -monochrome
normalFont Font string 6x13 -normal
pheight Height float 8(9.5) -pheight
pwidth Width float 10(8) -pwidth
reverseVideo ReverseVideo boolean off -inverse
rulerthick RulerThick integer 24 -rulerthick
scalablefonts ScalableFonts boolean true -scalablefonts
showallbuttons ShowAllButtons boolean false -showallbuttons
specialtext SpecialText boolean false -specialtext
startfillstyle startFillStyle integer 0 -startfillstyle
startfontsize StartFontSize float 12 -startfontsize
startgridmode startGridMode integer 0 -startgridmode
startlatexFont StartlatexFont string Default -startlatexFont
startlinewidth startLineWidth integer 1 -startlinewidth
startpsFont StartpsFont string Times-Roman -startpsFont
starttextstep startTextStep float 1.2 -starttextstep
trackCursor Track boolean on -track,
-notrack
userscale UserScale float 1.0 -userscale
userunit UserUnit string in(cm) -userunit
------------------------------------------------------------------------
The following are the default keyboard accelerators as
distributed in the Fig.ad app-defaults file:
(Context)
Keys Function
-----------------------------------------------------
(Main xfig panels)
<Meta>q Quit xfig
<Meta>d Delete all objects from canvas
<Meta>u Undo
<Meta>r Redraw
<Ctrl>l Redraw
<Meta>t pasTe xfig cutbuffer onto canvas
<Meta>f popup File menu
<Meta>e popup Export menu
<Meta>p popup Print menu
<Meta>l (re)Load figure from current file
<Meta>s Save figure to current file
(Popup units panel in corner of rulers)
<Meta>c Cancel popup unit panel
<Meta>s Set units
(Popup file panel)
<Meta>r Rescan current directory
<Meta>c Cancel
<Meta>l Load figure
<Meta>s Save figure
<Meta>m Merge read into current figure
(Popup export panel)
<Meta>r Rescan current dirctory
<Meta>c Cancel
<Meta>e Export figure
(Popup print panel)
<Meta>c Cancel
<Meta>b print to Batch file
<Meta>p Print to printer
<Meta>x clear batch file
(Canvas)
<None>c Draw circle by radius
<Shift>c Draw circle by diameter
<None>e Draw ellipse by radius
<Shift>e Draw ellipse by diameter
<Shift>s Draw closed spline
<None>s Draw open spline
<Shift>i Draw closed interpolated spline
<None>i Draw open interpolated spline
<None>p Draw polygon
<None>l Draw line
<None>b Draw box
<Shift>b Draw arcbox
<None>r Draw arc
<Ctrl>p Draw picture object
<None>t Draw text
<None>g Glue compound
<Shift>g Break compound
<Ctrl>s Scale object
<None>a Align object in compound
<Shift>m Move point
<None>m Move object
<Ctrl>a Add point to object
<Ctrl>c Copy object
<Shift>d Delete point from object
<None>d Delete object
<None>u Update object or indicator panel
<Ctrl>e Edit object
<None>f Flip object up/down
<Shift>f Flip object left/right
<Ctrl>r Rotate object clockwise
<Shift>r Rotate object counter-clockwise
<None>v Convert object to/from line/spline or box/arc-box
<Shift>a Add/delete arrowhead
WIDGET TREE
Below is the widget structure of xfig. The widget class
name is given first, followed by the widget instance name.
Fig xfig
Form form
Form commands
Command quit
Command delete_all
Command orient
Command undo
Command redraw
Command paste
Command file
Command export
Command print
Form msg_form
Text message
Label file_name
Label mouse_panel
Box mode_panel
Label label
Command button (one for each of the 16 drawing mode buttons)
Label label
Command button (one for each of the 18 editing mode buttons)
Label topruler
Label canvas
Label unitbox
Box upd_ctrl_form
Label upd_ctrl_label
Box upd_ctrl_btns
Command set_upd
Command clr_upd
Command tog_upd
Viewport ind_panel
Core clip
Scrollbar horizontal
Box ind_box
Form button_form (one for each of the 22 indicator buttons)
Command button
Toggle update (only those indicators that affect creation
of objects have update toggles)
TransientShell ps_font_menu
Box menu
Form ps_buttons
Command cancel
Command use_latex_fonts
Command pane (one for each of the 35 PostScript font panes)
TransientShell latex_font_menu
Box menu
Form latex_buttons
Command cancel
Command use_postscript_fonts
Command pane (one for each of the 6 LaTeX font panes)
TransientShell file_menu
Form file_panel
Label file_status
Label num_objects
Label cur_file_label
Text cur_file_name
Label file_label
Text file_name
Label file_alt_label
Viewport vport
Core clip
Scrollbar vertical
List file_list_panel
Label mask_label
Text mask
Label dir_label
Text dir_name
Label dir_alt_label
Command home
Viewport dirvport
Core clip
Scrollbar vertical
Command rescan
Command cancel
Command save
Command load
Command merge
Label fig_offset_label
Label fig_offset_lbl_x
Text fig_offset_x
MenuButton Inches
SimpleMenu menu
SmeBSB Inches
SmeBSB Centim.
SmeBSB Fig Units
Label fig_offset_lbl_x
Text fig_offset_x
MenuButton Inches
SimpleMenu menu
SmeBSB Inches
SmeBSB Centim.
SmeBSB Fig Units
TransientShell export_menu
Form export_panel
Label mag_label
Text magnification
Label orient_label
MenuButton orientation
SimpleMenu menu
SmeBSB portrait
SmeBSB landscape
Label just_label
MenuButton justify
SimpleMenu menu
SmeBSB Flush left
SmeBSB Centered
Label export_offset_label
Label export_offset_lbl_x
Text export_offset_x
MenuButton Inches
SimpleMenu menu
SmeBSB Inches
SmeBSB Centim.
SmeBSB Fig Units
Label export_offset_lbl_y
Text export_offset_y
MenuButton Inches
SimpleMenu menu
SmeBSB Inches
SmeBSB Centim.
SmeBSB Fig Units
Label lang_label
SimpleMenu menu
SmeBSB LaTeX box (figure boundary)
SmeBSB LaTeX picture
SmeBSB LaTeX picture + epic macros
SmeBSB LaTeX picture + eepic macros
SmeBSB LaTeX picture + eepicemu macros
SmeBSB PiCTeX macros
SmeBSB IBMGL (or HPGL)
SmeBSB Encapsulated PostScript
SmeBSB PostScript
SmeBSB Combined PS/LaTeX (PS part)
SmeBSB Combined PS/LaTeX (LaTeX part)
SmeBSB Textyl \special commands
SmeBSB TPIC
SmeBSB PIC
SmeBSB MF
SmeBSB GIF
SmeBSB JPEG
SmeBSB X11 Bitmap
SmeBSB X11 Pixmap
Label def_file_label
Label def_file_name
Label out_file_name
Text file
Label file_alt_label
Viewport vport
Core clip
Scrollbar vertical
List file_list_panel
Label mask_label
Text mask
Label dir_label
Text dir_name
Label dir_alt_label
Command home
Viewport dirvport
Core clip
Scrollbar vertical
List dir_list_panel
Command rescan
Command cancel
Command export
TransientShell print_menu
Form print_panel
Label printer_image
Label print_label
Label mag_label
Text magnification
Label orient_label
MenuButton landscape
SmeBSB portrait
SmeBSB landscape
Label just_label
MenuButton justify
SimpleMenu menu
SmeBSB flush left
SmeBSB centered
Label printer_label
Text printer
Label job_params_label
Text job_params
Label num_batch_label
Label num_batch
Command dismiss
Command print
Command print_batch
Command clear_batch
TransientShell file_msg
Form file_msg_panel
Text file_msg_win
Command dismiss
Command clear
TransientShell query_popup
Form query_form
Label message
Command yes
Command no
Command cancel
TransientShell set_unit_panel
Form form
Label Unit/Scale settings
Label Ruler Units =
MenuButton Imperial (in)
SimpleMenu menu
SmeBSB Metric (cm)
SmeBSB Imperial (in)
Label Figure units =
MenuButton Ruler units
SimpleMenu menu
SmeBSB Ruler units
SmeBSB User defined
Label user_units
Text Unit/Scale settings
Label Figure scale =
MenuButton User defined
SimpleMenu menu
SmeBSB Unity
SmeBSB User defined
Text 1.0000
Command cancel
Command set
Popup color panel:
TransientShell set_indicator_panel
Form form
Label Colors
Command cancel
Command set_color_ok
Form mixedForm (for Pen Color)
Toggle mixedEdit
Core mixedColor
Text tripleValue
Form mixedForm (for Fill Color)
Toggle mixedEdit
Core mixedColor
Text tripleValue
Label stdLabel
Form stdForm
Command stdColor (one for each of 33 std colors)
Label userLabel
Form userForm
Viewport userViewport
Core clip
Scrollbar horizontal
Box userBox
Label colorMemory (one for each user color)
Command addColor
Command delColor
Command undelColor
Form mixingForm
Label redLocked
Label greenLocked
Label blueLocked
Label lockedLabel
Scrollbar redScroll
Scrollbar greenScroll
Scrollbar blueScroll
Scrollbar lockedScroll
Label hueLabel
Label satLabel
Label valLabel
Scrollbar hueScroll
Scrollbar satScroll
Scrollbar valScroll
NOTE: The following is a typical popup edit panel (for
ARC-BOX) The panel will be different for other objects.
TransientShell edit_panel
Label POLYLINE:ArcBox
Label image
Command done
Command apply
Command cancel
Label
Label Width =
Text Width =
Label Border color =
MenuButton 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 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 Depth =
Text Depth =
Label Fill style =
MenuButton No fill
SimpleMenu menu
SmeBSB No fill
SmeBSB Filled
SmeBSB Pattern
Label Fill intensity % =
Text Fill intensity % =
Label Fill pattern =
Text Fill pattern =
Label Line style =
MenuButton Solid Line
SimpleMenu menu
SmeBSB Dashed Line
SmeBSB Dotted Line
Label Dash length/Dot gap =
Text Dash length/Dot gap =
Label Radius =
Text Radius =
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
The following is the widget structure for the popup browser
available for the Picture Object edit popup.
TransientShell xfig_browse_menu
Form browse_panel
Label file_label
Text file_name
Label file_alt_label
Viewport vport
Core clip
List file_list_panel
Scrollbar vertical
Label mask_label
Text mask
Label dir_label
Text dir_name
Label dir_alt_label
Command home
Viewport dirvport
Core clip
List dir_list_panel
Command rescan
Command close
Command apply
BUGS and RESTRICTIONS
Please send bug reports, fixes, new features etc. to:
bvsmith@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.
See the README file for troubleshooting.
SEE ALSO
Brian W. Kernighan PIC - A Graphics Language for Typesetting
User Manual
fig2dev(1) (TransFig package)
gs(1) (Ghostscript PostScript previewer)
ACKNOWLEDGEMENT
Many thanks goes to Professor Donald E. Fussell who inspired
the creation of this tool.
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
irrevocable, 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
limitation a license to do the foregoing actions under any
patents of the party supplying this software to the X
Consortium.
No representations are made about suitability of this
software for any purpose. It is provided ``as is'' without
express or implied warranty.
PostScript is a trademark of Adobe Systems Incorporated.
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.
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
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
compound and point move for boxes, cancel object
creation, point positioning to three resolutions,
TransFig scalable text, hidden text, special text, save
of figure on crash by:
Paul King (king@cs.uq.oz.au)
with help from:
Brian 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)
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 optimal
colour quantization" in "Network: Computation in Neural
Systems" Vol. 5 (1994) pp 351-367. for a discussion 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)
Version 3.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)
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