[comp.text.tex] Fig 2.1 Available

beck@bongo.cs.cornell.edu (Micah Beck) (10/26/90)

Fig 2.1 is now available for anonymous FTP from svax.cs.cornell.edu
or sun.soe.clarkson.edu in ~ftp/pub/transfig/fig.tar.Z, or by mail
archive server from Clarkson.  TransFig 2.1 is also available at the
same locations.

Fig is a graphics editor which runs under SunView.  Fig generates output
in a file format which can be translated, using the TransFig package,
into many output forms, including PostScript, the PIC graphics preprocessor
for Troff, LaTeX picture environment, PiCTeX, EEPIC, and TeXtyl.
A different version of Fig, called XFig, runs under X-Windows V11R4.

Fig 2.1 uses a file format which is not compatible with previous versions of
Fig, TransFig, or XFig.  Thus, it is necessary to install Fig 2.1 and TransFig
2.1 simultaniously.  However, Fig 2.1 can read in files generated by previous
versions of Fig: 1.3, 1.4(-TFX), and 2.0.  XFig 2.1, which will be compatible
with Fig 2.1, is expected to be available soon.

Most of the enhancements in Fig 2.1 were implemented by Dr. Baron Grey
of USC.  My only contribution was the addition of new flags to the text
object.  A summary of the most important improvements is included below.

Micah Beck				beck@cs.cornell.edu
Department of Computer Science
Cornell University
------------------------------

*  Several default values can now be set via the "change" panel item.
   Pressing mouse middle button in "change" mode will now pop up a
   window that displays these defaults. As before, left button allows
   individual object attributes to be changed. The code has been
   updated in several places to support these new defaults (they are
   defined in global.c). Default values are NOT currently saved with a
   figure (while this might seem desirable, there are many instances
   where it can lead to great confusion).

*  Compound objects can now contain other compound objects. Before,
   only primitive objects could be part of a compound.
   Now, one can encapsulate an entire figure as a compound, if
   necessary, and manipulate it as a single logical object. CAVEAT:
   currently, you can make a compound of a single compound -- but why
   would you want to do that?

*  Right- and center-justified text are now displayed as such as the
   text is being entered. You can establish the default text justification
   using the "change" panel item (middle button while in "change" mode).

*  A carriage-return anywhere in a text string now causes the cursor to
   advance to the next line. EACH SUCH LINE OF TEXT IS AN INDEPENDENT OBJECT.
   Thus, text entry must now strictly be terminated by pressing middle
   mouse button. Moreover, the text baseline spacing is adjusted depending
   on the default setting of the text size, even though the text is
   rendered in 10-point on the canvas (you can get an approximation of
   the actual size of the text by looking at it in zoom mode -- any
   zoom factor).

*  The default size of the canvas has been increased horizontally (760
   versus 600 pixels) to support figures in landscape mode (see const.h).
   The widths of the rulers have also been increased so that negative
   dimensions (obtainable in zoom mode) are now visible.

*  A general cut/paste buffer (called the "scrap") has been added to
   Fig. An object may be copied to the scrap (using middle mouse
   button in copy mode) or deleted to the scrap (using middle mouse
   button in remove mode). A figure may be read from a file directly
   to the scrap using the popup menu (right mouse button). The
   contents of the scrap can be written to a file using the popup
   menu. The contents of the scrap can be pasted on the canvas using
   the paste panel item (a new Fig mode) -- the lower left corner of
   the bounding box of the contents of the scrap (a single object or
   an entire figure) will be located at the mouse position when left
   mouse button is pressed in "paste" mode. A paste operation can be
   undone. The contents of the scrap are cleared before a new object
   or figure is put in the scrap; otherwise, the contents of the scrap
   is always available. The scrap is perhaps most useful for saving
   objects used many times in different figures, or pasting such
   objects into an existing figure.

*  Fig can now handle Sunview window-specific command-line options.

*  A simple -- but functional -- "align" mode has been added to Fig.
   Objects comprising a compound object can now be aligned based on
   the boundaries of the compound's bounding box. For example,
   aligning to "top" forces all objects in the compound to have their
   "tops" aligned to the top of the bounding box, and so on.
   This mode is invoked by clicking left mouse button on the align
   icon in mode-select area. When the left mouse button is
   subsequently clicked on a COMPOUND object, a popup window appears
   that allows various align options to be selected; when the "done"
   button is selected from the popup, the objects in the compound are
   aligned appropriately. More than one align option can be selected,
   but the actual alignment is done sequentially in the order
   presented in the popup window. Note that the contents of nested
   compounds are NOT aligned -- alignment is therefore for top-level
   objects only. "Align" can be undone.

   The method of selecting objects to be aligned -- by forming a
   compound of them explicitly -- is not the most flexible in the
   world. Fig really needs a uniform "select" operator.

*  Three new flags to the text object: Rigid, Special, and PSfont. 
   These flags can be set in the text "change" box.

	1) Rigid text does is not affected by the magnification
	of the figure.  In previous versions, all text was rigid.  When text
	is positioned inside of objects such as boxes, it is usually desirable
	for it to scale along with the box.  Introducing the rigid text flag
	allows the user to specify non-rigid text; the default is still rigid.

	2) Special text includes text formatting commands for LaTeX or Troff.
	In non-special text, the control characters for these commands are
	escaped and so are not interpreted as commands.  The default is
	non-special text.

	3) I have added a psfont flag which specifies that the font is to be
	chosen from a different list of fonts, corresponding to the PostScript
	fonts.  The change window for a text object with the psfont
	flag set will show this list of fonts.  However, a text object with
	psfont specified can be translated only into PostScript, and not
	into the other output languages available from TransFig.  The default
	value for the psfont flag is false.