


         XFIG(1)                                                   XFIG(1)


         NNAAMMEE
                xfig  -  Facility  for  Interactive  Generation of figures
                under X11

         SSYYNNOOPPSSIISS
                xxffiigg [_o_p_t_i_o_n_s] [_f_i_l_e]

         DDEESSCCRRIIPPTTIIOONN
                _X_f_i_g is a menu-driven tool that allows the  user  to  draw
                and  manipulate  objects interactively in an X window.  IItt
                rruunnss uunnddeerr XX vveerrssiioonn 1111 rreelleeaassee 44 oorr hhiigghheerr and requires a
                three-button  mouse.  _f_i_l_e specifies the name of a file to
                be edited. The description of objects in the file will  be
                read at the start of _x_f_i_g.

                The  _T_r_a_n_s_F_i_g  package  is  used  to print the output from
                _x_f_i_g.

                Note for previous _x_f_i_g users:

                The _f_2_p and _f_2_p_s translators have been phased out  because
                the  _T_r_a_n_s_F_i_g  package  from  Micah Beck is a more general
                purpose  translator  for  more  graphics  languages.   The
                _T_r_a_n_s_F_i_g  package  can  be used as a back-end processor to
                xfig to produce various types of output:

                LaTeX -     _f_i_g_2_d_e_v _-_L _l_a_t_e_x translates _x_f_i_g to _L_a_T_e_X pic-
                            ture  environment  commands  which can be pro-
                            cessed along with other _L_a_T_e_X commands.

                Postscript -
                            _f_i_g_2_d_e_v _-_L _p_s produces a postscript output.

                Pic -       _f_i_g_2_d_e_v _-_L _p_i_c produces a pic output.

                PiCTeX -    _f_i_g_2_d_e_v  _-_L  _p_i_c_t_e_x  produces  _P_i_C_T_e_X  output.
                            This contains macros that can be used with the
                            _P_i_C_T_e_X environment under _T_e_X or _L_a_T_e_X_.

                Others -    _f_i_g_2_d_e_v has options for these other languages:
                            _b_o_x, _e_p_i_c, _e_e_p_i_c, and _e_e_p_i_c_e_m_u.

                The  _T_r_a_n_s_F_i_g  package  is  available from the contributed
                software on the distribution tapes of X11 Release  5  from
                MIT  and  from ftp.cs.cornell.edu (directory /pub/fig) and
                sun.soe.clarkson.edu (directory /pub/transfig) via  anony-
                mous  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.

         OOPPTTIIOONNSS
                --rrii[[gghhtt]]
                       Change the position of the side panel window to the



                             Release 2.1 (Protocol 2.1)                  1





         XFIG(1)                                                   XFIG(1)


                       right of the canvas window (default: left).

                --llee[[fftt]]
                       Change the position of the side panel window to the
                       left of the canvas window.

                --LL[[aannddssccaappee]]
                       Make _x_f_i_g come up in landscape  mode  (10"  x  8").
                       This is the default.

                --PP[[oorrttrraaiitt]]
                       Make _x_f_i_g come up in portrait mode (8" x 9").

                --ppww[[iiddtthh]] _u_n_i_t_s
                       Make  _x_f_i_g  come  up  _u_n_i_t_s  wide  (where units are
                       either cm or in).

                --pphh[[eeiigghhtt]] _u_n_i_t_s
                       Make _x_f_i_g come  up  _u_n_i_t_s  high  (where  units  are
                       either cm or in).

                --ttrr[[aacckk]]
                       Turn on cursor (mouse) tracking arrows (default).

                --nnoott[[rraacckk]]
                       Turn off cursor (mouse) tracking arrows.

                --iinncc[[hheess]]
                       Make inches the unit of choice (default).

                --mmee[[ttrriicc]]
                       Make centimeters the unit of choice.

                --iinnvv[[vveerrssee]]
                       Use inverse video (white on black).

                --ddee[[bbuugg]]
                       Turn on debugging mode.

                --nnoorr[[mmaall]] _f_o_n_t
                       Cause the font used for the message panel and ruler
                       numbers to be _f_o_n_t.  This font is also used on  the
                       canvas  when  the selected font is not available in
                       an X11 font (default = fixed).

                --bbuu[[ttttoonn]] _f_o_n_t
                       Cause the font used for most  buttons  to  be  _f_o_n_t
                       (default = 6x13).

                --bbooll[[dd]] _f_o_n_t
                       Cause  the  font  used  for displaying confirmation
                       messages to be _f_o_n_t (default = 8x13bold).





                             Release 2.1 (Protocol 2.1)                  2





         XFIG(1)                                                   XFIG(1)


                --ssttaarrttff[[oonnttssiizzee]] _p_o_i_n_t_s_i_z_e
                       Set the default font size for text objects (default
                       = 12pt).

                --sshh[[oowwaallllbbuuttttoonnss]]
                       Show all the xfig indicator buttons instead of only
                       those relevant to the current drawing  mode.   Nor-
                       mally,  the  buttons  _l_i_n_e  _w_i_d_t_h,  _a_r_e_a_-_f_i_l_l, _g_r_i_d
                       _m_o_d_e, _t_e_x_t _s_i_z_e, etc. are only  visible  when  they
                       are  relevant  to  the  current  drawing mode.  The
                       --sshhoowwaallllbbuuttttoonnss option makes all of  the  indicator
                       buttons  visible  at all times.  This takes up more
                       screen real estate, but allows the user to see  all
                       settable parameters.

                --iinntteerrnnaallBBWW _w_i_d_t_h
                       Use  lines  of  width _w_i_d_t_h between all buttons and
                       panels (default = 1).

         GGRRAAPPHHIICCAALL OOBBJJEECCTTSS
                The objects in _x_f_i_g are divided into pprriimmiittiivvee oobbjjeeccttss and
                ccoommppoouunndd  oobbjjeeccttss. The primitive objects are: _A_R_C, _C_I_R_C_L_E,
                _C_L_O_S_E_D _S_P_L_I_N_E, _E_L_L_I_P_S_E,  _P_O_L_Y_L_I_N_E,  _P_O_L_Y_G_O_N,  _E_N_C_A_P_S_U_L_A_T_E_D
                _P_O_S_T_S_C_R_I_P_T, _B_O_X, _A_R_C_-_B_O_X, _S_P_L_I_N_E, and _T_E_X_T.

                A  primitive  object can be moved, rotated, flipped verti-
                cally or horizontally, scaled, copied,  aligned  within  a
                compound  object  or erased.  The TEXT primitive cannot be
                rotated (on-screen) or flipped.   The  attributes  of  any
                primitive  object  can be edited using a popup panel (dis-
                cussed below), so you can, for instance, set the  rotation
                angle for printed TEXT primitives.

                A  compound  object  is composed of primitive objects. The
                primitive objects that constitute a compound  can  not  be
                individually  modified,  but they can be manipulated as an
                entity; a compound can be moved, rotated,  flipped  verti-
                cally or horizontally, scaled, copied or erased.

                _R_e_g_u_l_a_r  polygons  may  be created using a special drawing
                mode, but a general _P_O_L_Y_G_O_N is created as a result,  which
                may then be modified, i.e.  the individual vertices may be
                moved if desired.

         DDIISSPPLLAAYY WWIINNDDOOWWSS
                Nine regions comprise the display area of _x_f_i_g:  the  com-
                mand  region,  top ruler, side ruler, drawing mode region,
                editing mode region, message region, indicator region with
                buttons  to  set  and  show  current  line thickness, line
                style, area-fill gray color and  several  other  settings,
                mouse  function  indicator region and canvas region.  (The
                mouse function indicator region was inspired  by  the  UPS
                debugger  from  the  University of Kent.)  The drawing and
                editing mode regions may be placed (together) to the  left



                             Release 2.1 (Protocol 2.1)                  3





         XFIG(1)                                                   XFIG(1)


                or right of the the canvas window (default: left).

         CCOOMMMMAANNDD PPAANNEELL FFUUNNCCTTIIOONNSS
                _Q_u_i_t   Exit  from _x_f_i_g, discarding the figure. If the fig-
                       ure has been modified and not saved, the user  will
                       be  asked  to  confirm  the action, by clicking the
                       _l_e_f_t button on a confirm/cancel popup menu.

                _D_e_l_e_t_e _A_L_L
                       Delete all objects from the canvas window  (may  be
                       undone).

                _U_n_d_o   Undo  the last object creation, deletion or modifi-
                       cation.

                _R_e_d_r_a_w Redraw the canvas.

                _P_a_s_t_e  Paste  the  object  previously  copied   into   the
                       cut/paste  file  into  the  current  figure (at its
                       original position).

                _F_i_l_e   Left mouse button pops up  a  menu  which  contains
                       several file-related functions:


                     _D_i_r_e_c_t_o_r_y
                            This  is an editable AsciiTextWidget which contains
                            the current directory.

                     _F_i_l_e   This is an editable AsciiTextWidget which  contains
                            the current filename.

                     _C_a_n_c_e_l This  pops  down  the file panel without making any
                            changes to the directory or file name.

                     _S_a_v_e   Save the current contents of the canvas in the file
                            specified  in  the  _F_i_l_e  menu  item.   If the file
                            already  exists  a  confirmation  popup  menu  will
                            appear  asking  the  user  to confirm or cancel the
                            save.

                     _L_o_a_d   The current contents of the canvas are cleared  and
                            the  figure  is read from the filename specified in
                            the _F_i_l_e menu item.  This file will become the cur-
                            rent file.

                     _M_e_r_g_e _R_e_a_d
                            Read figure from the filename specified in the _F_i_l_e
                            menu item and merge  it  with  the  figure  already
                            shown on the canvas.  The filename in the _F_i_l_e will
                            revert to the previous filename after this function
                            is completed.

                     Right  mouse  button invokes _S_a_v_e function without popping



                                  Release 2.1 (Protocol 2.1)                  4





              XFIG(1)                                                   XFIG(1)


                     up the file panel.


                _E_x_p_o_r_t Will let you export the figure to an output file in
                       one  of several formats.  Left mouse button pops up
                       a menu with several export-related functions:


                     _M_a_g_n_i_f_i_c_a_t_i_o_n
                            This is an editable AsciiTextWidget which  contains
                            the magnification to use when translating figure to
                            the output language.

                     _O_r_i_e_n_t_a_t_i_o_n
                            This button  will  toggle  the  output  orientation
                            between Landscape (horizontal) and Portrait (verti-
                            cal).  The default orientation is the same  as  the
                            mode that xfig was started with.

                     _L_a_n_g_u_a_g_e
                            The  translation  language  to  use for xfig output
                            when output is directed to a file.  The default  is
                            Postscript.   The  figure  may  be  saved as an X11
                            bitmap by choosing _X_b_i_t_m_a_p as the output  language.
                            The  bitmap is created from the figure, the size of
                            which is determined by the enclosing  rectangle  of
                            all the figure plus a small border.

                     _D_e_f_a_u_l_t _O_u_t_p_u_t _F_i_l_e
                            This  is  read-only  AsciiTextWidget which contains
                            the filename that will be used to write output to a
                            file  _i_f _t_h_e_r_e _i_s _n_o _n_a_m_e _s_p_e_c_i_f_i_e_d _i_n Output File.
                            The default is the figure name  plus  an  extension
                            that reflects the output language used.

                     _O_u_t_p_u_t _F_i_l_e
                            This  is an editable AsciiTextWidget which contains
                            the filename to use to write output to a file.

                     _C_a_n_c_e_l This button will pop down the  print  menu  without
                            doing any print operation.

                     _E_x_p_o_r_t This button writes the figure to the file using the
                            selected language.  If the file already  exists,  a
                            confirmation  window  will popup to ask the user to
                            confirm the write or cancel.

                     Right mouse button invokes _E_x_p_o_r_t function without popping
                     up the export panel.


                _P_r_i_n_t  Left  mouse  button  pops  up  a  menu with several
                       print-related functions:




                             Release 2.1 (Protocol 2.1)                  5





         XFIG(1)                                                   XFIG(1)


                     _M_a_g_n_i_f_i_c_a_t_i_o_n
                            This is an AsciiTextWidget which contains the  mag-
                            nification  to  use  when translating figure to the
                            output language.

                     _O_r_i_e_n_t_a_t_i_o_n
                            This button  will  toggle  the  output  orientation
                            between Landscape (horizontal) and Portrait (verti-
                            cal).  The default orientation is the same  as  the
                            mode that xfig was started with.

                     _J_u_s_t_i_f_i_c_a_t_i_o_n
                            This button will bring up a sub-menu from which you
                            may choose _c_e_n_t_e_r or _f_l_u_s_h _l_e_f_t to justify the fig-
                            ure on the page.  The default is _f_l_u_s_h _l_e_f_t.

                     _P_r_i_n_t_e_r
                            This  is  an  AsciiTextWidget  which  contains  the
                            printer to use if output is directed to a  printer.
                            The  name  of  the  printer  may  be  set using the
                            resource _*_p_r_i_n_t_e_r_*_s_t_r_i_n_g_:

                     _C_a_n_c_e_l This button will pop down the  print  menu  without
                            doing any print operation.

                     _P_r_i_n_t  This  button sends the figure to the printer.  Note
                            that the figure that is printed is what you see  on
                            the canvas, not necessarily the figure file.  I.e.,
                            if you haven't saved  the  figure  since  the  last
                            changes,  the  figure  from  the canvas is printed.
                            _X_f_i_g writes the figure to a temporary  file  to  do
                            this.   The name of the file is //ttmmpp//xxffiigg--pprriinntt_P_I_D,
                            where _P_I_D is the process ID of _x_f_i_g.

                     Right mouse button invokes _P_r_i_n_t function without  popping
                     up the print panel.



         IINNDDIICCAATTOORR PPAANNEELL CCOOMMMMAANNDD DDEESSCCRRIIPPTTIIOONNSS
                The  indicator panel contains buttons to set certain draw-
                ing parameters, such as line thickness, canvas grid, rota-
                tion  angle  etc.   All  of the buttons use the same mouse
                buttons for setting values.  Pressing the _l_e_f_t mouse  but-
                ton on the indicator will pop up a panel in which either a
                value may be typed (e.g. for  a  line  thickness)  or  the
                mouse  may  be clicked on one of several buttons (e.g. for
                grid style or font name).

                Pressing the _m_i_d_d_l_e mouse  button  on  an  indicator  will
                decrement  the  value  (e.g.  for line thickness) or cycle
                through the options in one direction  (e.g.  font  names),
                while  pressing  the _r_i_g_h_t mouse button will increment the
                value or cycle through the options in the other direction.



                             Release 2.1 (Protocol 2.1)                  6





         XFIG(1)                                                   XFIG(1)


                _Z_O_O_M _S_C_A_L_E
                       The      canvas      zoom      scale     may     be
                       set/increased/decreased  with  this  button.    The
                       integer  zoom  scale  is  displayed within the zoom
                       button. Ruler, grid and linewidth are scaled,  too.

                _R_O_T_A_T_I_O_N _A_N_G_L_E
                       The  rotation  angle  for  rotating  objects may be
                       set/increased/decreased  with  this  button.   Note
                       that  not  all  objects may be rotated, and certain
                       objects may only  be  rotated  by  certain  angles.
                       Pressing   the   _m_i_d_d_l_e   or   _r_i_g_h_t   button  will
                       decrease(increase)  the  angle  in  steps   of   15
                       degrees.   To  select  other angles, press the _l_e_f_t
                       button and enter the angle in the popup menu.

                _N_U_M_B_E_R _O_F _P_O_L_Y_G_O_N _S_I_D_E_S
                       The number of sides  used  in  creating  a  _R_E_G_U_L_A_R
                       _P_O_L_Y_G_O_N is set with this button.

                _G_R_I_D _M_O_D_E
                       With  this  button the user may select no grid, 1/4
                       inch (5mm in metric mode) grid or 1/2  inch  (10mm)
                       grid.

                _P_O_I_N_T _P_O_S_I_T_I_O_N
                       This  button  controls  the  coarseness  of  object
                       placement on the canvas.  The options are arbitrary
                       placement, 1/16 inch (2mm in metric mode), 1/4 inch
                       (5mm) or 1/2 inch (10mm).  This allows the user  to
                       easily  place  objects  in  horizontal  or vertical
                       alignment.

                       This also restricts which objects  may  be  "picked
                       up"  by  the mouse when editing.  If a corner of an
                       object is not positioned on the canvas on a  multi-
                       ple of the point positioning resolution you may not
                       be able to pick  it.   If  this  happens,  a  black
                       square will temporarily appear above the mouse cur-
                       sor.  This square will also appear anytime the user
                       tries to pick a nonexistent object.

                _V_E_R_T_I_C_A_L _A_L_I_G_N
                       This sets the vertical alignment mode for the _A_L_I_G_N
                       button in the editing mode panel.  The choices  are
                       no vertical alignment, align to top edge, middle or
                       bottom edge of compound.  The _H_O_R_I_Z_O_N_T_A_L _A_L_I_G_N  and
                       _V_E_R_T_I_C_A_L _A_L_I_G_N indicator settings are used together
                       to align objects inside a compound.

                _H_O_R_I_Z_O_N_T_A_L _A_L_I_G_N
                       This sets the horizontal  alignment  mode  for  the
                       _A_L_I_G_N  button  in  the  editing  mode  panel.   The
                       choices are no horizontal alignment, align to  left



                             Release 2.1 (Protocol 2.1)                  7





         XFIG(1)                                                   XFIG(1)


                       edge,  middle or right edge of compound.  The _H_O_R_I_-
                       _Z_O_N_T_A_L _A_L_I_G_N and _V_E_R_T_I_C_A_L _A_L_I_G_N indicator  settings
                       are  used  together  to align objects inside a com-
                       pound.

                _A_N_G_L_E _G_E_O_M_E_T_R_Y
                       The following settings are  available  to  restrict
                       the  drawing  angle  of line segments in _P_O_L_Y_L_I_N_E_S,
                            _P_O_L_Y_G_O_N_S and _S_P_L_I_N_E_S.

                     _U_N_R_E_S_T_R_I_C_T_E_D
                            Allow lines to be drawn with any slope.

                     _L_A_T_E_X _L_I_N_E
                            Allow lines to be drawn only at slopes which can be
                            handled by _L_a_T_e_X picture environment lines: slope =
                            x/y, where x,y are integers in the range [-6,6].

                     _L_A_T_E_X _V_E_C_T_O_R
                            Allow lines to be drawn only at slopes which can be
                            handled by _L_a_T_e_X picture environment vectors: slope
                            = x/y, where x,y are integers in the range  [-4,4].

                     _M_A_N_H_A_T_T_A_N_-_M_O_U_N_T_A_I_N
                            Allow lines to be drawn in the horizontal, vertical
                            or diagonal direction only.

                     _M_A_N_H_A_T_T_A_N
                            Enforce drawing of lines in the horizontal and ver-
                            tical direction only.

                     _M_O_U_N_T_A_I_N
                            Enforce drawing of only diagonal lines.


                _A_R_E_A _F_I_L_L
                       This button allows the user to select the area fill
                       darkness (grey scale) for all objects  except  _T_E_X_T
                       and  _E_N_C_A_P_S_U_L_A_T_E_D  _P_O_S_T_S_C_R_I_P_T,  or to turn off area
                       fill altogether.

                _L_I_N_E _W_I_D_T_H
                       The width of lines may be selected with  this  but-
                       ton.  Zero width lines may be drawn for the purpose
                       of having filled areas without outlines.

                _L_I_N_E _S_T_Y_L_E
                       The choices for line style are  solid,  dashed  and
                       dotted.   Once created, a dashed or dotted line may
                       be edited to change the length  of  dashes  or  the
                       spacing  of dots respectively.  The dash length and
                       dot gap can be changed from the default  using  the
                       popup menu.




                             Release 2.1 (Protocol 2.1)                  8





         XFIG(1)                                                   XFIG(1)


                _B_O_X _C_U_R_V_E
                       The radius of the corners on _A_R_C_-_B_O_X objects may be
                       set with this button.

                _A_R_R_O_W _M_O_D_E
                       This button selects the auto-arrow mode for drawing
                       lines.   The  options are no arrow heads, backward-
                       pointing arrow head, forward-pointing arrow head or
                       both.   If  one or both arrow head modes are turned
                       on, then arrow heads are automatically  drawn  when
                       drawing _P_O_L_Y_L_I_N_E, _S_P_L_I_N_E or _A_R_C objects.

                _T_E_X_T _J_U_S_T_I_F_I_C_A_T_I_O_N
                       The  adjustment  of text may be set to _l_e_f_t, _c_e_n_t_e_r
                       or _r_i_g_h_t _j_u_s_t_i_f_i_c_a_t_i_o_n.

                _T_E_X_T _S_I_Z_E
                       The text size may be  set/increased/decreased  with
                       this button.

                _T_E_X_T _S_T_E_P
                       The    interline    spacing    of   text   may   be
                       set/increased/decreased with this button.  The num-
                       ber displayed gives the multiple of the font height
                       that  will  be  placed  between  lines  on  hitting
                       _<_r_e_t_u_r_n_>.

                _T_E_X_T _F_O_N_T
                       This  button  allows a selection of 35 fonts avail-
                       able for most Apple Postscript printers.  There are
                       two  buttons  at  the  top of the menu.  The _c_a_n_c_e_l
                       button pops down the menu without changing the cur-
                       rent  font.   The  _u_s_e  _l_a_t_e_x _f_o_n_t_s will switch the
                       menu to the _L_a_T_e_X font  choices.   When  the  _L_a_T_e_X
                       font menu is up, besides a _c_a_n_c_e_l button there is a
                       button to switch back to the Postscript fonts.

                       The name of the font is printed in the font  itself
                       so  that one may see what that font looks like.  If
                       a corresponding X11 font exists, new text  is  cre-
                       ated  on the canvas using that font.  _x_f_i_g uses the
                       size of X11 font closest to that  selected  by  the
                       font  size  button.  If the X11 font doesn't exist,
                       _x_f_i_g  uses  the  font  selected  by  the  "-normal"
                       option.   To  abort  selection of a font, click the
                       _l_e_f_t mouse button on _c_a_n_c_e_l.


         DDRRAAWWIINNGG AANNDD EEDDIITTIINNGG MMOODDEE PPAANNEELLSS
                Icons in the drawing and editing mode panel windows repre-
                sent  object manipulation functions, modes and other draw-
                ing or  modification  aids.   Manipulation  functions  are
                selected  by  positioning  the cursor over it and clicking
                the _l_e_f_t mouse button.  The selected icon is  highlighted,



                             Release 2.1 (Protocol 2.1)                  9





         XFIG(1)                                                   XFIG(1)


                and  a message describing its function appears in the mes-
                sage window.

         DDRRAAWWIINNGG MMOODDEE PPAANNEELL CCOOMMMMAANNDD DDEESSCCRRIIPPTTIIOONNSS
                The drawing mode panel contains buttons used to create the
                various  xfig objects.  Once the drawing mode is selected,
                the object is created by moving the mouse to the point  on
                the  canvas  where the object is to be placed and pressing
                and releasing the _l_e_f_t button.  After that  the  mouse  is
                moved  to  the  second  point and the _l_e_f_t button is again
                pressed for the next point.  For those objects  which  may
                have  more  than two points (e.g. a line), the _l_e_f_t button
                may be pressed for each successive point, and  the  _m_i_d_d_l_e
                button  must be pressed to finish the object.  To create a
                single point using the _P_O_L_Y_L_I_N_E button, press and  release
                the  _m_i_d_d_l_e  button.   For  the _A_R_C object, which requires
                exactly three points the _l_e_f_t button is used for all three
                points.

                At  any time the _r_i_g_h_t button may be pressed to cancel the
                creation of the object.

                _A_R_C    Create an arc.  Specify three points using the _l_e_f_t
                       button.

                _B_O_X    Create  rectangular  boxes.   Start and finish with
                       the _l_e_f_t button.

                _A_R_C_-_B_O_X
                       Create  rectangular  boxes  with  rounded  corners.
                       Start  and finish with the _l_e_f_t button.  The radius
                       of the corners is selected by the _B_O_X _C_U_R_V_E button.

                _C_I_R_C_L_E Create  circles by specifying their radii or diame-
                       ters.  Click the _l_e_f_t button on the center  of  the
                       circle  and drag the mouse until the desired radius
                       or diameter is attained.   Click  the  _l_e_f_t  button
                       again to finish the circle.

                       Note:  if  xfig  has been compiled with the _-_D_F_A_S_T_-
                       _S_E_R_V_E_R flag the circle will be drawn as the user is
                       creating  it  (dragging  the  mouse).   Otherwise a
                       rectangular outline will show the user the size  of
                       the circle until the object is compete.

                _E_L_L_I_P_S_E
                       Create ellipses using the same procedure as for the
                       drawing of circles.

                _E_N_C_A_P_S_U_L_A_T_E_D _P_O_S_T_S_C_R_I_P_T _O_B_J_E_C_T _(_E_P_S_)
                       Click the _l_e_f_t button on either the  upper-left  or
                       lower-right corner for the _E_P_S object and finish by
                       clicking the _l_e_f_t button again on the opposite cor-
                       ner.  The _E_D_I_T popup panel will appear and the file



                             Release 2.1 (Protocol 2.1)                 10





         XFIG(1)                                                   XFIG(1)


                       name of the  _E_P_S  object  may  be  entered.   After
                       pressing  _D_O_N_E  or _A_P_P_L_Y the bitmap part of the _E_P_S
                       object will appear in the box just created.  If  no
                       _E_P_S  file is available yet or no name is entered or
                       there is no _p_r_e_v_i_e_w _b_i_t_m_a_p in the _E_P_S file,  press-
                       ing  _D_O_N_E will pop down the edit panel and the word
                       _<_e_m_p_t_y_> or the _E_P_S file name will remain in the _E_P_S
                       box.  Later, when the name of the _E_P_S file is known
                       or the file is available, you may re-read  the  _E_P_S
                       file using the popup edit panel and the bitmap part
                       of the _E_P_S file will replace the name in the box.

                _I_N_T_E_R_P_O_L_A_T_E_D _S_P_L_I_N_E
                       Create (cubic spline) spline objects.   Enter  con-
                       trol  vectors  in the same way as for creation of a
                       _P_O_L_Y_L_I_N_E object.  At least three points  (two  con-
                       trol  vectors)  must  be  entered.  The spline will
                       pass through the entered points.

                _P_O_L_Y_L_I_N_E
                       Create  polylines  (line  segments   connecting   a
                       sequence  of points).  Enter points by clicking the
                       _l_e_f_t button at the desired positions on the  canvas
                       window.  Click the _m_i_d_d_l_e button to finish.

                _P_O_L_Y_G_O_N
                       Same  as  _P_O_L_Y_L_I_N_E  except  that  a line segment is
                       drawn connecting the first and last points entered.

                _R_E_G_U_L_A_R _P_O_L_Y_G_O_N
                       The  number of sides is first selected with the _N_U_M
                       _S_I_D_E_S button in the indicator panel.  Then the _l_e_f_t
                       button  is  clicked  on  the  center  and the mouse
                       dragged to the desired size.   The  object  may  be
                       rotated  as it is being created by moving the mouse
                       up or down relative to the starting  point.   Click
                       the _l_e_f_t button to finish.

                _C_L_O_S_E_D _I_N_T_E_R_P_O_L_A_T_E_D _S_P_L_I_N_E
                       Create closed or periodic splines.  The function is
                       similar to _P_O_L_Y_G_O_N except that  a  closed  interpo-
                       lated  spline  is  drawn.   The  spline  will  pass
                       through the points (knots).

                _C_L_O_S_E_D _S_P_L_I_N_E
                       Create closed  or  periodic  spline  objects.   The
                       function is similar to _P_O_L_Y_G_O_N 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.

                _S_P_L_I_N_E Create (quadratic spline)  spline  objects.   Enter
                       control  vectors in the same way as for creation of
                       a _P_O_L_Y_L_I_N_E object.   At  least  three  points  (two



                             Release 2.1 (Protocol 2.1)                 11





         XFIG(1)                                                   XFIG(1)


                       control  vectors) must be entered.  The spline will
                       only pass through the two end points.

                _T_E_X_T   Create text strings. Click the _l_e_f_t 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 or ^X will erase the entire line.  Fin-
                       ish by clicking the _m_i_d_d_l_e  button  or  typing  the
                       _<_r_e_t_u_r_n_>  key.   If  _<_r_e_t_u_r_n_>  is  used,  the  text
                       pointer automatically moves to the next  "line",  a
                       distance  of the font height times the value in the
                       TEXT STEP  button,  and  text  input  mode  is  re-
                       entered.   To  finish  text fully, click the middle
                       button or choose  any  panel  button  that  changes
                       modes  (e.g.  box, save, etc).  To edit text, click
                       on an existing text string with  the  _l_e_f_t  button.
                       Insertion  of  characters  will  take place at that
                       point.  Or, use the popup _E_D_I_T mode to  modify  the
                       text.


         EEDDIITTIINNGG MMOODDEE PPAANNEELL CCOOMMMMAANNDD DDEESSCCRRIIPPTTIIOONNSS
                When  a  button  in the editing mode panel is pressed, any
                objects that may be affected  by  that  editing  operation
                will show their corner markers.  Only those objects may be
                affected by the particular edit mode.  In cases where  two
                edit modes exist for one button, it may be that the corner
                markers will appear for objects that may  be  affected  by
                one button but not the other.


                SSEELLEECCTTIINNGG OOBBJJEECCTTSS
                       When  multiple  objects have points in common, e.g.
                       two boxes that touch at one corner, only one object
                       can  be  selected  by  clicking  on  that point. To
                       select other objects, hold down the shift key while
                       pressing  the _l_e_f_t mouse button: the markers of one
                       object will be highlighted.  By repeatedly clicking
                       the  _l_e_f_t  button while holding down the shift key,
                       it is possible to cycle through all candidates  for
                       selection  at  that  point. To perform the selected
                       action, e.g.  deleting one box, click on the  point
                       without  holding down the shift key.  The operation
                       will be performed on the highlighted object.

                       NNoottee:: If the mouse is not clicked near enough to an
                       object  marker  or  for whatever reason _x_f_i_g cannot
                       "find" the object the user is trying to  select,  a
                       black  square  will  temporarily  appear  above the
                       mouse cursor.





                             Release 2.1 (Protocol 2.1)                 12





         XFIG(1)                                                   XFIG(1)


                _G_L_U_E _C_O_M_P_O_U_N_D
                       Create a compound object by clicking the _l_e_f_t mouse
                       button  near  the  upper-left  area to enclose then
                       drag the mouse to the lower-right  area  and  click
                       the  _l_e_f_t  button again.  The rubber-band rectangle
                       will disappear and four corner markers will appear,
                       marking the boundaries of the compound object.

                _B_R_E_A_K _C_O_M_P_O_U_N_D
                       Break  a  compound  object to allow manipulation of
                       its component parts.  Click the _l_e_f_t button on  the
                       one of the corner markers of the compound object or
                       along one of the imaginary lines defining the  com-
                       pound box.

                _S_C_A_L_E _O_B_J_E_C_T
                       Any  object  may  be scaled.  If the _l_e_f_t button is
                       pressed on a  _B_O_X  or  _A_R_C_-_B_O_X  object,  then  that
                       object  will be scaled proportionally to its aspect
                       ratio.  If the _m_i_d_d_l_e  button  is  pressed  on  any
                       object, that object will be scaled up or down about
                       its center.  Text may only be scaled  if  inside  a
                       compound  object and then only if its _R_I_G_I_D flag is
                       set to _N_O_R_M_A_L (using the popup  edit  panel).   See
                       the   _T_r_a_n_s_F_i_g   manual  for  description  of  text
                       options.

                _A_L_I_G_N  This button will align objects  inside  a  compound
                       object  according  to  the  setting in the _V_E_R_T_I_C_A_L
                       _A_L_I_G_N and _H_O_R_I_Z_O_N_T_A_L _A_L_I_G_N indicators.  The choices
                       are  the  cumulative  effect of vertically aligning
                       the objects to the _T_O_P, _M_I_D_D_LE or _B_O_T_T_OM  edge  and
                       horizontally  aligning to the _L_E_FT, _M_I_D_D_LE or _R_I_G_HT
                       edge of the compound.

                _M_O_V_E _P_O_I_N_T
                       Modify the position of a point of any object except
                       _T_E_X_T  and _C_O_M_P_O_U_N_D objects.  For unrestrained move-
                       ment, click the _l_e_f_t button over the desired point,
                       reposition  the  point,  and  click the _l_e_f_t button
                       again.  For horizontally or vertically  constrained
                       move,  click the _m_i_d_d_l_e button on the desired point
                       and move either horizontally or vertically.  Notice
                       that  once  you choose the direction (horizontal or
                       vertical), movement is constrained in  that  direc-
                       tion.   If, after moving the mouse initially, it is
                       moved in the other  direction  a  greater  distance
                       than  the current position of the mouse relative to
                       the starting point, then that will be the new  con-
                       straint direction.  In otherwords if you first move
                       the mouse _h_o_r_i_z_o_n_t_a_l_l_y one inch (say) then move  it
                       _v_e_r_t_i_c_a_l_l_y 1.3 inches, the direction will switch to
                       _v_e_r_t_i_c_a_l until any _h_o_r_i_z_o_n_t_a_l  motion  exceeds  1.3
                       inches.    When  the  object  is  positioned  where



                             Release 2.1 (Protocol 2.1)                 13





         XFIG(1)                                                   XFIG(1)


                       desired, click the _l_e_f_t to place  it  if  the  _l_e_f_t
                       button  was used to start the move (unconstrained),
                       or the _m_i_d_d_l_e button (constrained) if  that  button
                       was used.

                _M_O_V_E   Move  object.   Click the _l_e_f_t (unconstrained move)
                       or _m_i_d_d_l_e (constrained move) button on  any  corner
                       marker  of  the  object  to be moved.  The horizon-
                       tal/vertical constrained movement  (_m_i_d_d_l_e  button)
                       works exactly as described for _M_O_V_E _P_O_I_N_T.

                _A_D_D _P_O_I_N_T_S
                       Add  points to _P_O_L_Y_L_I_N_E, _P_O_L_Y_G_O_N, _S_P_L_I_N_E, or _C_L_O_S_E_D
                       _S_P_L_I_N_E objects (points of a _B_O_X can not be added or
                       deleted).  Note that a _R_E_G_U_L_A_R _P_O_L_Y_G_O_N is really an
                       ordinary _P_O_L_Y_G_O_N, so adding points to  this  object
                       is allowed and does NOT keep the polygon regular.

                _C_O_P_Y _/ _C_U_T _T_O _C_U_T _B_U_F_F_E_R
                       Copy  object  to  canvas  or cut buffer.  Click the
                       _l_e_f_t (unconstrained copy)  or  _m_i_d_d_l_e  (constrained
                       copy)  button on any corner marker of the object to
                       be copied (for _C_I_R_C_L_E and  _E_L_L_I_P_S_E  objects,  mouse
                       may  also be clicked on their circumferences).  The
                       object will be duplicated and then moved exactly as
                       in  _M_O_V_E.   If  the  _r_i_g_h_t  button is clicked on an
                       object, that object is copied to the cut buffer for
                       pasting into this or another figure.  The file used
                       for the cut buffer is called ..xxffiigg  in  the  user's
                       $$HHOOMMEE  directory.  This allows a user to run two or
                       more xfig processes and cut/paste  objects  between
                       them.   If  there is no $$HHOOMMEE, a file is created in
                       //ttmmpp, called xxffiigg_P_I_D where _P_I_D is the xfig  process
                       ID.

                _D_E_L_E_T_E _P_O_I_N_T_S
                       Delete  points  from  _P_O_L_Y_L_I_N_E, _P_O_L_Y_G_O_N, _S_P_L_I_N_E, or
                       _C_L_O_S_E_D _S_P_L_I_N_E.  Objects (points of a _B_O_X or _A_R_C_-_B_O_X
                       can  not be added or deleted).  Note that a _R_E_G_U_L_A_R
                       _P_O_L_Y_G_O_N is really an ordinary _P_O_L_Y_G_O_N, so  deleting
                       points  from  this  object  is allowed and does NOT
                       keep the polygon regular.

                _D_E_L_E_T_E Click the _l_e_f_t button on an object  to  delete  the
                       object.   Delete a _r_e_g_i_o_n of the canvas by clicking
                       the _m_i_d_d_l_e button and dragging the mouse to  define
                       an  area  of objects to delete.  Clicking the _r_i_g_h_t
                       button on an object will copy the object to the cut
                       buffer (see _C_O_P_Y_/_C_U_T _T_O _C_U_T _B_U_F_F_E_R above).

                _E_D_I_T _O_B_J_E_C_T
                       Edit  settings  for  an existing object.  Click the
                       _l_e_f_t button on the object and a  pop-up  menu  will
                       appear  showing  existing  settings for the object.



                             Release 2.1 (Protocol 2.1)                 14





         XFIG(1)                                                   XFIG(1)


                       Some of the menu entries may be changed  by  typing
                       new  values  in  the appropriate windows. These are
                       editable AsciiTextWidgets and allow cut and  paste.
                       Others  pop  up a sub-menu of multiple choices when
                       pressed and held.  Press the "done" button to apply
                       the  changes  to  the object and finish.  Press the
                       "apply" button to apply the changes  but  keep  the
                       menu  up  for  further changes.  Press the "cancel"
                       button to cancel the changes and pop down the menu.

                       The  following  table shows which settings are used
                       for the different objects.

                       center,box; C | C | 1 C | 1 C | 1 C | 1 C | 1 C | 1
                       C | 1 C | 1 C 1   S 1   S ^ | C | 1 C | 1 C | 1 C |
                       1 C | 1 C | 1 C | 1 C | 1 C 1   C 1   C L | C | 1 C
                       | 1 C | 1 C | 1 C | 1 C | 1 C | 1 C | 1 C 1 | C 1 |
                       C.     Object    |-    Angle   Area Line Line Box  |=
                       Depth   *                    Color   Radius    Text
                                 Fill Width     Style     Curve                    Font Just.     Size
                       =      Arc       \/   \/   \/        \/   \/      _
                       Arc-Box        \/   \/   \/   \/   \/   \/        _
                       Circle    \/   \/   \/   \/        \/   \/   \/   _
                       Ellipse   \/   \/   \/   \/        \/   \/   \/   _
                       EPS                           \/   \/  _ Box, Line,
                       Polygon,
                       Spline          \/   \/   \/        \/   \/       _
                       Text \/                       \/   \/        \/   \/   \/

                       |- The angle may be set, but the object will only be
                       rotated on Postscript output.  The angle  may  only
                       be set with the popup edit menu.

                       |=  The  depth  defines  how overlapping objects are
                       displayed. Objects with a greater depth  value  are
                       obstructed  by  objects  with  smaller depth value.
                       This may only be changed in the popup edit menu.

                       *  Although the color of objects is  not  yet  sup-
                       ported  by  xfig  or any of the output translators,
                       the color value (integer) may be edited in  objects
                       using the popup edit menu.

                _U_P_D_A_T_E By  pressing the _l_e_f_t button on an object, the cur-
                       rent  settings  for  the  indicator  buttons  (line
                       width,  line style, area fill etc.) are copied into
                       that object.  If the _m_i_d_d_l_e button is clicked on an
                       object,  the settings in the object are copied into
                       the indicator button settings.  Thus, one may  copy
                       attributes of one object to another.  The _d_e_p_t_h and
                       _c_o_l_o_r  attributes  are  not  copied  when  updating
                       objects.





                             Release 2.1 (Protocol 2.1)                 15





         XFIG(1)                                                   XFIG(1)


                _F_L_I_P _V_E_R_T_I_C_A_L_L_Y
                       Flip  the  object up/down (_l_e_f_t button) or copy the
                       object and flip it (_m_i_d_d_l_e button). Point  to  part
                       of  the object, click the appropriate button.  That
                       object will be flipped vertically about that point.

                _F_L_I_P _H_O_R_I_Z_O_N_T_A_L_L_Y
                       Flip  the  object  left/right (_l_e_f_t button) or copy
                       the object and flip it (_m_i_d_d_l_e  button).  Point  to
                       part  of  the object, click the appropriate button.
                       That object will be flipped horizontally about that
                       point.

                _R_O_T_A_T_E _C_L_O_C_K_W_I_S_E
                       Rotate  the object (_l_e_f_t button) or copy and rotate
                       it (_m_i_d_d_l_e button) -N degrees (clockwise), where  N
                       is the amount set in the rotation indicator button.
                       The object is rotated about the chosen point.   Not
                       all  objects  can  be  rotated,  and not all can be
                       rotated at arbitrary  angles.   For  example,  _B_O_X,
                       _A_R_C_-_B_O_X and _E_P_S objects may only be rotated by mul-
                       tiples of 90 degrees, and _T_E_X_T objects may  not  be
                       rotated  at all.  If a _C_O_M_P_O_U_N_D object contains any
                       _T_E_X_T objects, the texts are moved but not  rotated.

                _R_O_T_A_T_E _C_O_U_N_T_E_R_-_C_L_O_C_K_W_I_S_E
                       Rotate  the  object  (_l_e_f_t  button) or copy (_m_i_d_d_l_e
                       button) +N degrees (counter-clockwise), where N  is
                       the  amount  set  in the rotation indicator button.
                       The object is rotated about the chosen point.

                _S_P_L_I_N_E _<_-_> _P_O_L_Y_L_I_N_E
                       Turn _P_O_L_Y_G_O_N  into  a  _C_L_O_S_E_D  _I_N_T_E_R_P_O_L_A_T_E_D  _S_P_L_I_N_E
                       object, or turn _P_O_L_Y_L_I_N_E into a _I_N_T_E_R_P_O_L_A_T_E_D _S_P_L_I_N_E
                       object.

                _A_D_D_/_D_E_L_E_T_E _A_R_R_O_W_S
                       Add or delete  arrow  heads  of  _A_R_C,  _P_O_L_Y_L_I_N_E  or
                       _S_P_L_I_N_E  objects.  Add an arrow head by clicking the
                       _l_e_f_t button on the endpoint of the object.   Delete
                       an arrow head by clicking _m_i_d_d_l_e button on the end-
                       point or arrow head.

         PPAANNNNIINNGG
                The figure may be panned by clicking the left,  middle  or
                right  mouse button in the rulers.  Clicking the _l_e_f_t but-
                ton in the top ruler will pan the image to left the by 1/2
                inch  (1cm  in  metric  mode),  adjusted  for zoom factor.
                Clicking the _r_i_g_h_t button in the top ruler  will  pan  the
                image  right  by the same amount.  By pressing and _h_o_l_d_i_n_g
                the _m_i_d_d_l_e button the user  may  drag  the  ruler  by  the
                amount desired, thus panning the image by that amount.

                The  figure  is  panned  up  and  down  in the same way by



                             Release 2.1 (Protocol 2.1)                 16





         XFIG(1)                                                   XFIG(1)


                clicking the mouse in the ruler on the right of  the  can-
                vas.   Also,  the figure can be returned to it's origin by
                clicking the left mouse button in the unit's box.

                The arrow keys may also be used to pan the image  and  the
                home key to return the figure to the origin.


         XX DDEEFFAAUULLTTSS
                The   overall  widget  name(Class)  is  xfig(Fig).   These
                resources correspond to the command line arguments: L L  L
                L  L.   Name Class     Type Default   Command-line equiva-
                lent   _   justify   Justify     boolean   false     -left
                (false)    and    -right    (true)   landscape Orientation
                   boolean   true -Landscape         and         -Portrait
                pwidth    Width     integer   10(8)     -pwidth
                pheight   Height    integer   8(9.5)    -pheight
                trackCursor    Track     boolean   on   -track         and
                -notrack  inches    Inches    boolean   true T{   -inches,
                -imperial,      -centimeters      and      -metric      T}
                reverseVideo   ReverseVideo   boolean   off  -inverse
                debug     Debug     boolean   off  -debug
                normalFont     NormalFont     string    fixed     -normal
                boldFont  ButtonFont     string    8x13bold  -bold
                startfontsize  StartFontSize  integer   12   -startfont-
                size
                showallbuttons ShowAllButtons boolean   false     -showall-
                buttons
                internalborderwidth InternalBorderWidth integer   1    -inter-
                nalBW

         WWIIDDGGEETT TTRREEEE
                Below  is  the widget structure of _x_f_i_g.  The widget class
                name is given first, followed by the widget instance name.

                Fig  xfig
                     Form  form
                          Form  commands
                          Label  message
                               Command  button (one for each of the 8 buttons)
                          Label  mouse_panel
                          Box  mode_panel
                               Label  label
                               Command  button (one for each of the 16 drawing mode buttons)
                               Label  label
                               Command  button (one for each of the 18 editing mode buttons)
                          Label  topruler
                          Label  canvas
                          Label  unitbox
                          Label  sideruler
                          Box  ind_panel
                               Command  button (one for each of the 17 indicator buttons)
                          TransientShell  xfig: ps font menu
                               Box  menu



                             Release 2.1 (Protocol 2.1)                 17





         XFIG(1)                                                   XFIG(1)


                                    Form  buttons
                                         Command  cancel
                                         Command  use latex fonts
                                    Command  pane (one for each of the 35 Postscript font panes)
                          TransientShell  xfig: latex font menu
                               Box  menu
                                    Form  buttons
                                         Command  cancel
                                         Command  use postscript fonts
                                    Command  pane (one for each of the 6 LaTeX font panes)
                     TransientShell  xfig: file menu
                          Form  file_panel
                               Label  dir label
                               Text  directory
                               Label  file label
                               Text  file
                               Label  file status
                               Command  cancel
                               Command  save
                               Command  load
                               Command  merge
                     TransientShell  xfig: export menu
                          Form  export_panel
                               Label  mag label
                               Text  magnification
                               Label  orient label
                               MenuButton  landscape
                                    SimpleMenu  menu
                                         SmeBSB  portrait
                                         SmeBSB  landscape
                               Label  lang label
                               MenuButton  ps
                                    SimpleMenu  menu
                                         SmeBSB  box
                                         SmeBSB  epic
                                         SmeBSB  eepic
                                         SmeBSB  eepicemu
                                         SmeBSB  latex
                                         SmeBSB  null
                                         SmeBSB  pic
                                         SmeBSB  pictex
                                         SmeBSB  ps
                                         SmeBSB  pstex
                                         SmeBSB  pstex_t
                                         SmeBSB  textyl
                                         SmeBSB  tpic
                                         SmeBSB  Xbitmap
                               Label  file label
                               Label  file label
                               Label  file label
                               Text  file
                               Command  cancel
                               Command  export
                     TransientShell  xfig: print menu



                             Release 2.1 (Protocol 2.1)                 18





         XFIG(1)                                                   XFIG(1)


                          Form  print_panel
                               Label  printer image
                               Label  mag label
                               Text  magnification
                               Label  orient label
                               MenuButton  landscape
                                    SimpleMenu  menu
                                         SmeBSB  portrait
                                         SmeBSB  landscape
                               Label  just label
                               MenuButton  flush left
                                    SimpleMenu  menu
                                         SmeBSB  flush left
                                         SmeBSB  centered
                               Label  dir label
                               Text  printer
                               Command  cancel
                               Command  print

                     NOTE:  The following is a _t_y_p_i_c_a_l popup edit panel (for _A_R_C_-_B_O_X)
                            The panel will be different for other objects.

                     TransientShell  xfig: edit panel
                          Form  form
                               Label  POLYLINE:ArcBox
                               Label  image
                               Command  done
                               Command  apply
                               Command  cancel
                               Label
                               Label  Width =
                               Text  Width =
                               Label  Color =
                               Text  Color =
                               Label  Depth =
                               Text  Depth =
                               Label  Area fill =
                               MenuButton  No fill
                                    SimpleMenu  menu
                                         SmeBSB  No fill
                                         SmeBSB  Filled
                               Label  Fill density % =
                               Text  Fill density % =
                               Label  Line style =
                               MenuButton  Solid Line
                                    SimpleMenu  menu
                                         SmeBSB  Solid Line
                                         SmeBSB  Dashed Line
                                         SmeBSB  Dotted Line
                               Label  Dash length/Dot gap =
                               Text  Dash length/Dot gap =
                               Label  Top Left:
                               Label  Top Left:
                               Text  Top Left:



                             Release 2.1 (Protocol 2.1)                 19





         XFIG(1)                                                   XFIG(1)


                               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 =

         BBUUGGSS aanndd RREESSTTRRIICCTTIIOONNSS
                Please send bug reports, fixes, new features etc. to:
                bvsmith@lbl.gov (Brian V. Smith)

                Not all operations employ smart redrawing of objects which
                are altered as a by product of  the  operation.   You  may
                need to use _R_e_d_r_a_w in these cases.

                Must  compile  xfig  with  --DDOOPPEENNWWIINN in order to make xfig
                handle OpenWindows scalable fonts correctly.

                There is a bug in OpenWindows 2.0 which relates to pixmaps
                in  widgets.  You must compile xfig with the --DDOOPPEENNWWIINN__BBUUGG
                option for this problem.

                If the image is panned or the xfig  window  iconified  and
                de-iconified during the middle of an operation (e.g. while
                drawing a line), the picture will be distorted.  This  can
                be corrected using _R_e_d_r_a_w after the operation is complete.

                Rotated text and ellipses will be  displayed  horizontally
                on  the screen.  They will be rotated only when printed on
                Postscript output.

                Corners of object scaled with point positioning in one  of
                the  grid modes will not always fall on the grid line, but
                to the closest pixel.

         SSEEEE AALLSSOO
                Brian W. Kernighan _P_I_C _- _A _G_r_a_p_h_i_c_s _L_a_n_g_u_a_g_e _f_o_r  _T_y_p_e_s_e_t_-
                _t_i_n_g _U_s_e_r _M_a_n_u_a_l
                fig2dev(1) (_T_r_a_n_s_F_i_g package)

         AACCKKNNOOWWLLEEDDGGEEMMEENNTT
                Many  thanks  goes  to  Professor  Donald  E.  Fussell who
                inspired the creation of this tool.

         CCOOPPYYRRIIGGHHTT
                Original Copyright (c) 1985 by Supoj Sutanthavibul

                Permission to use, copy, modify, distribute, and sell this
                software  and  its documentation for any purpose is hereby
                granted without fee, provided  that  the  above  copyright
                notice  appear  in all copies and that both that copyright



                             Release 2.1 (Protocol 2.1)                 20





         XFIG(1)                                                   XFIG(1)


                notice and this permission  notice  appear  in  supporting
                documentation,  and that the name of M.I.T. not be used in
                advertising or publicity pertaining to distribution of the
                software   without  specific,  written  prior  permission.
                M.I.T. makes no representations about the  suitability  of
                this  software  for  any  purpose.  It is provided "as is"
                without express or implied warranty.

         AAUUTTHHOORRSS
                Many people have contributed to _x_f_i_g.  Here is a  list  of
                the people who have contributed the most:

                Original author:
                Supoj Sutanthavibul, University of Texas at Austin

                The _L_a_T_e_X line drawing modes were contributed by:
                Frank          Schmuck,         Cornell         University
                (schmuck@svax.cs.cornell.edu)

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

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

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

                Area  fill,  multiple line thicknesses, multiple fonts and
                font sizes, bottom panel, line  style/thickness  modifica-
                tion of objects by:
                Brian V. Smith, Lawrence Berkeley Laboratory
                (standard disclaimer applies)
                (bvsmith@lbl.gov)

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

                Zooming and panning functions, shift key select  mechanism
                by:
                Dieter   Pellkofer  (dip@regent.e-technik.tu-muenchen.de),
                and
                Henning Spruth (hns@regent.e-technik.tu-muenchen.de)

                Depth feature by:
                Mike Lutz (mjl@cs.rit.edu)

                VVeerrssiioonn 22..11 eexxtteennssiivvee mmooddiiffiiccaattiioonnss:: Indicator panel, file
                menu  popup,  print menu popup, panning with rulers, mouse
                function window, regular polygon,  rubberbanding  of  cir-
                cles/ellipses,  filled  splines  on  canvas, dashed/dotted



                             Release 2.1 (Protocol 2.1)                 21





         XFIG(1)                                                   XFIG(1)


                splines on canvas, update button, arbitrary angle rotation
                of  objects,  alignment  in compound, object scaling, con-
                strained copy/move, corner markers for  compound,  context
                sensitive  corner  markers,  smarter redraw, undo for com-
                pound and point move for boxes,  cancel  object  creation,
                point  positioning to three resolutions, _T_r_a_n_s_F_i_g scalable
                text, hidden text, special text, save of figure  on  crash
                by:

                Paul King (king@cs.uq.oz.au)
                with help from:
                Brian   V.   Smith   (bvsmith@lbl.gov)   and   Micah  Beck
                (beck@cs.cornell.edu)

                Encapsulated Postscript importing by:
                Brian Boyter (root@fstc-chville.army.mil)









































                             Release 2.1 (Protocol 2.1)                 22


