=============================================================== XFIG - Facility for Interactive Generation of figures under X11 =============================================================== 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). This file contains some notes about installing xfig, the directory 'Examples' contains some example figures and the 'Doc' directory contains some further documentation including the manual in troff -man format and PostScript. *************************************************************************** Please refer any questions/bug fixes/contributions etc. about TransFig or xfig to me. Brian Smith Lawrence Berkeley Laboratory bvsmith@lbl.gov *************************************************************************** Note that although I work at Lawrence Berkeley Laboratory (LBL) I don't speak for LBL nor do I represent LBL with respect to my work on TransFig and xfig, nor does LBL make any representations about the suitability of this software for any purpose. Here is the legal part: THE LAWRENCE BERKELEY LABORATORY DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ++++++++++++++++++++++ NOTE about version 3.0 An error in version 3.0 incorrectly positioned objects on the canvas when reading older fig files. New objects entered with 3.0 are correctly positioned. A warning will popup when you load a version 3.0 file with version 3.1 that says you might need to offset your figure by 14 fig units in X and Y when you load it. This is done by setting the X and Y offset in the popup File panel. I apologize for the inconvenience. This is also why the file version number has changed. ++++++++++++++++++++++ =================== INSTALLATION NOTES: =================== 1. Edit the Imakefile if you need to customize it (see following notes) 2. Type "xmkmf" to create the Makefile from the Imakefile 2a. For a 3D look, see NOTE below 3. Type "make install" (if you don't do this step, be sure to install resources) 4. Type "make install.man" 5. For X11R5 color implementations, specify "*customization: -color" in your .Xdefaults or .Xresources file. NOTE: this only works under X11R5. If you have the XPM3 package (X11 color pixmaps) you can export your figures in that format. Also, you can import xpm files as picture objects. Uncomment the XPMDEFINES and related variables in the Imakefile in that case. You need version 3.4c or newer. This is available from ftp.x.org in /contrib/libraries. If you have ghostscript, enable the -DGSBIT flag in the Imakefile and xfig will attempt to use it to interpret any encapsulated Postscript (EPS) files you import. Ghostscript must be compiled with with the "gif8" and "pbmraw" drivers. The pbm driver is used when you run xfig on a monochrome display and the gif8 driver is used on a color display. If your system doesn't have strstr(), add the flag -DNOSTRSTR in the Imakefile in the DEFINES line. If you are running on an IBM RS/6000 with AIX 3.2 or a Sun with Solaris 2.3, uncomment the lines that define DPSLIB and DPSDEF in the Imakefile and you will see the full PostScript object when using EPS objects. If you have an input tablet and your X server supports the XInputExtension uncomment the lines that define TABLIB and USETAB in the Imakefile. Start xfig with -tablet or define the resource Fig.Tablet to use it. NOTE: For a 3D look, I recommend using Kaleb Keithley's 3D Athena Widget set, a direct replacement for the Xaw library. After you compile and install that package, and after step 1 above, just uncomment the definition of XAWLIB in the Imakefile and it will use the 3D widget set. This set is available from ftp.x.org. The maximum width of the top ruler is set to 1020 pixels and the height of the side ruler to 860 pixels. If your server can handle pixmaps larger than this and you need longer/taller rulers, you may set the maximum allowed in your Imakefile with -DMAX_TOPRULER_WD=1160 (or whatever value you wish) and -DMAX_SIDERULER_HT=1024 (or whatever value you wish). The SMOOTHMOTION option toggles between two methods for tracking the cursor. The first way (SMOOTHMOTION) just uses the (x,y) information given in the X pointer motion event. If your display server doesn't implement motion compression this is very slow for large movements of the mouse pointer because X sends back lots of small movement events, each of which causes the rubberband box to be erased and redrawn. The alternative way (not SMOOTHMOTION) queries the position of the X cursor whenever a motion event is received and if you make a large movement and then stop actually turns out to involve less work even though the XQueryPointer call is quite slow. The SMOOTHMOTION flag MIGHT be necessary for older versions of OpenWindows on certain machines if the performance is slow when moving or drawing objects. ---------------------- Printing your figures: ---------------------- The program to translate your figure into one of many printer languages (Postscript, LaTex, etc) is called fig2dev and is part of the TransFig package put together by Micah Beck and maintained by Brian Smith. It is available from ftp.x.org in /contrib/applications/drawing_tools/transfig. See the man pages for more information. If you have a SYSV system but use BSD-style printing (lpr instead of lp) you must define -DBSDLPR in the Imakefile/Makefile. You may also need to uncomment the following string in the Fig.ad app-defaults file: !Fig*job_params*string: -oPS ----------------- Solaris users ----------------- You should have: #define SystemV YES #define SystemV4 YES in your imake machine config file (usually in /usr/lib/X11/config or something like that). Add "-lc" to the LOCAL_LIBRARIES variable in the Imakefile to link with /usr/lib/libc for the directory operations. Some people have had trouble with the Sun cc 3.0.1 compiler and optimization. You may need to shut off optimization. A common symptom is that xfig just core dumps when starting. ---------------------------------------------- Possible problems encountered installing xfig: ---------------------------------------------- PROBLEM: When using LaTeX fonts in Xfig I always end up with postscript fonts instead rather than, say, Computer Modern. POSSIBLE CAUSE AND SOLUTION: To put fonts under the control of LaTeX when generating PS, you must tag the text object as "special" and then use the pstex output mode. This mode forces special text objects to be passed through to LaTeX, allowing the use of Math mode and CM fonts among other things. ________________________________________________________________________________ PROBLEM: On a DEC Alpha the compiler may complain about something like: ".mask must have pcreg from .frame set if any bits are set in .mask or .fmask" in the file u_bound.c. POSSIBLE CAUSE AND SOLUTION: Set the optimization level to -O1 at least for that file. ________________________________________________________________________________ PROBLEM: On Sun machines the linker may give erroneous error messages about the following symbols being undefined: ld: Undefined symbol _get_applicationShellWidgetClass _get_wmShellWidgetClass This may be ignored as it is a problem with the Sun shared libraries and the way X11 builds the shared Xmu library. It doesn't affect the operation of xfig. Or you may compile with "-Bstatic -lXmu -Bdynamic". To really solve the problem if you are using OpenWindows 3.0 (X11R4-based Xt), please contact your local Sun office and request the following patches: Patch i.d. Description 100512-02 4.1.x OpenWindows 3.0 libXt Jumbo patch 100573-03 4.1.x OpenWindows 3.0 undefined symbols when using shared libXmu A source patch for use with the MIT X11R4 libraries was developed by Conrad Kimball (cek@sdc.boeing.com); it retrofits into R4 some fixes made in R5 to get around this problem. The patch is on export in [1/93] contrib/X11R4_sunos4.1.2_patch_version3.Z". The other option is to use X11R5 or X11R6. ________________________________________________________________________________ PROBLEM: The window oscillates and fights with the window manager when I click on a mode button or try to resize the xfig window. POSSIBLE CAUSE AND SOLUTION: Perhaps the following resource has been set *allowShellResize: true because another program requires it to be true. Change the resource to be specific to the programs which need it, or set the following resource: Fig*allowShellResize: false Note: this is in the Fig.ad file that comes with xfig, which is installed when you do a "make install". ________________________________________________________________________________ PROBLEM: Openwindows sometimes loses track of xfig's icon. POSSIBLE CAUSE AND SOLUTION: Cause unknown, here is a temporary kludge. Place the line: Fig*iconPixmap: ..../your_lib_area/fig.icon.X in your .Xdefaults file and copy fig.icon.X into your lib area. ________________________________________________________________________________ PROBLEM: When compiling on an HP 750 running HP-UX 8.05, the compiler dies with a bus error in the file u_undo.c. POSSIBLE CAUSE AND SOLUTION: There is a bug in the HP compiler. Workaround the problem by adding an extra statement between two statements in u_undo.c: Original: undo_glue() { list_delete_compound(&objects.compounds, saved_objects.compounds); tail(&objects, &object_tails); New: undo_glue() { list_delete_compound(&objects.compounds, saved_objects.compounds); >>> /* HP-UX 8.05 compiler bug fix -- don't ask */ >>> last_action = last_action; tail(&objects, &object_tails); ________________________________________________________________________________ PROBLEMS: On HP machines, the capitalization of some letters in the text window in the edit popup for text objects are wrong. POSSIBLE CAUSE AND SOLUTION: Make sure that the CompKeyDB file has the lowercase letter definitions BEFORE the uppercase definitions. This should be the case for the CompKeyDB file shipped with xfig 2.1.5 and later. ________________________________________________________________________________ PROBLEMS: On HP computers using cc compiler version A.09.61 there is a problem with level 3 optimization. Use +O2 instead of +O3. POSSIBLE CAUSE AND SOLUTION: Use level 2 instead.