xfig

Go back to index

     NAME
          xfig - Facility for Interactive Generation of figures under
          X11

     SYNOPSIS
          xfig [-ri[ght]] [-le[ft]] [-L[andscape]] [-P[ortrait]] [-
          pw[idth] units] [-ph[eight] units] [-not[rack]] [-tr[ack]]
          [-inc[hes]] [-me[tric]] [-inv[erse]] [-de[bug]] [file] [-
          normal[Font] font] [-bold[Font] font]

     DESCRIPTION
          Xfig is a menu-driven tool that allows the user to draw and
          manipulate objects interactively in an X window. It runs
          under X version 11 and requires a three-button mouse.  File
          specifies the name of a file to be edited. The description
          of objects in the file will be read at the start of xfig.

          The output from xfig can be printed in several ways:

          Postscript - f2ps (xfig to postscript translator) is used to
          produce postscript from an xfig file.  This can be sent
          directly to a postscript printer or a file.

          Troff - f2p (xfig to pic(1) translator, also known by its
          previous name f2fp(1L)) is used to translate xfig files into
          pic(1) language.  The resulting output may then be processed
          in the same manner as any other pic file.  Note that area
          fill is not supported by f2p.

          Note: The f2p and f2ps translators will be eventually phased
          out because the TransFig package from Micah Beck is a more
          general purpose translator for more graphics languages.  The
          TransFig package can be used as a back-end processor to xfig
          to produce various types of output:

          LaTeX -     fig2dev -L latex translates xfig to LaTeX
                      picture environment commands which can be
                      processed along with other LaTeX commands.

          Postscript -
                      fig2dev -L ps produces a postscript output.

          Pic -       fig2dev -L pic produces a pic output.

          PiCTeX -    fig2dev -L pictex produces PiCTeX output.  This
                      contains macros that can be used with the PiCTeX
                      environment under TeX or LaTeX.

          Others -    fig2dev has options for these other languages:
                      box, epic, eepic, and eepicemu.

          The TransFig package is available from svax.cs.cornell.edu
          (directory /pub/fig) and from sun.soe.clarkson.edu
          (directory /pub/transfig) via anonymous ftp.  It is also
          available by mail from the Clarkson archive server.  To find
          out about using the server, send the one-line message "help"
          to archive-server@sun.soe.clarkson.edu.

     OPTIONS
          -ri  Change the position of the side panel window to the
               right of the canvas window (default: left).

          -le  Change the position of the side panel window to the
               left of the canvas window.

          -L   Make xfig come up in landscape mode (10" x 7.5").  This
               is the default.

          -P   Make xfig come up in portrait mode (7.5" x 10").

          -pw units
               Make xfig come up units wide (where units are either cm
               or in).

          -ph units
               Make xfig come up units high (where units are either cm
               or in).

          -tr  Turn on cursor (mouse) tracking arrows.

          -no  Turn off cursor (mouse) tracking arrows.

          -inc Make inches the unit of choice (default).

          -me  Make centimeters the unit of choice.

          -inv Use inverse video (white on black).

          -de  Turn on debugging mode.

          -normal font
               Cause the font used for questions to be font.  This
               font is also used on the canvas when the selected font
               is not available in an X11 font.

          -bold font
               Cause the font used for displaying messages to be font.

     GRAPHICAL OBJECTS
          The objects in xfig are divided into primitive objects and
          compound object. The primitive objects are: ARC, CIRCLE,
          CLOSED SPLINE, ELLIPSE, POLYLINE, POLYGON, SPLINE, and TEXT.
          A primitive can be moved, rotated, flipped, copied or
          erased.  The TEXT primitive cannot be rotated or flipped.  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, copied or
          erased.  An extra function that can be applied to a compound
          object is scaling, which is not available for primitive
          objects.

     DISPLAY WINDOWS
          Nine windows comprise the display area of xfig: the top
          ruler, the side ruler, two panel windows, the message
          window, three indicator windows showing current line
          thickness, area-fill gray color and rounded box corner
          radius, and the canvas window. The main panel window can be
          placed to the left or right of the the canvas window
          (default: left), and the second panel window is always below
          the message window.  It contains buttons for quick access to
          some of the pop-up menu commands.

     POP-UP MENU
          The pop-up menu appears when the right mouse button is
          pressed with the cursor positioned within the canvas window.
          Positioning the cursor over the desired menu entry and
          releasing the button selects a menu entry.

          There are a number of file accessing functions in the pop-up
          menu.  Most of the time when one of these functions is
          selected, the user will be asked for a file name.  If the
          specified file can be located and the access permission are
          granted, xfig will carry out the function.  However in case
          things go wrong, xfig will abort the function and printed
          the causes on the message window.  Most of the functions in
          the pop-up menu can be directly access with the lower button
          panel.

          Quit Exit from xfig, discarding the figure. The user will be
               asked to confirm the action, by clicking the left
               button.

          Undo Undo the last object creation or modification.

          Redisplay
               Redraw the canvas.

          Remove all
               Remove all objects on the canvas window (can be
               undone).

          Cut  Select object to copy into the cut/paste file.  This
               file is called .xfig in the user's $HOME directory.
               This allows a user to run two or more xfig processes
               and cut/paste objects between them.  If there is no
               $HOME, a file is created in /tmp, called xfigPID where
               PID is the xfig process ID.

          Paste
               Paste the object previously copied into the cut/paste
               file into the current figure.

          Edit file ...
               The current contents of the canvas are cleared and the
               figure is read from the specified file.  The user will
               be asked for a file name.  This file will become the
               current file.

          Save Save the current contents of the canvas in the current
               file.  If no file is being edited, the user will be
               asked for a file name as in the "Save in ..." function.

          Read file ...
               Read figure from the specified file and merge it with
               the figure already shown on the canvas.  (The user will
               be asked for a file name.)

          Save in ...
               Save the figure on the screen into a file specified by
               the user.  (The user will be asked for a file name.)
               If there is no current file name, it will be set to the
               name specified in the save.

          Status
               Show the name of the current file and directory.

          Change Directory
               Change the working directory.  Any file name without a
               full path name will employ the current working
               directory.

          Print Working Directory
               Show the current working directory.

          Save & Quit
               Save the figure in the current file and exit from xfig.
               If there is no current file, the user will be asked for
               a file name.  No confirmation will be asked.

          Save as Bitmap
               Create an X11 bitmap from the figure the size of which
               is determined by the enclosing rectangle of all the
               figure plus a small border.

     BOTTOM PANEL COMMAND FUNCTIONS
          Most of the buttons in the bottom panel are counterparts to
          the pop-up menu functions.  However, there are additional
          buttons for selecting font, font size, text line step, print
          orientation (landscape or portrait) and the printer device
          itself.

     BOTTOM PANEL WINDOW COMMAND DESCRIPTIONS
          FONT SELECT
               This button pops up a menu of 35 fonts available for
               most Apple Postscript printers.  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 on
               the title of the menu.

          FONT SIZE
               The left button decreases the point size of font used
               on the canvas and printer.  The right button increases
               the point size.

          FONT STEP
               The left button decreases the interline spacing of text
               and the right button increases the step.  The number
               displayed give the multiple of the font height that
               will be placed between lines on hitting return.

          LANDSCAPE/PORTRAIT
               Select landscape or portrait mode of printing.  The
               default setting is that of the xfig canvas.

          PRINTER SELECT
               Toggle through a list of printers available for
               printing the figure. At present this list must be
               compiled into xfig.

          TEXT JUSTIFICATION
               Clicking this button cycles through selection of left,
               center and right justification of text.

     SIDE PANEL WINDOW MANIPULATION FUNCTIONS
          Icons in the side panel window represent object manipulation
          functions, modes and other drawing or modification aids.
          Manipulation functions are selected by positioning the
          cursor over it and clicking the left mouse button.  The
          selected icon is highlighted, and a message describing its
          function appears in the message window.

          The left and middle buttons are used to create and modify
          objects in the canvas window.  Most actions start with
          clicking of the left button and end with clicking of the
          middle button.  There is no need to hold down a button while
          positioning the cursor.

     SIDE PANEL WINDOW COMMAND DESCRIPTIONS
          Entries in the side panel window can be classified into two
          categories:  object creation/modification/removal commands
          (only one of which may be active at any one time), and
          drawing aids (which act as toggle switches or settings).
          There are two ways for drawing circles, two for ellipses,
          two for splines and two for closed splines.  There are two
          basic splines.  One is the interpolated spline in which the
          spline pass thorough the entered points (knots).  The other
          is the normal spline in which on control points are passed
          by the spline (except for the two end points in the open
          spline).

     OBJECT CREATION/MODIFICATION/REMOVAL
          Multiple commands are grouped thematically in the following
          descriptions (which is listed alphabetically).

          AREA-FILL ON/OFF
               Turn on or off area-fill mode.  This will affect any
               arcs, boxes, polygons, circles, closed splines or
               ellipses created subsequently.

          ADD/DELETE ARROWS
               Add or delete arrow heads for POLYLINE, POLYGON, SPLINE
               or CLOSED SPLINE objects (points of a BOX can not be
               added or deleted).

          ADD/DELETE POINTS
               Add or delete points for POLYLINE, POLYGON, SPLINE or
               CLOSED SPLINE objects (points of a BOX can not be added
               or deleted).

          ARC  Create an arc.  Specify three points using the left
               button.

          BOX  Create rectangular boxes.  Start with the left button
               and terminate with the middle button.

          ROUNDED-CORNER BOX
               Create rectangular boxes with rounded corners.  Start
               with the left button and terminate with the middle
               button. The radius of the corners is selected by the
               INCREASE/DECREASE RADIUS button.

          BREAK COMPOUND
               Break a compound object to allow manipulation of its
               component parts.  Click the left button on the bounding
               box of the compound object.

          CHANGE OBJECT
               Change settings for an existing object.  Click the left
               button on the object and a pop-up menu will appear
               showing existing settings for the object.  Some of the
               menu entries may be changed by typing new values in the
               appropriate windows. These allow cut and paste.  Others
               pop up a sub-menu of multiple choices when pressed and
               held.  Press the "done" button to apply the changes to
               the object and finish.  Press the "apply" button to
               apply the changes but keep the menu up for further
               changes.  Press the "cancel" button to cancel the
               changes and pop down the menu.

          CIRCLE
               Create circles by specifying their radii or diameters.
               Click the left button on the canvas window, move the
               cursor until the desired radius or diameter is reached,
               then click the middle button to terminate. The circle
               will be drawn after the pressing of the middle button.

          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.

          COPY Copy object.  Click the left button over part of the
               object to be copied (for CIRCLE and ELLIPSE objects,
               position on their circumferences).  Drag the object to
               the desired position and click the middle button.  This
               function as well as the following three functions
               (MOVE, MOVE POINT, REMOVE) will cause point markers
               (manipulation aids) to be shown on the canvas window.
               There are no markers for CIRCLE or ELLIPSE objects.

          DARKEN/LIGHTEN AREA-FILL COLOR
               The left button lightens the area-fill color (black to
               white through 20 gray levels).  The right button
               darkens it.  The (approximate) current area fill color
               is shown in the right-most indicator window.

          ELLIPSE
               Create ellipses using the same procedure as for the
               drawing of circles.

          FLIP Invert the object (middle button) or produce a mirror-
               image copy of an object (left button). Point to part of
               the object ("the handle"), click the appropriate
               button.

          GLUE Glue the objects within a bounding box into a compound
               object (the bounding box itself is not part of the
               figure; it is a visual aid for manipulating the
               compound).

          INCREASE/DECREASE LINE THICKNESS
               The left button decreases the line thickness by one
               pixel, the right button increases it by one pixel.  The
               current line thickness is shown in the left-most
               indicator window.

          INCREASE/DECREASE RADIUS OF ROUNDED BOX CORNERS
               The left button decreases the radius used in the
               corners of rounded boxes, the right button increases
               it. The current radius is shown in the middle indicator
               window.

          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.

          MOVE Move objects in the same way as in COPY.

          MOVE POINT
               Modify the position of points of POLYLINE, BOX,
               POLYGON, ELLIPSE, ARC and SPLINE objects.  Click the
               left button over the desired point, reposition the
               point, and click the middle button.  Note that BOX,
               ROUNDED-CORNER BOX and POLYGON objects are internally
               stored as POLYLINE objects, and therefore moving
               certain points may open these objects.

          POLYGON
               Same as POLYLINE except that a line segment is drawn
               connecting the first and last points entered.

          POLYLINE
               Create polylines (line segments connecting a sequence
               of points).  Enter points by clicking the left button
               at the desired positions on the canvas window.  Click
               the middle button to terminate.

          REMOVE
               Remove (or delete) objects.

          ROTATE
               Rotate the object (middle button) or copy (left button)
               +90 degrees.

          SCALE COMPOUND
               Only compound objects can be scaled.  Click the left
               button on a corner of the bounding box, stretch the
               bounding box to the desired size, and click the middle
               button.  Or click the left button on a side of the
               bounding box, stretch that side to the desired size,
               and click the middle button.

          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 pass only
               the two end points.

          TEXT Create text strings. Click the left button at the
               desired position on the canvas window, then enter text
               from the keyboard.  Text is drawn using the current
               font, font size and justification settings.  A DEL or
               ^H (backspace) will delete a character, while a ^U will
               kill the entire line.  Terminate by clicking the middle
               button or typing the return key. If return is used, the
               text pointer automatically moves to the next "line", a
               distance of the font height times the value in the TEXT
               STEP button, and text input mode is re-entered.  To
               terminate text fully, click the middle button or choose
               any panel button that changes modes (e.g. box, save,
               etc).  To edit text, click on an existing text string
               with the left button.  Insertion of characters will
               take place at that point.  Or, use the popup change
               object button to modify the text.

          TURN Turn POLYGON into a CLOSED INTERPOLATED SPLINE object,
               or turn POLYLINE into a INTERPOLATED SPLINE object.

     DRAWING AIDS
          Drawing aids act as toggle switches. More than one can be
          selected at a time (except for GRID and the line drawing
          modes).

          AUTO FORWARD/BACKWARD ARROW
               Automatically add forward/backward arrow heads to
               POLYLINE, SPLINE or ARC objects.

          MAGNET
               Round points to the nearest 1/16 of an inch.  This
               affects every function, and is provided as an alignment
               aid.

          UNRESTRICTED
               Allow lines to be drawn with any slope.

          LATEX LINE
               Allow lines to be drawn only at slopes which can be
               handled by LaTeX picture environment lines: slope =
               x/y, where x,y are integers in the range [-6,6].

          LATEX VECTOR
               Allow lines to be drawn only at slopes which can be
               handled by LaTeX picture environment vectors: slope =
               x/y, where x,y are integers in the range [-4,4].

          MANHATTAN
               Enforce drawing of lines in the horizontal and vertical
               direction only.  Both MANHATTAN and MOUNTAIN can be
               turned on simultaneously. The creations of POLYGON,
               POLYLINE and SPLINE objects are affected by these two
               modes.

          MOUNTAIN
               Enforce drawing of only diagonal lines.  Both MANHATTAN
               and MOUNTAIN can be turned on simultaneously. The
               creations of POLYGON, POLYLINE and SPLINE objects are
               affected by these two modes.

          MANHATTAN MOUNTAIN
               Allow lines to be drawn at any slope allowed when in
               MOUNTAIN or MANHATTAN modes.

          GRID Display either the quarter- or half-inch grids (left
               button).

          SOLID/DASHED/DOTTED LINE STYLE
               Toggle between solid, dashed and dotted line styles.
               The dash length is fixed at 0.05 inch.

     X DEFAULTS
          The overall widget name(Class) is
          xfig.fig(Fig.TopLevelShell).  This set of resources
          correspond to the command line arguments:

          justify     (boolean:false) -right (true) and -left (false)
                      arguments

          landscape   (boolean:true) -Landscape and -Portrait
                      arguments

          pwidth      (integer:7.5 or 10 inches) -pwidth argument

          pheight     (integer:10 or 7.5 inches) -pheight argument

          trackCursor (boolean:on) -track and -notrack arguments

          inches      (boolean:true) -inches and -metric arguments

          reverseVideo(boolean:off) -inverse argument

          debug       (boolean:off) -debug argument

          normalFont  (string:fixed) -normal argument

          boldFont    (string:8x13bold) -bold argument

          These arguments correspond to the widgets which make up
          xfig.

          overall window form(Form)

          side panel     form.side_panel(Form.Box)

          bottom panel   form.bottom_panel(Form.Box)

          buttons        form.side_panel.button(Form.Box.Command)
                         form.bottom_panel.button(Form.Box.Command)

          top ruler      form.truler(Form.Label)

          side ruler     form.sruler(Form.Label)

          canvas         form.canvas(Form.Label)

          message window form.message(Form.Command)

          command menu   form.popup_menu.menu(Form.OverrideShell.Box)

          command menu title
                         form.popup_menu.menu.title(Form.OverrideShell.Box.Label)

          command menu items
                         form.popup_menu.menu.pane(Form.OverrideShell.Box.Command)

          font menu      form.font_menu.menu(Form.OverrideShell.Box)

          change menu    change.form(TransientShell.Form)

          indicator panel
                         form.indicator(Form.Box)

          font indicator window
                         form.font_indicator(Form.Label)

          For example, to set the background of the side panel to blue
          and the indicator panel background to green the resources
          would be:
          xfig*form.panel.background: blue
          xfig*form.indicator.background: blue

     BUGS
          Creating a text object is not "Undoable".

          Area fill doesn't show on the canvas for closed splines, but
          are filled when printed.  This has to do with the way the
          splines are generated on the screen.

          Undoing the creation of a compound object deletes the
          objects outside the compound object.  Undoing the undo
          doesn't bring them back.

          Undoing a move-point of a box or arc-box will corrupt the
          object.

          Ellipses which are too narrow are not drawn correctly.

     SEE ALSO
          Brian W. Kernighan PIC - A Graphics Language for Typesetting
          User Manual
          f2ps(1) f2p(1)

     ACKNOWLEDGEMENT
          Many thanks goes to Professor Donald E. Fussell who inspired
          the creation of this tool.

     AUTHORS
          Original author:
          Supoj Sutanthavibul
          University of Texas at Austin
          (supoj@sally.utexas.edu)

          Manual page modified by:
          R. P. C. Rodgers
          UCSF School of Pharmacy
          San Francisco, CA 94118

          The LaTeX line drawing modes were contributed by:
          Frank Schmuck
          Cornell University

          X11 port by:
          Ken Yap
          Rochester
          (ken@cs.rochester.edu)

          Variable window sizes, cleanup of X11 port, right hand side
          panel under X11, X11 manual page provided by:
          Dana Chee
          Bellcore
          (dana@bellcore.com)

          Cleanup of color port to X11 by:
          John T. Kohl
          MIT
          (jtkohl@athena.mit.edu)

          Area fill, multiple line thicknesses, multiple fonts and
          font sizes, bottom panel, line style/thickness modification
          of objects by:

          Brian V. Smith
          Lawrence Berkeley Laboratory
          (standard disclaimer applies)
          (bvsmith@lbl.gov)

          Popup change-object menu by:
          Jon Tombs (jon%robots.oxford.ac.uk@nsfnet-relay.ac.uk)
          and
          Frank Schmuck
          (schmuck@svax.cs.cornell.edu)