Xfig is a menu-driven tool that allows the user to draw and manipulate objects interactively in an X window. The resulting pictures can be saved, printed on postscript printers or converted to a variety of other formats (e.g. to allow inclusion in LaTeX documents). xfig 3.2.1 is available from ftp://ftp.x.org/contrib/applications/drawing_tools/xfig or ftp://epb1.lbl.gov/xfig and usually from any CTAN (Comprehensive TeX Archive Network) site such as ftp://ftp.cdrom.com/pub/tex/ctan/. See http://math.nmu.edu/Web/TeXArchives/ctansite.html for a long list of CTAN sites. Be sure to set binary mode when transferring. You also need to get TransFig version 3.2.1. TransFig contains the post- processor needed by xfig to convert fig files to one of several output formats, such as PostScript, pic, LaTeX etc. TransFig is in the same area as xfig. Please send email about any questions/bug fixes/contributions etc. about TransFig or xfig to xfig-bugs@epb1.lbl.gov. Brian V. Smith Lawrence Berkeley National Laboratory I don't speak for LBNL; they don't pay me enough for that. ***************************************************************************** Following is a description of the CHANGES for 3.2.1: NEW FEATURES: o Preview of figure is created when you single click on a filename in the popup file panel. It also shows the size of the figure. o Library feature - load a library of Fig objects and pick and place objects from the library on the canvas where you want. See the man pages for details, and see Examples/Libraries for some examples. From Stephane Mancini with modifications by Brian V. Smith o Preview of library objects in library popup similar to figure preview by Brian Smith o The library objects in the Electrical and Logic libraries were done by Peter Hiscocks (phiscock@ee.ryerson.ca) o Xfig tutorial (PDF) in Doc/xfig-howto.pdf. Also available from the Help menu. Written by Peter Hiscocks (phiscock@ee.ryerson.ca) o "make install" installs the Fig object libraries to the library directory. The default is $XFIGLIBDIR/Libraries (/usr/lib/X11/xfig/Libraries), which may be changed in the Imakefile. o When pasting a Fig object from the xfig cut buffer it appears under the mouse (or near the mouse if pressing the "Paste" button) where it may then be moved around on the canvas before pressing mouse button 1 to place it. o Unit box in upper-right corner now shows the scale (e.g. 1cm=3km) This necessitated making the top ruler a little narrower to make the unitbox fit. If the mode panel is on the right side, the side ruler is made wider to fit the unit box above it. o The path of imported pictures is saved as relative path if picture is in subdirectory of main figure file, else it is saved as absolute. from T. Sato o When drawing a line, moving a point on a line, or adding a point to the end of a line, the angle to horizontal is shown in the message window o Pressing -I turns on and off new feature that draws red horizontal and vertical lines near the line you are drawing, or point you are moving, to indicate rise and run. Also, the length is shown next to and above the horizontal and vertical line respectively, and the actual length of the line is shown near the line itself. The command-line argument -showlengths (resource Fig.showlengths) will enable this feature as xfig starts. o Print popup button is active even when print panel is up which makes it easy to force it to the top of the window stack if it is hidden o Pressing the File button in the command panel while the Export panel is up will popdown the export panel and popup the file panel. The converse is also true - if the Export button is pressed while the file panel is up, the file panel will be popped down and the export panel is popped up. o When merging a file/figure into the current figure it is made into a compound object first o Merging a figure keeps the file panel up to be able to merge more figures o Better memory allocation for temporary arrays when drawing objects - may be slightly faster now from T. Sato o Freehand line/polygon drawing - use mouse button 2 to start after choosing polyline. As the mouse is moved points are added to the line or polygon. NOTE - this changes the line drawing behaviour: Mouse button 3 is now used to create a single-point object. o Whole window screen capture in addition to area capture in picture object popup. The behaviour of the mouse has changed with this - Mouse button 1 captures whole window now and mouse button 2 is used to capture area of screen. o Characters added to Fig*browse_panel*mask*string to include .tif and .sld files o If xfig is started without a filename, the default filename is empty instead of unnamed.fig. This forces the file panel popup when save is done, to enter a new file name. o Variable time delay for popup information balloons, specified in milliseconds (-balloon_delay; resource Fig.balloon_delay) o If you enlarge the File, Export or Library panels only the file list area is enlarged to show more files o New "spinner" widgets to increment/decrement values in popup indicator entries (e.g. line thickness indicator popup) o Option of using either absolute values for arrowhead sizes or multiple of current line length (see arrow size popup) o Arrowhead thickness, width and height can be set explicitely in bottom panel for creating arrowheads. Update button also copies arrowhead size info to/from objects and indicator panel. The arrowhead width and height parameters are now the same units as the arrowhead thickness, which is units of line thickness, not 1/1200 inch as they were in previous versions of xfig. o Color popup menu in popup edit panel handles lots of colors better o Option of smaller icons for the mode panel (left side) by compiling with USESMALLICONS in Imakefile. See the Imakefile for details. Also see Fig.ad. Look for "icons". From Andrew Morgan o Default depth for creating new objects is now 100 to make it easier to put new objects on top without having to remember to start the older objects at a depth > 0. o New grid and point positioning setting at 1/8" (or 2mm in metric mode) o When moving, copying, moving a point of or adding a point to objects, all the "grab corners" of the other objects in the figure disappear to make the figure less cluttered. They reappear when the operation is complete. o Pull-down menu buttons have an arrow icon to show that it is a pull-down o Units such as "i" for inches and "c" for cm may be entered following coordinates in popup edit panel for editing objects (e.g. 3c for 3 cm) From Rick Richardson o When importing a picture file (eps, GIF, etc) xfig is more intelligent and faster about deciding the format o "Integer area zoom" option in zoom popup - if checked, when using the mouse to zoom an area of the canvas, the zoom amount will be an integral value (e.g. 2, 3, 4) o Compose key LED may be turned on for multi-key characters (e.g. a-umlaut etc) on Sun Sparcstations. See README file about COMP_LED. from Hans Werner Strube (strube@swing.physik3.gwdg.de) o New fig2dev driver for tk (tcl/tk) - Generates tk canvas and canvas objects. From Mike Markowski (mm@udel.edu) o Added "Alt" key definitions to the accelerators in Fig.ad to accomodate those machines which don't have a Meta key BUGS FIXED: o Line width is scaled with object scaling now o Arrowheads are scaled when scaling lines, splines and arcs now o Screen_res was incorrect for drawing tablets o When scaling a compound by using the "move point" edit mode, undoing the scale didn't work properly because of rounding problems. A proper "undo" is now performed. o Note: the -inverse (reverse video) option has been removed because the same effect can be achieved using "-cbg black -cfg white" o Made the export_panel*mask*string same as browse_panel*mask*string o User-defined colors weren't being merged properly in compound objects o If Paste was performed while opening a compound object, some objects outside the opened compound object may have been lost and xfig may have crashed with a segfault later. o ARC-BOX corner radius scaled incorrectly when box was scaled o ARC-BOX corner radius is now only scaled with Scale operation, not move point o Busy cursor wasn't being reset when reading some figures o Refreshing the screen while creating a Fig object (e.g. POLYLINE) refreshes that object correctly now o Updated pointer for hp2xx and additional pointer to Fig related apps in FIGAPPS file. From Ian MacPhedran o Declaration of clrtab array incorrect in f_neuclrtab.h - caused problems on Digital Unix. From Ian MacPhedran o When loading a figure that changes the canvas orientation (Portrait/ Landscape), the file modified flag was not cleared o When it can't save to a file, xfig now rings the bell and puts the error message in the *popup* message window o Trying to use the external image editor in the edit panel for an imported picture failed if the file was compressed o When switching to a private colormap because of importing a picture, xfig is better about matching the colormap of the popup edit panel o Objects not aligned correctly in large drawings due to bad choice of starting min/max values (use INT_MIN and INT_MAX now) o When running "xfig -right" (mode/edit panel on right-side) the popup balloons were too long, never showed the message and popped up and down because they appeared under the mouse. o Cleanup of many, many function declarations (mostly type void) o Inadvertantly used incorrect font for Avant-Garde o When undo'ing load figure, any objects using user-defined colors may not have been displayed correctly until doing a "Redraw". Also, non-existant user colors may have stayed in pen and/or fill color indicators. o Bug in size of imported Picture when clicking on "Use orig size" - image was slightly too small. Also bug when clicking "Use orig size" in metric mode - even worse scaling. o Code to check for bad font numbers when reading Fig file was in wrong place o Bug in pcx decoder - odd-width images caused seg fault. This would also affect importing eps files since xfig uses pcx output from gs. o Another bug in pcx decoder - wasn't allocating correct amount of memory for the image buffer. This would of course, cause segfaults. o Bug in "Fit-to-page" in metric mode fixed from Hans Werner Strube (strube@swing.physik3.gwdg.de) o Cleaned up mode button icons to fit within button area better o An old feature to prevent an expose event on the canvas from erasing a newly imported image while still in the picture editor is no longer needed and prevented screen refreshing o If screen capture is attempted with no Fig filename (e.g. when starting xfig with no file name) seg fault occurred. from T. Sato o Small correction to I18N draw_string routine from T. Sato o Not all calls to fig2dev had I18N localization options passed from T. Sato o If you create a new figure (no name yet) and try to export before saving, xfig asked you if you wanted to save the figure first. If you said yes, it would popup the file panel to choose a name and save. After that though, it wouldn't do the export as you first requested. This has been fixed. o Added && !defined(__GLIBC__) to declarations of random and srandom for systems with glibc o Imported eps files containing "initgraphics" commands weren't working correctly. This has been fixed by defining initgraphics and initmatrix as {}. o Yet another #if added to the never-ending list. This one is for sys_errlist. FreeBSD systems already define it in stdio.h. o Inconsistent declaration uncompress_file (static) o Missing braces around initializers for headers structure for imported bitmap file types o Some unused variables and procedures removed o Incorrect casts in e_align.c o Bug in figure size in export and print panels - bounding variable was clobbered soon after being calculated o Allowed saving over a read-only file if file panel wasn't created o Various problems with New figure->Export->File popup sequence either segfaulting or permanently disabling xfig buttons and canvas fixed. o GC wasn't properly setup for dragging rectangle on screen for screen capture for some systems. o Very small arcs "blew up" making very large arcs on screen o Bug in draw_arc() - would free unallocated memory if arc was small o Imakefile had w_icons.o in XFIGSRC instead of w_icons.c o Fixed annoying warning about StartScroll action not found on Linux systems that use the "modified" Xaw3d widget set (ARROW_SCROLLBAR defined, which makes the scrollbars look like the Windows scrollbars) o Mouse indicator was leaving bits of old text behind for long messages o Removed call to rint() because gcc can't find it on HP-UX o Move_point_selected() called set_mousefun() with too few args o Variable "text_translations" multiply defined o Fixed some bugs relating to updating dash-length/dot-gap in indicator panel from dashed/dotted lines o Bug fixed where update indicator (red box) didn't always toggle correctly o Undo of spline<->line conversion and box<_>arc_box fixed o For some reason, the Solaris version of XtAppCreateShell references an argument beyond what the users specifies in the command line, causing a seg fault. Fixed by Martin Pahl o Renamed suffix for AutoCad Slide export to ".sld" (was ".acad") o Needed #ifdef USE_JPEG in w_export.c for compiling without JPEG support o Transparent color was not passed to fig2dev for GIF output (new -t option in fig2dev do do this) o Inappropriate arguments to sqrt() in spline calculations (not double) o The radius value displayed in the message window was incorrect when drawing ellipses o Both radii are reported now when drawing ellipses o Now checks whether Fig file is read-only before renaming to .bak and allowing user to save. (after second save, original, read-only file would be gone) o New #ifdef for glibc which already has sys_errlist and random() defined o Conflict with definition M_PI (3.14159....) on RedHat systems fixed o Interpolated splines in Fig version 2.1 files were read incorrectly fixed by Onno Roep o If you had a line with arrowhead(s) and deleted all the points to make it a single point object, then undid the last delete point, the arrowhead(s) didn't reappear. This has been fixed. o Less multiple redrawing of figure when starting xfig with filename and it needs to change orientation (portrait/landscape) o "Ledger" paper size removed from list of paper sizes. It is really "Tabloid" size in landscape mode. o Undo of align to canvas wasn't refreshing display