.TH xfig "" "" "X Application"
.PC "Tool for interactive generation of figures"
\fBxfig [\fIoptions\^\fB] [\fIfile\^\fB]\fR
.PP
.SH DESCRIPTION
.B xfig
is a menu-driven tool with which you can draw and manipulate objects
interactively in an X window.
.\"It runs under X version 11
.\".B release 4 or higher
.\"and requires a two- or three-button mouse.
.I file
names the file that holds the figure to be edited.
When
.B xfig
first comes up, it reads the description of objects within
.IR file .
If you do not name a
.I file
on your command line, it display an empty window and
lets you create a new set of shapes.
.PP
If your mouse has only two buttons and you have not added the instruction
.B emulate3buttons
to file
.BR /usr/X11/lib/Xconfig ,
you can emulate the center button by pressing the
.B <ctrl>
key and the right button simultaneously.
.PP
The package
.B transfig
prints or exports the output from
.BR xfig .
.PP
.\"Note for previous \fIxfig\fP users:
.\".PP
.\"The \fIf2p\fP and \fIf2ps\fP translators have been phased out
.\"because the \fITransFig\fP package from Micah Beck is a more general
.\"purpose translator for more graphics languages.
.\"The \fITransFig\fP package can be used as a back-end processor to \fIxfig\fP
.\"to produce various types of output:
.\".IP "LaTeX - "12
.\"\fIfig2dev -L latex\fP translates \fIxfig\fP to \fILaTeX\fP
.\"picture environment commands which can be
.\"processed along with other
.\".I LaTeX
.\"commands.
.\".IP "Postscript -
.\"\fIfig2dev -L ps\fP produces a \fIPostScript\fP output.
.\".IP "Pic -
.\"\fIfig2dev -L pic\fP produces a pic output.
.\".IP "PiCTeX -
.\"\fIfig2dev -L pictex\fP produces
.\".I PiCTeX
.\"output.
.\"This contains macros that can be used with the
.\".I PiCTeX
.\"environment under
.\".I TeX
.\"or
.\".I LaTeX.
.\".IP "Others -
.\"\fIfig2dev\fP has options for these other languages:
.\"\fIbox\fP,
.\"\fIepic\fP,
.\"\fIeepic\fP,
.\"and \fIeepicemu\fP.
.\".PP
.\"The \fITransFig\fP package is available via anonymous ftp from
.\"export.lcs.mit.edu in /contrib/R5fixes/transfig-fixes/transfig.2.1.X.tar.Z, 
.\"where the X is the current patchlevel.
.\".LP
.\"Note: \fITransFig\fP versions 2.1.4 and later support color
.\"output for \fIPostScript\fP.
.SH Options
.B xfig
recognizes the following command-line options:
.IP "\fB\-bg \fIcolor\fR\fR"
Use \fIcolor\fP as the background color for the canvas and buttons.
.IP "\fB\fB-bol \fIfont\fR"
.IS "\fB\fB-bold \fIfont\fR"
Use
.I font
for displaying confirmation messages.
The default is
.BR 8x13bold .
.IP "\fB-bu \fIfont\fR"
.IS "\fB-button \fIfont\fR"
Use
.I font
for the labels on most buttons.
The default is
.BR 6x13 .
.IP \fB\-de\fR
.IS \fB\-debug\fR
Turn on debugging mode.
This tells
.B xfig
to print messages that describe its configuration and actions.
.IP "\fB\-e \fIlanguage\fR"
.IP "\fB\-exportLanguage \fIlanguage\fR"
Export a figure file into
.IR language .
.B xfig
recognizes the following languages:
.DS
.ta 1.25i
\fIName	Language\fR
\fBbox\fR	LaTeX box (figure boundary)
\fBlatex\fR	LaTeX picture
\fBepic\fR	LaTeX picture + epic macros
\fBeepic\fR	LaTeX picture + eepic macros
\fBeepicemu\fR	LaTeX picture + eepicemu macros
\fBpictex\fR	PiCTeX macros
\fBeps\fR	Encapuslated PostScript
\fBps\fR	PostScript
\fBpstex\fR	Combined PostScript/LaTeX (PostScript part)
\fBpstex_t\fR	Combined PostScript/LaTeX (LaTeX part)
\fBtextyl\fR	Textyl special commands
\fBtpic\fR	TPIC
\fBpic\fR	PIC
\fBxbm\fR	X11 Bitmap
.DE
.IP "\fB\-fg \fIcolor\fR"
Use
.I color
as the foreground color and the default color for objects.
.IP \fB\-fl\fR
.IS \fB\-flushleft\fR
Print the figure flush left.
The default is to center the figure on the page.
.IP "\fB-geom \fIWxH+X+Y\fR
.IP "\fB-geometry \fIWxH+X+Y\fR
Set the geometry for the application:
.I W
and
.I H
give, respectively, the width and height of
.BR xfig 's
window; while
.I X
and
.I Y
give the offset, in pixels, of the window's upper left corner from the
upper left corner of your display's virtual screen.
.IP "\fB-iconG \fI+X+Y\fR"
.IS "\fB-iconGeometry \fI+X+Y\fR"
Give the geometry of the icon.
Its syntax is the same as that of
.IR geometry .
.IP \fB\-inc\fR
.IS \fB\-inches\fR
Make inches the unit of choice.
This is the unit of choice.
.IP "\fB\-internalBW \fIwidth\fR"
Use lines \fIwidth\fR
pixels wide between all buttons and panels.
The default is one.
.IP \fB\-inv\fR
.IS \fB\-inverse\fR
Use inverse video (white on black).
.IP "\fB\-k \fIcompose-key-file\fR"
.IS "\fB\-keyFile \fIcompose-key-file\fR"
Use file
.I compose-key-file
instead of the default file
.B /usr/X11/lib/CompKeyDB
that comprises the meta-key data base.
If no `/' appears in
.IR compose-key-file ,
the file must reside in
.BR xfig 's
library directory, which is named by the environmental variable
.B $XFIGLIBDIR
(usually
.BR /usr/X11/lib ).
.\"If there are any "/"s in the name it is taken as is (not relative
.\"to \fI$XFIGLIBDIR\fP).
.\"If there is a leading "~/" in the string then the ~ is expanded to the
.\"user's home directory.
.IP \fB\-L\fR
.IS \fB\-Landscape\fR
Come up in landscape mode (10\(mu8 inches).
This is the default.
.IP \fB\-lat\fR
.IS \fB\-latexfonts\fR
Start
.B xfig
with the LaTeX font selection.
By default,
.B xfig
uses the PostScript fonts.
.IP \fB\-le\fR
.IS \fB\-left\fR
Move the side panel window to the left of the main (canvas) window.
This is the default.
.IP \fB\-me\fR
.IS \fB\-metric\fR
Make centimeters the unit of choice.
To switch between metric and Imperial units of measure while
.B xfig
is running,
press the right-mouse button on the button labelled
.K units
and selecting the units of measure you want from the pop-up menu that
.B xfig
then displays.
.IP \fB\-mo\fR
.IS \fB\-monochrome\fR
Use black and white only.
.IP "\fB-nor \fIfont\fR"
.IS "\fB-normal \fIfont\fR"
Use
.I font
on the message panel and ruler numbers.
Also use
.I font
on the canvas window should you select a font that is not be available as an
X11 font.
The default font is
.BR fixed .
.IP "\fB\-nosc\fR"
.IS "\fB\-noscalablefonts\fR"
Disable the use of the X11R5 scalable fonts.
You might want to use this for debugging.
.IP \fB\-not\fR
.IS \fB\-notrack\fR
Turn off the mouse cursor's tracking arrows.
The default is to have them turned on.
.IP \fB\-P\fR
.IS \fB\-Portrait\fR
Come up in portrait mode (8\(mu9 inches).
.IP "\fB\-ph \fIunits\fR"
.IS "\fB\-pheight \fIunits\fR"
Make
.B xfig
come up
.I units
high, where
.I units
are either centimeters or inches.
.IP "\fB-pw \fIunits\fR"
.IS "\fB-pwidth \fIunits\fR"
Make
.B xfig
come up
.I units
wide, where
.I units
are either centimeters or inches.
.IP "\fB\-ri\fR"
.IS "\fB\-right\fR"
Move the side-panel window to the right of the main (canvas) window.
The default is to the left of the canvas window.
.IP "\fB\-sc\fR"
.IS "\fB\-scalablefonts\fR"
Allow the use of the X11R5 scalable fonts.
.IP "\fB\-sh\fR"
.IS "\fB\-showallbuttons\fR"
Show all of
.BR xfig 's
indicator buttons, instead of only those relevant to the current drawing mode.
Normally,
.B xfig
displays the buttons
.Kr line_width ,
.Kr area-fill ,
.Kr grid_mode ,
.Kr text_size ,
and so on, only when they apply to the current mode of drawing.
This takes up more room on the screen,
but lets you see all settable parameters.
.IP \fB\-sp\fR
.IS \fB\-specialtext\fR
Start
.B xfig
in
.B "special text"
mode for text objects.
.IP "\fB-startf \fIpoints\fR"
.IS "\fB-startfontsize \fIpoints\fR"
Set the default height of text objects to
.IR points .
The default is 12 points.
.IP "\fB-startl \fIfont\fR"
.IS "\fB-startlatexFont \fIfont\fR"
Use
.I font
as the starting font for LaTeX fonts.
.IP "\fB-startp \fIfont\fR"
.IS "\fB-startpsFont \fIfont\fR"
Use
.I font
as the starting font for PostScript fonts.
.IP \fB\-te\fR
.IS \fB\-textoutline\fR
Tell
.B xfig
to draw a red outline of the ``actual'' bounding box of a text object.
This is useful for determining what rotated text will look like, as
.B xfig
does not rotate the text on the canvas other than 0, 90, 180, or 270\(de.
.IP \fB\-tr\fR
.IS \fB\-track\fR
Turn on mouse cursor's tracking arrows.
This is the default.
.IP "\fB\-users \fIscale\fR"
.IS "\fB\-userscale \fIscale\fR"
Set the multiplier for displayed lines.
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; for example:
.DM
	1 inch = 1 foot
.DE
.IP
where
.B userscale
equals 12.0, or
.DM
	1cm = 1m
.DE
.IP
where
.B userscale
equals 100.0.
.IP "\fB\-useru \fIunits\fR"
.IS "\fB\-userunit \fIunits\fR"
When drawing an objects, print the string
.I units
with the length information.
For example if
.B userscale
equals 1.0 and 
.B userunit
equals ``ft'', then
.B xfig
displays
.DM
	length = 3 ft
.DE
.IP
when it draws a line that is three inches long on the canvas.
.IP
To change either
.B userscale
or
.B userunit
after you have started
.BR xfig ,
click the right-mouse button on the button
.K units
and make the appropriate selection from the menu
.B xfig
then displays.
.SH "Graphical Objects"
.B xfig
organizes graphical objects into
into two categories:
.I "primitive objects"
and
.IR "compound objects" .
.PP
Primitive objects consist of the following:
.DS
.B
	ARC
	ARC-BOX
	BOX
	CIRCLE
	CLOSED SPLINE
	ELLIPSE
	ENCAPSULATED POSTSCRIPT
	POLYGON
	POLYLINE
	SPLINE
	TEXT
.R
.DE
.PP
A primitive object can be moved, rotated,
scaled, copied, aligned within a compound object, erased, and
(except for the
.B TEXT
primitive) flipped vertically or horizontally,
A
.B TEXT
primitive may be rotated, but the markers show the rotation (on-screen)
only for angles other than 0, 90, 180, or 270\(de; note, however, that text
.I is
rotated on PostScript output.
You can use a pop-up panel (discussed below) to edit
the attributes of any primitive object; for example,
you can use the panel to set the position of an object manually.
.PP
A compound object is composed of primitive objects.
You cannot modify individually
the primitive objects that constitute a compound;
however, you can manipulate them as an entity.
Therefore, a compound can be moved, rotated, flipped
vertically or horizontally, scaled, copied, or erased.
A compound object that contains any boxes or arc-boxes can
only be rotated by 90\(de.
.PP
The ``depth number'' marks how far an object recedes into the background.
An object stands behind any other object that has a depth number smaller than
it, and therefore is obscured by it.
.PP
You can create regular polygons using a special drawing mode, but a general
.B POLYGON
is created as a result, which you can then modify;
for example, if you wish you can move its individual vertices.
.SH "Display Windows"
The following figure shows
.BR xfig 's
display area:
.PH 1 1 \*(XD/xfig.eps
As you can see, the display area consists of the following ten regions:
.\".BR xfig 's
.\"display area consists of the following ten regions:
.DS
	canvas window
	command window
	drawing-mode window
	editing-mode window
	file window
	indicator window
	message window
	mouse-function-indicator window
	side ruler
	top ruler
.DE
.PP
The indicator region holds buttons with which you can set
the thickness of a line, its style, its color, the area-fill color,
and several other settings.
.II "University of Kent"
The mouse-function-indicator region was inspired by the UPS debugger
from the University of Kent.
The drawing- and editing-mode regions can be placed to the left or
right of the the canvas window; the default is to the left.
.SH "Command-Panel Functions"
The following describes the buttons that appear on the command panel:
.IP \fK(Quit)\fR
Exit from
.BR xfig ,
and discard the figure displayed in the canvas window.
If the figure has been modified and not saved,
.B xfig
will ask you to confirm this action by
by clicking the left-mouse button on a pop-up menu.
.IP \fK(Delete_All)\fR
Delete all objects from the canvas window.
.IP \fK(Undo)\fR
Undo the last creation, deletion, or modification of an object.
.IP \fK(Redraw)\fR
Redraw the canvas window.
.IP \fK(Paste)\fR
Paste into the current figure the object most recently copied
into the cut/paste file, at its original position.
.IP \fK(File)\fR
Clicking the right-mouse button on this button invokes the
.B Save
function without popping up the file panel.
If you press the left-mouse button on this button, or press the key
.BR <meta-F> ,
.B xfig
pops up a panel with the following file-related functions:
.RS
.IP \fK(Current_Filename)\fR
This names the file into which output is to be written.
If no name appears on the
.B Filename
button, this action displays the contents of its AsciiTextWidget.
.IP \fK(Filename)\fR
This displays the contents of an editable AsciiTextWidget
that that was populated either by clicking a file name on the
.K Alternatives
list, or by typing in a file name.
Pressing \*(RT in this window
.BR Load s
the file and displays its name within the Current Filename widget.
.IP \fK(File_Alternatives)\fR
This names alternative files.
If you clicking the left-mouse button an entry in this window,
.B xfig
copies the file's name into the
.K Filename
window.
If you press \*(RT,
.B xfig
loads the file named in the
.K Filename
window (if any) or the Current Filename widget.
.IP \fK(Filename_Mask)\fR
You can type a mask into this editable AsciiTextWidget to restrict
the range of files sought.
This mask can contain the usual wild-card characters;
for details, see the entry for
.B wildcards
in the \*(CO Lexicon.
The `~' (tilde) character indicates your home directory.
If you press \*(RT in this window,
.B xfig
rescans the current directory for files whose names fit the mask.
You can also set the mask by setting the X Toolkit resource
\fB*file_panel*mask*string\fP.
.IP \fK(Current_Directory)\fR
This names the current directory.
The name is kept in an editable AsciiTextWidget that you can modify.
When you press \*(RT,
.B xfig
scans this directory for all files that match the file-name mask, if any.
.IP \fK(Directory_Alternatives)\fR
This names a number of directories other than the current directory.
If you click the left-mouse button on a name in this list,
that directory becomes the current directory;
this has the same effect as using the command
.B cd
to enter that directory.
If you click the right-mouse button on either the
.B File
window or the
.K Directory_Alternatives
button,
.B xfig
changes to the parent of the current directory.
.IP \fK(Home)\fR
Clicking this button makes your home directory the current directory.
.IP \fK(Rescan)\fR
Clicking this button or press the key
.B <meta-R>
tells
.B xfig
to rescan the current directory.
.IP \fK(Cancel)\fR
Clicking this button or pressing the key
.B <meta-C>
tells
.B xfig
to close this panel without changing the directory or the current file.
.IP \fK(Save)\fR
Clicking this button or pressing
.B <meta-S>
writes the contents of the canvas window into the file named in the
.B Filename
window.
If this window does not name a file,
.B xfig
writes the the canvas window's contents into the file named in the
.B "Current Filename"
window.
If the file already exists,
.B xfig
asks you to confirm your decision before it overwrites the contents
of that file.
.B xfig
also updates the
.B Export
directory to the current file's directory.
.IP \fK(Load)\fR
Clicking this button or pressing the key
.B <meta-L>
clears the canvas window and loads into it the contents of the file
named in the
.K Filename
menu item.
If this menu item is empty,
.B xfig
reads file named in the
.K Current_Filename
menu item.
If the contents of the canvas window have been modified and you have not
saved those changes,
.B xfig
asks you to confirm your action before it throws away your work.
When it loads the file,
.B xfig
also updates the current
.B Export
directory to the directory of the file it loaded.
.IP
If the file being loaded contains any ``illegal'' object values,
.B xfig
pops up a message window that contains a diagnostic message, and
corrects the illegal value.
It also informs you if it converts an older file into the most recent format.
To erase this window, click its
.K Dismiss
button.
.IP \fK(Merge_Read)\fR
Clicking this button or pressing the key
.B <meta-R>
reads the figure from the file named in the
.B Filename
window, and merges it into the contents of the canvas window.
If the
.B Filename
window is empty, it reads the file named in the
.B "Current Filename"
window.
If an error occurs,
.B xfig
displays the same error-message window described above.
.RE
.IP \fK(Export)\fR
Export the figure in the canvas window into a file, in any of several formats.
Clicking the right-mouse button on this button invokes the
.B Export
function without popping up the export panel.
.IP
Clicking the left-mouse button or pressing key
.B <meta-E>
pops up a directory-browser widget and
a menu that displays the following export-related functions:
.RS
.IP \fK(Magnification)\fR
This is an editable AsciiTextWidget that sets the magnification that
.B xfig
uses when it translates the figure into the output language.
The default is 100%.
.IP \fK(Orientation)\fR
Clicking this button toggles the orientation of the output between
Landscape (horizontal) and Portrait (vertical).
The default orientation is the same as the mode in which you started
.BR xfig .
.IP \fK(Justification)\fR
This button is sensitive only when you select
.B ps
(i.e., PostScript) as the output language.
You can choose to make the figure either
.B "flush left"
or
.BR centered .
.IP \fK(Language)\fR
This lets you select the language into which
.B xfig
translates the figure that is in the canvas window.
The default is PostScript.
You can also save the figure as an X11 bitmap; to do so, choose
.B xbitmap
as the output language.
.B xfig
creates the bitmap from the figure, the size of which is determined
by the enclosing rectangle of the entire figure plus a small border.
.IP \fK(Default_Output_Filename)\fR
This read-only AsciiTextWidget
names the file into which
.B xfig
writes its output if no file is named in the
.K Output_Filename
field (described below).
The default is the figure's name plus an extension
that reflects the output language used, e.g.,
.B myfigure.ps
if PostScript is the language currently used.
If the file already exists,
.B xfig
pops up a window and asks you to confirm that you want to save the
figure into that file (and thus, overwrite that file's current contents).
.IP \fK(Output_Filename)\fR
This editable AsciiTextWidget names the file into which
.B xfig
writes its output.
If you press \*(RT while the mouse cursor is in this window,
.B xfig
exports the file name and copies it into the widget
.BR "Default Output Filename" .
If the file already exists,
.B xfig
pops up a window and asks you to confirm that you wish to use this file.
.IP \fK(File_Alternatives)\fR
This window display the names of alternative files into which
.B xfig
can write its output.
If you click the left-mouse button on a file name shown in this window,
.B xfig
copies that file name into the
.B Filename
window.
If you press \*(RT while the mouse cursor is in this window,
.B xfig
exports the file and copies its name into the widget
.BR "Default Output Filename" .
.IP \fK(Filename_Mask)\fR
You can type a mask into this editable AsciiTextWidget to restrict
the search of file names.
You can embed wildcard characters within this mask; in effect, the
mask works like an argument to the command
.BR ls .
Pressing \*(RT in this window tells
.B xfig
to rescan the current directory.
You can also set this string by setting the X toolkit resource
.BR *export_panel*mask*string .
.IP \fK(Current_Directory)\fR
This is an editable AsciiTextWidget that shows the current directory.
You can modify it to change the current directory.
If you press \*(RT while the mouse cursor is in this window,
.B xfig
scans the directory it names for files that match the
.BR Filenamemask ,
if any.
.IP
.B xfig
automatically updates this window
to follow the
.B "Current File"
directory when it loads or saves a file.
.IP
You can use the `~' (tilde) character to specify your home directory,
just as with the Bourne or Korn shells.
.IP \fK(Directory_Alternatives)\fR
This window lists other directories that
.B xfig
knows about.
If you click the left-mouse button on a name displayed in this window,
.B xfig
enters that directory.
If you press the right-mouse button in either the
.B File
or
.B "Directory Alternatives"
window,
.B xfig
changes to the parent directory of that file or directory.
.IP \fK(Home)\fR
Clicking on this button tells
.B xfig
to change to directory
.BR $HOME .
.IP \fK(Rescan)\fR
If you click this button or press the key
.BR <meta-R> ,
.B xfig
rescans the current directory.
.IP \fK(Cancel)\fR
If you click this button or press
.BR <meta-C> ,
.B xfig
removes the
.B Export
menu without performing any print operation.
.IP \fK(Export)\fR
If you click this button or press
.BR <meta-E> ,
.B xfig
writes (exports) the figure within the canvas window into the current file,
using the selected language.
If the file already exists,
.B xfig
asks you to confirm the write or cancellation.
Pressing \*(RT in the
.B "Output Filename"
window will also exports the figure.
.RE
.IP \fK(Print)\fR
Clicking the right-mouse button on this button invokes the function
.B "Print to Printer"
without popping up the print panel.
Pressing the
.B <shift>
key and clicking the right-mouse button invokes the function
.BR "Print to Batch" .
Clicking the left-mouse button on this button or pressing the key
.B <meta-P>
pops up a menu that displays the following print-related functions:
.RS
.IP \fK(Magnification)\fR
This is an AsciiTextWidget that contains the magnification to use
when translating figure to the output language.
.IP \fK(Orientation)\fR
Clicking this button toggles the output orientation between
Landscape (horizontal) and Portrait (vertical).
The default orientation is the same as the mode in which you started
.BR xfig .
.IP \fK(Justification)\fR
Clicking this button brings up a sub-menu with which you can justify the
figure on the page:
the alternatives are
.B center
or
.BR "flush left" .
The default is
.BR "flush left" .
.IP \fK(Printer)\fR
This is an AsciiTextWidget that contains the printer to
use if output is directed to a printer.
You can also set the name of the printer by setting the X toolkit resource
.BR *printer*string .
If no resource is set,
.B xfig
reads the printer from the environmental variable
.BR PRINTER .
.IP \fK(Print_Job_Params)\fR
This is an AsciiTextWidget into which you may put any extra
command-line parameters that your
.B lpr
or
.B lp
program needs for printing.
.IP \fK(Figures_in_batch)\fR
This indicator shows how many figures have been put in the batch file
for printing.
.IP \fK(Dismiss)\fR
Clicking this button or the key
.B <meta-C>
removes this menu.
.IP \fK(Print_FIGURE/BATCH_to_Printer)\fR
Clicking this button or the key
.B <meta-P>
sends the current figure (or the batch file, if it is has any figures in it)
to the printer, by piping it through the program
.B fig2dev
to convert it to PostScript, then to
.B lpr
or
.BR lp ,
whichever you prefer.
If you use this button to print a batch file,
.B xfig
removes the file after it is printed.
It then changes the label on the button to reflect whether the batch file
will be printed (when there are any figures in the batch file)
or the current figure.
.IP
Note that the figure that is printed is what you see in the canvas window,
not necessarily the figure file:
that is, if you have not saved the figure in the canvas window
since you last modified it,
.B xfig
prints the figure in the canvas window.
.B xfig
writes the figure to a temporary file to do this.
The name of the file is \fB$XFIGTMPDIR\fB/xfig-print\fIPID\fR, where
.B $XFIGTMPDIR
is the value of that environment variable and
.I PID
is the process ID of
.BR xfig .
If the environment variable
.B XFIGTMPDIR
is empty or not set, the
.B /tmp
directory is used.
.IP \fK(Print_FIGURE_to_Batch)\fR
Clicking this button or pressing the key
.B <meta-B>
appends the figure (in PostScript form) to a batch file.
To send the batch file to your printer, click the button
.Kr Print_to_Printer .
.IP \fK(Clear_Batch)\fR
Clicking this button or pressing the key
.B <meta-X>
erase the accumulated figures from the batch file.
.SH "Indicator Panel Commands"
The indicator panel contains buttons that set such drawing parameters
as line thickness, canvas grid, and angle of rotation.
All of the buttons use the same mouse buttons for setting values:
.IP \(bu 0.3i
Clicking the left-mouse button on the indicator pops up a panel
into which you can either type a value (e.g., to set line thickness) or
click the mouse on any of several buttons (e.g., to select grid style or
font name).
For those values that expect a value, pressing \*(RT in the value
part of the window sets the new value and removes the menu.
.IP \(bu
Clicking the right-mouse button on an indicator either decrements its value
(e.g., for line thickness)
or cycles through the options in one direction (e.g., font names),
whereas pressing the right-mouse button increments the value or cycle
through the options in the other direction.
.PP
The following describes the indicates on this panel:
.IP \fK(ZOOM_SCALE)\fR
This button changes the canvas's zoom scale.
The zoom scale is displayed within the zoom button.
It also scales the ruler, grid, and line width.
Pressing the center-mouse button decreases the zoom factor by 1.0 unless it
already is less than 1.0, in which case it reduces it to the nearest 0.25.
Pressing the right-mouse button increases the zoom factor by 1.0 unless it
already is less than 1.0, in which case it increases it to the nearest 0.25.
Pressing the
.B <ctrl>
key and the left-mouse button together set the zoom scale to 1.0.
.IP
You can also zoom the figure by defining a zoom rectangle.
To do so, press the
.B <ctrl>
key and the left-mouse button together.
This define one corner of the zoom rectangle.
Move the mouse, then again click the left-mouse button to
define the opposite corner of the zoom rectangle.
.IP \fK(GRID_MODE)\fR
With this button, you can select no grid, a 0.25-inch grid
(a 5-mm grid in metric mode), or a 0.5-inch inch (10-mm) grid.
.IP \fK(POINT_POSITION)\fR
This button controls the coarseness of object placement on the canvas.
The options are exact (or pixel) placement, a 1/16-inch placement
(2-mm in metric mode), 0.25-inch (5-mm) placement,
or 0.5-inch (10-mm) placement.
This lets you easily place objects into horizontal or vertical alignment.
.IP
This button also restricts the objects that the mouse can ``pick up''
while you are editing the figure.
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,
.B xfig
temporarily displays a black square above the mouse cursor.
It also displays this square any time you try to pick a nonexistent object.
.IP \fK(ROTATION_ANGLE)\fR
This button changes the rotation angle for rotating objects.
Note that not all objects can be rotated, and certain objects
can only be rotated by certain angles.
Clicking the center-mouse button decreases the angle in steps of 15\(de,
whereas clicking the right-mouse button increases the angle the same amount.
To select other angles, click the right-mouse button and
type the angle into the menu.
.IP \fK(DEPTH)\fR
This button changes the depth that
.B xfig
assigns to new objects.
.IP \fK(NUMBER_OF_POLYGON_SIDES)\fR
This button sets the number of sides used in creating a regular polygon.
.IP \fK(SMART-LINKS_MODE)\fR
This button controls the smart-links mode.
When turned on, lines that link box-like objects together
(henceforth called ``links'') are treated specially
when one of the box-like objects is moved.
When set to
.B MOVE
mode,
when you move a box,
.B xfig
moves the end point of the link that touches (or is very near)
the perimeter of the box being moved,
so that the box and the end point remain linked.
When set to
.B SLIDE
mode,
.B xfig
slides the end segment of the link 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.
.IP
Note that at present, this mode works only for the
.B MOVE
and
.B COPY
functions, and only works for
.B POLYLINE
links and box-like objects.
Also, if both ends of a link touch the box being manipulated,
.B xfig
adjusts only one end of the link.
.IP \fK(VERTICAL_ALIGN)\fR
This sets the vertical-alignment mode for the
.K ALIGN
button in the editing-mode panel.
The choices are no vertical alignment, align to top edge,
align to center, or align to bottom edge.
.B xfig
uses the indicator settings
.B "HORIZONTAL ALIGN"
and
.B "VERTICAL ALIGN"
together to align objects inside a compound object or in the canvas window.
.IP \fK(HORIZONTAL_ALIGN)\fR
This sets the horizontal alignment mode for the
.K ALIGN
button in the editing-mode panel.
The choices are no horizontal alignment, align to left edge,
align to center, or align to right edge.
.B xfig
uses the indicator settings
.B "HORIZONTAL ALIGN"
and
.B "VERTICAL ALIGN"
together to align objects inside a compound object or in the canvas window.
.IP \fK(ANGLE_GEOMETRY)\fR
You can use this button to restrict the drawing angle for
.BR POLYLINES ,
.BR POLYGONS ,
and
.BR SPLINES .
The following settings are available:
.RS
.IP \fBUNRESTRICTED\fR
Allow lines to be drawn with any slope.
This is the default setting.
.IP "\fBLATEX LINE\fR"
Allow lines to be drawn only at slopes that can be handled by
LaTeX picture environment lines:
slope equals \fIx\fB/\fIy\fR, where \fIx,y\fR are integers
in the range [\-6,6].
.IP "\fBLATEX VECTOR\fR"
Allow lines to be drawn only at slopes that can be handled by LaTeX picture
environment vectors:
slope equals \fIx\fB/\fIy\fR, where \fIx,y\fR are integers in the range [\-4,4].
.IP \fBMANHATTAN-MOUNTAIN\fR
Allow lines to be drawn horizontally, vertically, or diagonally.
.IP \fBMANHATTAN\fR
Allow lines to be drawn only horizontally or vertically.
(The name
.B Manhattan
comes from the horizontal/vertical appearance of the Manhattan skyline.)
.IP \fBMOUNTAIN\fR
Allow lines to be drawn only diagonally
The name comes from the pointed shape of a mountain.
.RE
.IP \fK(FILL_STYLE)\fR
This button lets you select the area-fill darkness (gray scale)
for all objects except
.B TEXT
and
.BR "ENCAPSULATED POSTSCRIPT" ,
or to turn off area-fill.
.IP \fK(COLOR)\fR
With this button, you can select one of eight predefined colors
with which to draw; or tell
.B xfig
to use the default color, as set by the command-line option
.BR \-fg .
The eight colors are black, blue, green, cyan, red, magenta, yellow, and white.
Note that
.B TransFig versions 2.1.4 and later support color output for PostScript.
On monochrome screens,
.B xfig
creates the objects in the selected color but draws them on the screen
in black.
.IP \fK(LINE_WIDTH)\fR
This button lets you set the width of lines.
You can draw zero-width lines to enclose an area for filling,
without showing an outline.
.IP \fK(LINE_STYLE)\fR
The choices for line style are solid, dashed, and dotted.
Once created, you can edit a dashed or dotted line to change the length of
dashes or the spacing of dots.
You can use the pop-up menu to change the dash length and dot gap.
.IP \fK(BOX_CURVE)\fR
You can use this button to set the radius of the corners on
.B ARC-BOX
objects.
.IP \fK(ARROW_MODE)\fR
This button selects the auto-arrow mode for drawing lines.
The options are no arrowheads, backward-pointing arrowhead, forward-pointing
arrowhead, or both.
If one or both arrowhead modes are turned on, then
.B xfig
draws arrowheads when it draws
.BR POLYLINE ,
.BR SPLINE ,
or
.B ARC
objects.
.IP \fK(TEXT_JUSTIFICATION)\fR
You can set the justification of text to left, center, or right.
.IP \fK(TEXT_SIZE)\fR
This button alters the size of text.
The default is 12 points.
.IP \fK(TEXT_STEP)\fR
This button sets the amount of white space between lines of text.
Pressing \*(RT selects the number displayed, which is a multiple
of the font height.
The default is 1.2 \(em that is, 1.2 times the current font size.
.IP \fK(TEXT_FONT)\fR
This button allows lets you select from among 35 fonts; these are
those available on most Apple PostScript printers.
There are two buttons at the top of the menu:
.RS
.IP \fK(Cancel)\fR
This button removes the menu without changing the current font.
.IP \fK(Use_latex_fonts)\fR
This button switch the menu to the LaTeX font choices.
When the LaTeX font menu is displayed, this button switches to
one that lets you revert to the PostScript fonts.
.RE
.IP
.B xfig
displays the name of each font in the font itself, so that you can see
what that font looks like.
If a corresponding X11 font exists,
.B xfig
draws new text on the canvas window in that font,
using the size of X11 font closest to that you selected.
If the X11 font does not exist,
.B xfig
uses the font selected by the
.B \-normal
option.
To abort selection of a font, click the left-mouse button on
.BR cancel .
.IP "\fK(TEXT_FLAGS)\fR
This button displays the current setting of the text flags.
You may use the center- or right-mouse buttons to step back and forth
through the three flag settings:
.BR Hidden ,
.BR Rigid ,
and
.BR Special .
To change any of the flags, you must use left-mouse button
to pop up a menu from which you can change any or all of the flags.
.IP
The
.B Hidden
and
.B Special
attributes of text objects are used with figures
that will be incorporated into LaTeX.
.\"Please see the documentation for LaTeX for further information.
The default for the
.B Hidden
flag is
.B off .
The default for the
.B Special
flag is
.BR off ,
unless you start
.B xfig
with the command-line parameter
.B \-specialtext
(resource
.BR specialtext ).
.IP
The
.B Rigid
attribute forces text to remain the same size even if it is
inside a compound object that you scale up or down.
The default is
.BR off .
.SH "Drawing and Editing Modes"
Icons in the drawing- and editing-mode windows represent
object manipulation functions, modes, and other drawing or modification aids.
To select a manipulation function, position the mouse cursor over its icon
and click the left-mouse button.
.PP
.B xfig
highlights the selected icon and 
displays in the message window a message that describes its function.
The highlighting remains on until you select another function.
.SH "Drawing-Mode Functions"
The drawing-mode panel contains buttons with which you can create various
.B xfig
objects.
To create an object, select the drawing mode for the type of object you
want.
Then move the mouse to the point on the canvas
where you want the object to go and click the left-mouse button;
if the object has more than one point (e.g., a line or a polygon),
move the mouse cursor to where you want the other endpoint (or endpoints)
to go and again click the left-mouse button.
If the object has an indefinite number of points,
click the center-mouse button to finish the object.
.PP
To create a single point using the
.B POLYLINE
button, press and release the center-mouse button.
For the
.B ARC
object, which requires exactly three points,
use the left-mouse button for all three points.
.PP
You can click the right-mouse button at any time to cancel creation
of the object.
.IP \fK(ARC)\fR
Create an arc.
Click the left-mouse button on three points:
the first and last mark the arc's endpoints, and the second marks
any point on the arc.
.B xfig
computes the curve of the arc from these three points.
.IP \fK(BOX)\fR
Create a rectangular box.
Click the left-mouse button on two points:
the first marks a corner of the box,
and the second marks its diagonally opposite corner.
.IP \fK(ARC-BOX)\fR
Create a rectangular box with rounded corners.
It is defined in the same way as as a
.B BOX
object.
Use the button
.K BOX_CURVE
to select the radius of the box's corners.
.IP \fK(CIRCLE)\fR
Create a circle by specifying its radius.
Click the left-mouse button on the center of the circle, then move the mouse
for the length of the radius that you want.
Again click the left-mouse button to finish the circle.
.IP \fK(ELLIPSE)\fR
Create an ellipse.
To draw an ellipse, use the same procedure that you use to draw a circle.
.IP \fK(ENCAPSULATED_POSTSCRIPT_OBJECT)\fR
This lets you drop an encapsulated PostScript object into the figure you
are drawing.
To place the object in the figure,
click the left-mouse button on any corner of the area to be occupied by
the object, then click the left-mouse button again on the
diagonally opposite corner.
.B xfig
then displays its
.B EDIT
panel, and you can type the name of the file that holds the
PostScript object.
After you click the buttons
.B DONE
or
.BR APPLY ,
.B xfig
displays the bitmapped part of the object within the box you just created.
If no encapsulated PostScript file is available yet,
if you enter no name into the
.B EDIT
panel, or if the PostScript object contains no preview bitmap, pressing
.B DONE
removes the edit panel and the word
.B <empty>
or the name of the file that holds the EPS object
remains in the EPS box.
Later, when you find the name of the EPS file or the file becomes available,
you can use the edit panel to re-read the EPS file;
.B xedit
will replace the name in the box with the bitmap part of the EPS file.
.IP
If you want the original size of the EPS object, press the button labelled
.BR "Use orig size" ;
.B xfig
enlarges or shrinks the EPS bitmap to the size specified
in the preview bitmap of the EPS file.
If you want the EPS object to be approximately the size of
the rectangle specified with the mouse, but want the aspect ratio
to be same as the original, press either the button labelled
.B "Shrink to orig"
or the one labelled
.BR "Enlarge to orig" .
You must then press the
.B APPLY
button to see these effects.
.IP
If the EPS file has no preview bitmap but has a
.B %%BoundingBox
comment, and you have compiled
.B xfig
with the flag
.BR \-DGSBIT ,
and you have
.B ghostscript
version 2.4 or newer, then
.B xfig
calls
.B ghostscript
to produce a preview bitmap on the screen.
(\fBghostscript\fR is available from
.BR prep.ai.mit.edu .
It has been ported to \*(CO and is available from Mark
Williams Company or from public-domain Internet sites.)
.IP \fK(INTERPOLATED_SPLINE)\fR
Create spline objects.
Enter control vectors as you do to create a
.B POLYLINE
object.
You must enter
at least three points (two control vectors).
The spline passes through the points you enter.
.IP \fK(POLYLINE)\fR
Create a polyline \(em that is, a line segment that connects a sequence
of points.
Enter the points by clicking the left-mouse button
on their positions on the canvas window.
Click the right-mouse button to indicate that you are finish.
.IP \fK(POLYGON)\fR
This is the same as the
.B POLYLINE
object, except that
.B xfig
draws a line segment to connect the first and last points you enter.
.IP \fK(REGULAR_POLYGON)\fR
This draws a polygon.
To set the number of sides on the polygon, use the
.B "NUM SIDES"
button in the indicator panel.
Then click the left-mouse button on the center and drag the mouse
to the desired size.
To rotate the object as it is being created, moving the mouse up or down
relative to the starting point.
To finish, click the left-mouse button.
.IP \fK(CLOSED_INTERPOLATED_SPLINE)\fR
Create a closed or periodic spline.
The function resembles
.BR POLYGON ,
except that it draws a closed, interpolated spline.
The spline passes through the points (knots).
.IP \fK(CLOSED_SPLINE)\fR
Create a closed or periodic spline object.
The function resembles
.BR POLYGON ,
except that it draws a closed spline instead of polygon.
The entered points are just control points;
i.e., the spline does not pass any of these points.
.IP \fK(SPLINE)\fR
Create (quadratic spline) spline objects.
Enter control vectors in the same way as you would to creation a
.B POLYLINE
object.
You must enter at least three points (two control vectors).
The spline passes through only the two endpoints.
.IP \fK(TEXT)\fR
Create a text string.
Click the left-mouse button in
the canvas window at left end of where you want the text to go,
then type the text from the keyboard.
To paste text from the
.B PRIMARY
cut buffer, press function key 18,
or any key or button defined in the translation table for the
canvas window.
.IP
.B xfig
draws text
in the current font, font size, and justification settings.
To delete a character as you are typing the text, press
.B <del>
or
.BR <backspace> ;
to erase the entire line, type
.BR <meta-X> .
To finish, clicking the center-mouse button or press \*(RT.
If you press \*(RT,
.B xfig
automatically moves the text pointer to the next ``line,''
a distance of the font height times the value in the
.B "TEXT STEP"
button, and re-enters text-input mode.
To finish text fully, click the center-mouse button
or click any other panel button that changes the mode.
.IP
To edit text that is already in the object, move the mouse cursor to the
point on the string where you wish to edit, then click the left-mouse button.
.B xfig
displays the text cursor at that point, and you can insert or
delete characters.
Also, you can use the pop-up
.B EDIT
mode to modify the text.
.IP
To enter an eight-bit character, use the
.B <alt>
key.
For example, to create \o'A\XC8', press
.BR <alt-A> ,
then press " (quotation mark).
To create a \o'c\XCB', press
.B <alt-C>
followed by comma.
The following lists all special characters available using the
.B <alt>
key:
.ie t \{\
.nf
\n(pDu
.ta 1.5i
\fIKeys	Character\fR
\fB<alt-!>!\fR	Upside-down exclamation point: \XA1
\fB<alt-?>?\fR	Upside-down question mark: \XBF
\fB<alt-C>/\fR	Cent sign: \(ct
\fB<alt-L>\-\fR	British pound: \XA3
\fB<alt-O>X\fR	Currency
\fB<alt-Y>\-\fR	Yen: \XA5
\fB<alt-_>_\fR	Broken vertical bar: |
\fB<alt-S>O\fR	Section: \(sc
\fB<alt-">"\fR	Diaeresis: \XC8
\fB<alt-C>O\fR	Copyright: \(co
\fB<alt-R>O\fR	Registered trademark: \(rg
\fB<alt-_>a\fR	Ordfeminine
\fB<alt-_>o\fR	Ordmasculine
\fB<alt-<><\fR	Left guillemet: \XAB
\fB<alt->\^>>\fR	Right guillemet: \XBB
\fB<alt-\->\fR|	Notsign: !
\fB<alt-\->\-\fR	Hyphen
\fB<alt-+>\-\fR	Plusminus: \(+-
\fB<alt-^>\-\fR	Macron: \XC5
\fB<alt-^>*\fR	Degree: \(de
\fB<alt-^>.\fR	Periodcentered: \XB4
\fB<alt-^>1\fR	One, superior
\fB<alt-^>2\fR	Two, superior
\fB<alt-^>3\fR	Three, superior
\fB<alt-1>4\fR	One-quarter
\fB<alt-1>2\fR	One-half
\fB<alt-3>4\fR	Three-quarters
\fB<alt-\e>\e\fR	Acute: \(aa
\fB<alt-*>*\fR	Multiply: \(mu
\fB<alt-\->\fR:	Division: /
\fB<alt-/>u\fR	Mu: \(*m
\fB<alt-P>!\fR	Paragraph: \XB6
\fB<alt-A>`\fR	A accent grave: \o'A\(ga'
\fB<alt-A>'\fR	A accent acute: \o'A\(aa'
\fB<alt-A>^\fR	A accent circumflex
\fB<alt-A>~\fR	A accent tilde
\fB<alt-A>"\fR	A diaeresis: \o'A\XC8'
\fB<alt-A>*\fR	A ring: \o'A\(de'
\fB<alt-A>E\fR	A ligature E: \XE1
\fB<alt-a>`\fR	a accent grave: \o'a\(ga'
\fB<alt-a>'\fR	a accent acute: \o'a\(aa'
\fB<alt-a>^\fR	a accent circumflex: \o'a^'
\fB<alt-a>~\fR	a accent tilde: \o'a\XC4'
\fB<alt-a>"\fR	a diaeresis: \o'a\XC8'
\fB<alt-a>*\fR	a ring: \o'a\(de'
\fB<alt-a>e\fR	a ligature e: \XF1
\fB<alt-C>,\fR	C cedilla: \o'C\XCB'
\fB<alt-c>,\fR	c cedilla: \o'c\XCB'
\fB<alt-D>\-\fR	Eth
\fB<alt-d>\-\fR	eth
\fB<alt-E>`\fR	E accent grave
\fB<alt-E>'\fR	E accent acute
\fB<alt-E>^\fR	E accent circumflex
\fB<alt-E>"\fR	E diaeresis
\fB<alt-e>`\fR	e accent grave: \o'e\(ga'
\fB<alt-e>'\fR	e accent acute: \o'e\(aa'
\fB<alt-e>^\fR	e accent circumflex: \o'e^'
\fB<alt-e>"\fR	e dieresis: \o'e\XC8'
\fB<alt-I>`\fR	I accent grave
\fB<alt-I>'\fR	I accent acute
\fB<alt-I>^\fR	I accent circumflex
\fB<alt-I>"\fR	I accent diaeresis
\fB<alt-i>`\fR	i accent grave: \o'i\(ga'
\fB<alt-i>'\fR	i accent acute: \o'i\(aa'
\fB<alt-i>^\fR	i accent circumflex
\fB<alt-i>"\fR	i diaeresis: \o'i\XC8'
\fB<alt-N>~\fR	N tilde: \o'N\XC4'
\fB<alt-n>~\fR	n tilde: \o'n\XC4'
\fB<alt-O>`\fR	O accent grave
\fB<alt-O>'\fR	O accent acute
\fB<alt-O>^\fR	O accent circumflex
\fB<alt-O>~\fR	O accent tilde
\fB<alt-O>"\fR	O diaeresis
\fB<alt-O>/\fR	O slash: \XE9
\fB<alt-o>`\fR	o accent grave: \o'o\(ga'
\fB<alt-o>/\fR	o accent acute: \o'o\(aa'
\fB<alt-o>^\fR	o accent circumflex: \o'o^'
\fB<alt-o>~\fR	o accent tilde: \o'o\XC4'
\fB<alt-o>"\fR	o diaeresis: \o'o\XC8'
\fB<alt-o>/\fR	o slash: \XF9
\fB<alt-P>|\fR	Thorn
\fB<alt-p>|\fR	Thorn (lower case)
\fB<alt-s>s\fR	German ss (s-zed): \XFB
\fB<alt-U>`\fR	U accent grave
\fB<alt-U>'\fR	U accent acute
\fB<alt-U>^\fR	U accent circumflex
\fB<alt-U>"\fR	U diaeresis
\fB<alt-u>`\fR	u accent grave: \o'u\(ga'
\fB<alt-u>'\fR	u accent acute: \o'u\(aa'
\fB<alt-u>^\fR	u accent circumflex: \o'u^'
\fB<alt-u>"\fR	u diaeresis: \o'u\XC8'
\fB<alt-Y>'\fR	Y accent acute
\fB<alt-y>'\fR	y accent acute: \o'y\(aa'
\fB<alt-y>"\fR	y diaeresis: \o'y\XC8'
\}
.el \{
.nf
\n(pDu
.ta 1.5i
\fIKeys	Character\fR
\fB<alt-!>!\fR	Upside-down exclamation point
\fB<alt-?>?\fR	Upside-down question mark
\fB<alt-C>/\fR	Cent sign
\fB<alt-L>\-\fR	British pound
\fB<alt-O>X\fR	Currency
\fB<alt-Y>\-\fR	Yen
\fB<alt-_>_\fR	Broken vertical bar
\fB<alt-S>O\fR	Section
\fB<alt-">"\fR	Diaeresis
\fB<alt-C>O\fR	Copyright
\fB<alt-R>O\fR	Registered trademark
\fB<alt-_>a\fR	Ordfeminine
\fB<alt-_>o\fR	Ordmasculine
\fB<alt-<><\fR	Left guillemet
\fB<alt->\^>>\fR	Right guillemet
\fB<alt-\->\fR|	Notsign
\fB<alt-\->\-\fR	Hyphen
\fB<alt-+>\-\fR	Plusminus
\fB<alt-^>\-\fR	Macron
\fB<alt-^>*\fR	Degree
\fB<alt-^>.\fR	Periodcentered
\fB<alt-^>1\fR	One, superior
\fB<alt-^>2\fR	Two, superior
\fB<alt-^>3\fR	Three, superior
\fB<alt-1>4\fR	One-quarter
\fB<alt-1>2\fR	One-half
\fB<alt-3>4\fR	Three-quarters
\fB<alt-\e>\e\fR	Acute
\fB<alt-*>*\fR	Multiply
\fB<alt-\->\fR:	Division
\fB<alt-/>u\fR	Mu
\fB<alt-P>!\fR	Paragraph
\fB<alt-A>`\fR	A accent grave
\fB<alt-A>'\fR	A accent acute
\fB<alt-A>^\fR	A accent circumflex
\fB<alt-A>~\fR	A accent tilde
\fB<alt-A>"\fR	A diaeresis
\fB<alt-A>*\fR	A ring
\fB<alt-A>E\fR	A ligature E
\fB<alt-a>`\fR	a accent grave
\fB<alt-a>'\fR	a accent acute
\fB<alt-a>^\fR	a accent circumflex
\fB<alt-a>~\fR	a accent tilde
\fB<alt-a>"\fR	a diaeresis
\fB<alt-a>*\fR	a ring
\fB<alt-a>e\fR	a ligature e
\fB<alt-C>,\fR	C cedilla
\fB<alt-c>,\fR	c cedilla
\fB<alt-D>\-\fR	Eth
\fB<alt-d>\-\fR	eth
\fB<alt-E>`\fR	E accent grave
\fB<alt-E>'\fR	E accent acute
\fB<alt-E>^\fR	E accent circumflex
\fB<alt-E>"\fR	E diaeresis
\fB<alt-e>`\fR	e accent grave
\fB<alt-e>'\fR	e accent acute
\fB<alt-e>^\fR	e accent circumflex
\fB<alt-e>"\fR	e dieresis
\fB<alt-I>`\fR	I accent grave
\fB<alt-I>'\fR	I accent acute
\fB<alt-I>^\fR	I accent circumflex
\fB<alt-I>"\fR	I accent diaeresis
\fB<alt-i>`\fR	i accent grave
\fB<alt-i>'\fR	i accent acute
\fB<alt-i>^\fR	i accent circumflex
\fB<alt-i>"\fR	i diaeresis
\fB<alt-N>~\fR	N tilde
\fB<alt-n>~\fR	n tilde
\fB<alt-O>`\fR	O accent grave
\fB<alt-O>'\fR	O accent acute
\fB<alt-O>^\fR	O accent circumflex
\fB<alt-O>~\fR	O accent tilde
\fB<alt-O>"\fR	O diaeresis
\fB<alt-O>/\fR	O slash
\fB<alt-o>`\fR	o accent grave
\fB<alt-o>/\fR	o accent acute
\fB<alt-o>^\fR	o accent circumflex
\fB<alt-o>~\fR	o accent tilde
\fB<alt-o>"\fR	o diaeresis
\fB<alt-o>/\fR	o slash
\fB<alt-P>|\fR	Thorn
\fB<alt-p>|\fR	Thorn (lower case)
\fB<alt-s>s\fR	German ss (s-zed)
\fB<alt-U>`\fR	U accent grave
\fB<alt-U>'\fR	U accent acute
\fB<alt-U>^\fR	U accent circumflex
\fB<alt-U>"\fR	U diaeresis
\fB<alt-u>`\fR	u accent grave
\fB<alt-u>'\fR	u accent acute
\fB<alt-u>^\fR	u accent circumflex
\fB<alt-u>"\fR	u diaeresis
\fB<alt-Y>'\fR	Y accent acute
\fB<alt-y>'\fR	y accent acute
\fB<alt-y>"\fR	y diaeresis
\}
.SH "Editing-Mode Functions"
When you press a button in the editing-mode panel, any
objects that may be affected by that editing operation show their
corner markers.
Only those objects can be manipulated by that edit mode.
.PP
In cases where one button controls two edit modes, it
may be that the corner markers appear for objects that can be
affected by one button but not the other.
.PP
When multiple objects have points in common, e.g., two boxes that
touch at one corner, you can select only one object by clicking on that point.
To select other objects, press
.B <shift>
and click the left-mouse button:
the markers of one object will be
temporarily highlighted.
By repeatedly clicking the left-mouse button while
holding down
.BR <shift> ,
you can cycle through all candidates for selection at that point.
.PP
To perform the selected action, e.g.,
deleting one box, click on the point without holding down
.BR <shift> .
.B xfig
performs the operation on the highlighted object.
.PP
Please note that if
the mouse is not clicked closely enough to an object marker or, for whatever
reason,
.B xfig
cannot ``find'' the object you are trying to select,
.B xfig
temporarily displays a black square above the mouse cursor.
.PP
The following editing functions are available:
.IP \fK(GLUE_COMPOUND)\fR
Glue a number of individual objects into a compound object.
You must first tag the objects to be compounded,
then press the right-mouse button to group them.
.IP
To tag single objects, click the left-mouse button on them.
To tag a number of objects at once,
use the center-mouse button to define the upper-left and
lower-right corners of the region that encloses the objects.
Tagged objects are shown with highlighted markers.
.IP
.B xfig
temporarily unhighlights
tagged objects that you select, as described above.
There is no special command to tag or untag all of the objects
within a figure.
You can untag all of the objects by changing from
.B GLUE
mode to some other mode (apart from
.BR BREAK )
and back again.
.IP \fK(BREAK_COMPOUND)\fR
This breaks up a compound object, so you can manipulate its component parts.
To break up a compound object,
click the left-mouse button on one of the corner markers of the compound
object or along one of the imaginary lines that defining the compound box.
Clicking with the center-mouse button achieves the same effect,
but also tag the component parts (although you will not see the
tags until you change to the
.B GLUE
mode).
.IP \fK(SCALE_OBJECT)\fR
Scale an object.
Any object can be scaled.
If you press the left-mouse button on a
.B BOX
or
.B ARC-BOX
object,
.B xfig
scales that object proportionally to its aspect ratio.
If you press the center-mouse button on any object,
.B xfig
scales that object up or down about its center.
You can scale text
only if lies inside a compound object, and then only if
its
.B RIGID
flag is set to
.BR NORMAL .
.\"See the \fITransFig\fP manual for description of text options.
.IP \fK(ALIGN)\fR
Align objects.
Click the left-mouse button to align the objects within a compound object;
click the center-mouse button to align all objects on canvas according to the
setting in the
.B "VERTICAL ALIGN"
and
.B "HORIZONTAL ALIGN"
indicators.
The choices are the cumulative effect of vertically aligning the objects to the
.BR TOP,
.BR MIDDL E,
or
.BR BOTTO M
edge and horizontally aligning
to the
.BR LEF T,
.BR MIDDL E,
or
.BR RIGH T
edge of the compound.
.IP \fK(MOVE_POINT)\fR
Modify the position of a point of any object, except
.B TEXT
and
.B COMPOUND
objects.
.IP
For unrestrained movement, click the left-mouse button over the desired
point, reposition the point, and click the left-mouse button again.
.IP
For a horizontally or vertically constrained move, click the center-mouse
button on the desired point and move either horizontally or vertically.
Notice that once you choose the direction (horizontal or vertical), movement
is constrained to that direction.
If, after moving the mouse initially, you move it
in the other direction a greater distance than the current position
of the mouse relative to the starting point, then that becomes the new
constraint direction.
For example, if you first move the mouse
horizontally one inch, then move it vertically
two inches, the direction of constraint switches to
vertical until any horizontal motion exceeds two inches.
.IP
When you have positioned the object where you wish it to be,
again click the mouse button that you used to begin the move:
the left-mouse button for an unconstrained move,
or the center-mouse button for a constrained move.
.IP \fK(MOVE)\fR
Move an object.
Click a mouse button on any corner marker of the object to be moved:
the left-mouse button to begin an unconstrained move, or the
center-mouse button to begin a constrained move.
The constrained movement is just as described for
.BR MOVE POINT .
.IP \fK(ADD_POINTS)\fR
Add points to
.BR POLYLINE ,
.BR POLYGON ,
.BR SPLINE ,
or
.BR "CLOSED SPLINE"
objects.
You cannot add or delete points from a
.BR BOX .
Note that a
.B "REGULAR POLYGON"
is really an ordinary
.BR POLYGON ,
so adding points to this object is allowed and does
.I not
keep the polygon regular.
.IP \fK(COPY/CUT_TO_CUT_BUFFER)\fR
Duplicate an object within the canvas window, or copy it into the cut buffer.
.IP
To duplicate an object, click a mouse button on any corner marker:
the left-mouse button performs an unconstrained copy and the center-mouse
performs button a constrained copy.
You can also click on the circumference of a
.B CIRCLE
or
.B ELLIPSE
object.
.B xfig
duplicates the selected object; you can then move the duplicate object
just as with the
.B MOVE
function.
.IP
If you click the right-mouse button on an object,
.B xfig
copies it into the cut buffer.
You can then paste the object into this or another figure.
.IP
By default,
.B xfig
uses file
.BR $HOME/.xfig
as its cut buffer.
This lets you run two or more
.B xfig
processes and move objects between them.
If the environmental variable
.B HOME
is not defined,
.B xfig
creates and uses file
\fBxfig\fIPID\fR, where
.I PID
is
.BR xfig 's
process identifier.
This file is created in the directory named by the environmental variable
.BR XFIGTMPDIR .
If that variable is empty or is not set, then
.B xfig
uses
.BR /tmp .
.IP \fK(DELETE_POINTS)\fR
Delete one or more points from a
.BR POLYLINE ,
.BR POLYGON ,
.BR SPLINE ,
or
.BR "CLOSED SPLINE" .
Note that a
.B "REGULAR POLYGON"
is really an ordinary
.BR POLYGON ,
so deleting points from this object is allowed and does
.I not
keep the polygon regular.
.IP \fK(DELETE)\fR
To delete an object,
click the left-mouse button on it.
To delete a region of the canvas window, press the center-mouse button
and drag the mouse to define an area of objects to delete.
Clicking the right-mouse button on an object copies it
to the cut buffer, as described above for the function
.BR COPY .
.IP \fK(EDIT_OBJECT)\fR
Edit settings for an existing object.
Click the left-mouse button on the object and
.B xfig
displays a pop-up menu that shows existing settings for the object.
Some menu entries
are editable AsciiTextWidgets and allow cut and paste;
you can change some of the menu entries by typing new values into them.
Other entries pop up a sub-menu of multiple choices when pressed and held.
Yet others are buttons that toggle a setting on or off (e.g., arrowheads
on lines).
.IP
Click the
.B done
button to apply the changes to the object and finish.
Click the
.B apply
button to apply the changes but keep the menu up for
further changes.
Click the
.B cancel
button to cancel the changes and remove the menu.
.\".IP
.\"The following table shows which settings are used for the different objects.
.\".DS
.\".ta 1.5i 2.25i 3.0i 3.75i 4.5i 5.25i 6.0i 6.75i 7.5i
.\"			Area	Line	Line	Box			Radius	Text Font
.\"	Object	Angle	Fill	Width	Style	Curve	Depth\(dd	Color	Just./Size
.\"Arc	X	X	X		X	X
.\"Arc-Box	X	X	X	X	X	X
.\"Circle	X	X	X	X		X	X	X
.\"Ellipse	X	X	X	X		X	X	X
.\"EPS					X	X
.\"Box,Polygon,	X	X	X		X	X
.\"Line,Spline
.\"Text	X\(dg					X	X		X
.\".DE
.\".PP
.\"
.\"\(dg The angle may be set, but the object will only be rotated on
.\"\fIPostScript\fP output for angles other than 0, 90, 180 and 270 degrees.
.\"
.\"\(dd The depth defines how overlapping objects are displayed. Objects with
.\"a greater depth value are obstructed by objects with smaller depth value.
.\"The maximum depth allowed is 1000.
.\"
.IP \fK(UPDATE)\fR
When you press the left-mouse button on an object,
.B xfig
copies into that object the current settings for the indicator buttons
(line width, line style, area fill, etc.)
have been selected for updating.
When
.B xfig
starts, all indicator buttons that are components of objects
are selected for update.
To unselect an indicator, click on the update button
and then click the left-mouse button on the small button in the upper-right
corner of the indicator.
When an indicator is selected, the foreground color
(default, black) is seen.
When it is unselected, the background color (default, white) is seen.
.IP
If you click the center-mouse button on an object,
.B xfig
copies into the appropriate indicator buttons the settings within the object.
Thus, you can copy selected attributes of one object into another object.
.IP \fK(FLIP_VERTICALLY)\fR
This flip the object up or down, or copies the object and flips the copy.
To flip an object, click the left-mouse button on it.
To copy the object and flip the copy, click the center-mouse button
on the object.
In either case,
.B xfig
orients the flipped object around the point upon which you clicked it.
.IP \fK(FLIP_HORIZONTALLY)\fR
The same as
.B "FLIP VERTICALLY"
except that the object (or its copy) is flipped horizontally rather than
vertically.
.IP \fK(ROTATE_CLOCKWISE)\fR
Rotate the object (left-mouse button) or copy and rotate it
(center-mouse button)
.I \-N
degrees (clockwise), where
.I N
is the amount set in the rotation indicator button.
The object is rotated about the point where you clicked it.
.IP
Not all objects can be rotated, and not all can be rotated at arbitrary
angles.
For example,
.BR BOX ,
.BR ARC-BOX ,
and
.B EPS
objects may only be rotated by 90\(de.
Text objects may be rotated, although for angles other than 0, 90, 180,
and 270\(de only the markers are rotated on the screen
because of the limitations of the X11 Window System; however,
the text is rotated correctly on PostScript output.
.IP \fK(ROTATE_COUNTER-CLOCKWISE)\fR
Same as
.BR "ROTATE CLOCKWISE" ,
except that the direction of rotation is reversed.
.IP \fK(SPLINE_<->_POLYLINE)\fR
This function turns a
.B POLYGON
into a
.BR "CLOSED INTERPOLATED SPLINE" ,
or turns a
.B POLYLINE
into an
.BR "INTERPOLATED SPLINE" .
.IP \fK(ADD/DELETE_ARROWS)\fR
Add or delete arrowheads on
.BR ARC ,
.BR POLYLINE ,
or
.B SPLINE
objects.
To add an arrowhead, click the left-mouse button on the
endpoint of the object.
To delete an arrowhead, click the center-mouse button
on the endpoint or arrowhead.
You can use the pop-up edit panel to modify
the length and thickness of the arrowheads.
.SH "Panning"
To pan a figure (that is, shift the entire figure vertically or
horizontally), click any mouse button on a ruler.
.PP
To pan the figure to the left or right, use the top ruler.
Clicking the left-mouse button in the top ruler
pans the image to the left the by 0.5 inches (1 cm in metric mode),
adjusted for zoom factor.
Clicking the right-mouse button in the top ruler
pans the image to the right by the same amount.
To pan the image by an indefinite amount, press the center-mouse button
on the top ruler and drag the mouse the amount you want.
.PP
To pan the figure up or down, use the vertical ruler rather than the
horizontal ruler.
To return the figure to its point of origin,
click the left-mouse button in the units (e.g., \fBcm\fR or \fBin\fR) box.
.PP
You can also use the arrow keys to pan the image and the
.B <Home>
key to return the figure to the origin.
Pressing the
.B <ctrl>
key and the center-mouse button pans the figure to its origin.
.SH "X Defaults"
The overall widget name(Class) is
.BR xfig(Fig) .
These resources correspond to the command line arguments:
.nf
.sp \n(pDu
.ta 1.5i 3.0i 3.75i 4.75i
\fI				Command-line
Name	Class	Type	Default	Equivalent\fR
.sp \n(pDu
boldFont	ButtonFont	string	8x13bold	\-bold
color0	Color0	pixel	black
color1	Color1	pixel	blue
color2	Color2	pixel	green
color3	Color3	pixel	cyan
color4	Color4	pixel	red
color5	Color5	pixel	magenta
color6	Color6	pixel	yellow
color7	Color7	pixel	white
debug	Debug	boolean	off	\-debug
exportLanguage	ExportLanguage	string	eps	\-exportLanguage
flushleft	FlushLeft	boolean	false	\-flushleft
inches	Inches	boolean	true	\-inches,\-imperial,
				\-centimeters,\-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
monochrome	Monochrome	boolean	false	\-monochrome
normalFont	NormalFont	string	fixed	\-normal
pwidth	Width	float	10(8)	\-pwidth
pheight	Height	float	8(9.5)	\-pheight
reverseVideo	ReverseVideo	boolean	off	\-inverse
scalablefonts	ScalableFonts	boolean	false	\-scalablefonts
showallbuttons	ShowAllButtons	boolean	false	\-showallbuttons
specialtext	SpecialText	boolean	false	\-specialtext
startfontsize	StartFontSize	float	12	\-startfontsize
startlatexFont	StartlatexFont	string	Default	\-startlatexFont
startpsFont	StartpsFont	string	Times-Roman	\-startpsFont
trackCursor	Track	boolean	on	\-track/\-notrack
textoutline	TextOutline	boolean	false	\-textoutline
userscale	UserScale	float	1.0	\-userscale
userunit	UserUnit	string	in(cm)	\-userunit
.PP
The following are the default keyboard accelerators as distributed
in the app-defaults file
.BR Fig.ad :
.DM
\fIMain xfig panels:\fP
<Meta>q	Quit xfig
<Meta>d	Delete all objects from canvas
<Meta>u	Undo
<Meta>r	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
.DE
.DM
\fIPopup file panel:\fP
<Meta>r	Rescan current directory
<Meta>c	Cancel
<Meta>l	Load figure
<Meta>s	Save figure
<Meta>m	Merge read into current figure
.DE
.DM
\fIPopup export panel:\fP
<Meta>r	Rescan current dirctory
<Meta>c	Cancel
<Meta>e	Export figure
.DE
.DM
\fIPopup print panel:\fP
<Meta>c	Cancel
<Meta>b	print to Batch file
<Meta>p	Print to printer
<Meta>x	clear batch file
.DE
.PP
If you have a color server, you should also use the file
.BR Fig-color.ad .
To do so, copy it into directory
.BR /usr/X11/lib/app-defaults .
The add the line
.DM
	#include "Fig-color"
.DE
.PP
to the beginning of
.BR Fig.ad ,
and comment out the line
.DM
	#include "Fig"
.DE
.PP
from the beginning of
.BR Fig-color.ad .
.SH "Widget Tree"
The following gives the widget structure of
.BR xfig .
The widget class name is given first, followed by the widget instance name.
.DM
Fig  xfig
	Form  form
		Form  commands
			Command  quit
			Command  delete_all
			Command  undo
			Command  redraw
			Command  paste
			Command  file
			Command  export
			Command  print
.DE
.DM
		Form msg_form
			Label  file_name
			Text  message
.DE
.DM
		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)
.DE
.DM
		Label  topruler
		Label  canvas
		Label  unitbox
		Label  sideruler
.DE
.DM
		Viewport ind_viewport
			Core  clip
			Scrollbar  horizontal
			Box  ind_panel
				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)
.DE
.DM
		TransientShell  xfig_ps_font_menu
			Box  menu
				Form  buttons
					Command  cancel
					Command  use_latex_fonts
				Command  pane (one for each of the 35 Postscript font panes)
.DE
.DM
		TransientShell  xfig_latex_font_menu
			Box  menu
				Form  buttons
					Command  cancel
					Command  use_postscript_fonts
				Command  pane (one for each of the 6 LaTeX font panes)
.DE
.DM
	TransientShell  xfig_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
.DE
.DM
			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
.DE
.DM
			Viewport  dirvport
				Core  clip
				Scrollbar  vertical
				List  dir_list_panel
			Command  rescan
			Command  cancel
			Command  save
			Command  load
			Command  merge
.DE
.DM
	TransientShell  xfig_export_menu
		Form  export_panel
			Label  mag_label
			Text  magnification
			Label  orient_label
			MenuButton  orientation
				SimpleMenu  menu
					SmeBSB  Portrait
					SmeBSB  Landscape
.DE
.DM
			Label  just_label
			MenuButton  justify
				SimpleMenu  menu
					SmeBSB  Flush left
					SmeBSB  Centered
.DE
.DM
			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  Encapsulated Postscript
					SmeBSB  Postscript
					SmeBSB  Combined PS/LaTeX (PS part)
					SmeBSB  Combined PS/LaTeX (LaTeX part)
					SmeBSB  Textyl \especial commands
					SmeBSB  TPIC
					SmeBSB  PIC
					SmeBSB  X11 Bitmap
.DE
.DM
			Label  export_mode_label
			MenuButton  export_mode
				SimpleMenu  menu
					SmeBSB  Overwrite
					SmeBSB  Append
.DE
.DM
			Label  def_file_label
			Label  def_file_name
			Label  out_file_name
			Text  file
.DE
.DM
			Label  file_alt_label
			Viewport  vport
				Core  clip
				Scrollbar  vertical
				List  file_list_panel
.DE
.DM
			Label  mask_label
			Text  mask
			Label  dir_label
			Text  dir_name
			Label  dir_alt_label
			Command home
.DE
.DM
			Viewport  dirvport
				Core  clip
				Scrollbar  vertical
				List  dir_list_panel
			Command  rescan
			Command  cancel
			Command  export
.DE
.DM
	TransientShell  xfig_print_menu
		Form  print_panel
			Label  printer_image
			Label  mag_label
			Text  magnification
.DE
.DM
			Label  orient_label
			MenuButton  landscape
				SimpleMenu  menu
					SmeBSB  portrait
					SmeBSB  landscape
.DE
.DM
			Label  just_label
			MenuButton  justify
				SimpleMenu  menu
					SmeBSB  flush left
					SmeBSB  centered
			Label  print_label
			Text  printer
			Label  num_batch_lab
			Label  num_batch_val
			Command  dismiss
			Command  print_batch
			Command  clear_batch
			Command  print
.DE
.DM
	TransientShell  xfig_file_msg
		Form  file_msg_panel
			Text  file_msg_win
			Command  dismiss
.DE
.DM
	TransientShell  query_popup
		Form  query_form
			Label  message
			Command  yes
			Command  no
			Command  cancel
.DE
.DM
	TransientShell  xfig_set_unit_panel
		Form  form
			Label        Unit/Scale settings
			Label  Ruler Units  =
			MenuButton  Imperial (in)
				SimpleMenu  menu
					SmeBSB  Metric (cm)
					SmeBSB  Imperial (in)
.DE
.DM
			Label  Figure units =
			MenuButton  Ruler units
				SimpleMenu  menu
					SmeBSB  Ruler units
					SmeBSB  User defined
.DE
.DM
			Label  user_units
			Text        Unit/Scale settings
			Label  Figure scale =
			MenuButton  User defined
				SimpleMenu  menu
					SmeBSB  Unity
					SmeBSB  User defined
.DE
.DM
			Label  scale_factor
			Text  1.0
			Command  cancel
			Command  set
.DE
.PP
Note:
The following is a typical pop-up edit panel (in this case, for
.BR ARC-BOX ).
The panel will be different for other objects.
.DM
	TransientShell  xfig_edit_panel
		Form  form
			Label  POLYLINE:ArcBox
			Label  image
			Command  done
			Command  apply
			Command  cancel
			Label
			Label  Width =
			Text  Width =
			Label  Color =
			Text  Color =
			Label  Depth =
			Text  Depth =
.DE
.DM
			Label  Area fill =
			MenuButton  No fill
				SimpleMenu  menu
					SmeBSB  No fill
					SmeBSB  Filled
.DE
.DM
			Label  Fill density % =
			Text  Fill density % =
.DE
.DM
			Label  Line style =
			MenuButton  Solid Line
				SimpleMenu  menu
					SmeBSB  Solid Line
					SmeBSB  Dashed Line
					SmeBSB  Dotted Line
.DE
.DM
			Label  Dash length/Dot gap =
			Text  Dash length/Dot gap =
			Label  Top Left:
			Label  Top Left:
			Text  Top Left:
			Label  Top Left:
			Text  Top Left:
			Label  Bottom Right:
			Label  Bottom Right:
			Text  Bottom Right:
			Label  Bottom Right:
			Text  Bottom Right:
			Label  Radius =
			Text  Radius =
.DE
.SH Files
.BR CompKeyDB :
This is the data base of key sequences for composing eight-bit characters.
You must either install this file into directory
.BR $XFIGLIBDIR ,
or tell
.B xfig
where it is by using the command-line option
.B \-keyFile
or by setting X toolkit resource
.BR keyFile .
.PP
.BR Doc/FORMAT2.1 :
this file describes the format of the figure file.
.PP
.BR CHANGES :
This file describes bug fixes and new features.
.SH "See Also"
.B
fig2dev,
fig2ps2tex,
transfig,
X,
X applications
.R
.SH Notes
.II "Smith, Brian V."
Please send bug reports, fixes, requests for new features, and
other correspondance to
Brian V. Smith (bvsmith@lbl.gov).
.PP
Not all operations employ smart redrawing of objects which are altered
as a by product of the operation.
You may need to use
.B Redraw
in these cases.
.PP
You must compile
.B xfig
with the option
.B \-DOPENWIN
to make it handle OpenWindows scalable fonts correctly.
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, define
.B MAX_TOPRULER_WD
or
.B MAX_SIDERULER_HT
in the
.B DEFINES
line of the Imakefile.
For example,
to have a maximum top ruler width of 1,160 pixels, add
.DM
	\-DMAX_TOPRULER_WD=1160
.DE
.PP
to the
.B DEFINES
line of the Imakefile.
.PP
There is a bug in OpenWindows 2.0 which relates to pixmaps in widgets.
You must compile \fIxfig\fP with the \fB-DOPENWIN_BUG\fP option for
this problem.
.PP
If you pan the image or iconify and de-iconify
.B xfig
during the middle of an operation (e.g., while drawing a line),
the picture will be distorted.
To correct this, use the function
.B Redraw
after the operation is complete.
.PP
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.
.PP
.II "Fussell, Donald E."
Many thanks goes to Professor Donald E. Fussell who inspired the
creation of this tool.
Many people have contributed to
.BR xfig .
.II "Sutanthavibul, Supoj"
Its original author is Supoj Sutanthavibul of the University of Texas
at Austin.
For a full list of authors and their contributions, see file
.B CHANGES
in the source-code directory.
.PP
Original copyright \(co 1985 by Supoj Sutanthavibul.
Permission to use, copy, modify, distribute, and sell this software and its
documentation for any purpose is hereby granted without fee, provided that
the above copyright notice appear in all copies and that both that
copyright notice and this permission notice appear in supporting
documentation.
No representations are made about suitability of this
software for any purpose.
It is provided ``as is'' without express or
implied warranty.
