The bulk of the documentation fori xfig is in an HTML-based reference guide. See the Help menu in xfig or point your browser at Doc/html/index.html (provided with the xfig distribution, usually in the Doc/www directory). There are both English and Japanese versions.
When using a two-button mouse use the <Meta> key and the right button at the same time to effect the action of the middle button.
Xfig is available from ftp://www-epb.lbl.gov/xfig and usually from ftp://ftp.x.org/contrib/applications/drawing_tools/xfig .
The TransFig package is used when printing or exporting the output from xfig. The fig2dev program from the TransFig package is automatically called by xfig as a back-end processor to produce various types of output:
LaTeX, Metafont, PostScript or Encapsulated PostScript, tk (tcl/tk tool command language/tool kit package), GIF, JPEG, PCX, PNG, PPM, TIFF, XBM, XPM, AutoCAD Slide, IBM-GL (HP/GL), Pic PiCTeX, box, epic, eepic, and eepicemu.
See man fig2dev for all options.
The TransFig package is available from ftp://www-epb.lbl.gov/xfig and ftp://ftp.x.org/contrib/applications/drawing_tools/transfig .
-help
-a[llow_neg_coords]
-bal[loon_delay] msec
-bol[d] font
-butt[on] font
-but_[per_row] number
-cbg color
-center
-centim[ers]
-cfg color
-deb[ug]
-dep[th]
-dont_a[llow_neg_coords]
-dontshowb[alloons]
-dontshowl[engths]
-dont_s[how_zero_lines]
-dontsw[itchcmap]
-exportL[anguage] language
set n to length of longest line eepicemu LaTeX picture + eepicemu macros HEADER Name Language DATA box LaTeX box (figure boundary) latex LaTeX picture epic LaTeX picture + epic macros eepic LaTeX picture + eepic macros eepicemu LaTeX picture + eepicemu macros pictex PiCTeX macros ibmgl IBMGL (or HPGL) eps Encapuslated PostScript ps PostScript pdf PDF (Portable Document Format) pstex Combined PS/LaTeX (both PS and LaTeX parts) textyl Textyl special commands tpic TPIC pic PIC mf MF (MetaFont) cgm CGM (Computer MetaGraphics) tk Tk (of the tcl/tk fame) sld (AutoCad slide) pcx PCX png PNG gif GIF jpeg JPEG (JFIF) tiff TIFF ppm PPM (portable pixmap package) xbm X11 Bitmap xpm X11 Pixmap (XPM3 package)
-export_m[argin] width
-fli[pvisualhints]
-flu[shleft]
-geom[etry] [WxH][+X+Y]
-hidd[entext]
-hide[depthmanager]
-iconG[eometry] +X+Y
-im[age_editor] editor
-inc[hes] (or-imperial)
-internalBW width
-jpeg[_quality] quality
-k[eyFile] compose-key-file
-lan[dscape]
-lat[exfonts]
-le[ft]
-li[brary_dir] directory
-mag[nification] mag
-max[_image_colors] numcols
-me[tric]
-mo[nochrome]
-mu[ltiple]
-nor[mal] font
-nos[calablefonts]
-not[rack]
-pag[eborder] color
-pap[er_size] size
Letter (8.5" x 11"), Legal (8.5" x 14"), Ledger ( 17" x 11"), Tabloid ( 11" x 17"), A (8.5" x 11"), B ( 11" x 17"), C ( 17" x 22"), D ( 22" x 34"), E ( 34" x 44"), A4 (21 cm x 29.7cm), A3 (29.7cm x 42 cm), A2 (42 cm x 59.4cm), A1 (59.4cm x 84.1 cm), A0 (84.1 cm x 118.9cm), B5 (18.2cm x 25.7cm)
Note that this doesn't affect the size of the drawing canvas. Use the -pheight and -pwidth options for that.
-ph[eight] height
-po[rtrait]
-pw[idth] width
-righ[t]
-rigi[d]
-ru[lerthick]
-sc[alablefonts]
-showa[llbuttons]
-showb[alloons]
-showd[epthmanager]
-showl[engths]
-showp[ageborder]
-show_[zero_lines]
-si[ngle]
-spec[ialtext]
-spel[lcheckcommand] command
-spinner_d[elay] msec
-spinner_r[rate] msec
-startfi[llstyle] stylenumber
-startfo[ntsize] pointsize
-startg[ridmode] modenumber
-startla[texFont] font
-startli[newidth] width
-startpo[snmode] modenumber
-startp[sFont] font
-startt[extstep] stepsize
-ta[blet]
-track
-tran[sparent_color] color_number
-up[date] file [ file ... ]
-users[cale] scale
-useru[nit] units
-visual visualname
-zoom zoomscale
set n to length of table line Name Class Type Default Command-line HEADER Name Class Type Default Command-line equivalent BODY allow_neg_coords NegativeCoordinates boolean on -allow_neg_coords, -dont_allow_neg_coords, balloon_delay balloonDelay integer 500 (ms) -balloon_delay boldFont Font string 8x13bold -bold but_per_row But_per_row int 2 -but_per_row buttonFont Font string 6x13 -button canvasbackground Background string white -cbg canvasforeground Foreground string black -cfg debug Debug boolean off -debug depth Depth integer * -depth dont_switch_cmap Dont_switch_cmap boolean false -dontswitchcmap exportLanguage ExportLanguage string eps -exportLanguage export_margin Margin integer 0 -export_margin flipvisualhints Hints boolean false -flipvisualhints flushleft FlushLeft boolean false -flushleft image_editor ImageEditor string xv -image_editor inches Inches boolean true -inches, -centimeters, -imperial, -metric internalborderwidth InternalBorderWidth integer 1 -internalBW justify Justify boolean false -left (false), -right (true) jpeg_quality Quality integer 75 -jpeg_quality keyFile KeyFile string CompKeyDB -keyFile landscape Orientation boolean true -Landscape, -Portrait latexfonts Latexfonts boolean off -latexfonts library_dir Directory string ~/xfiglib -library_dir magnification Magnification float 100 -magnification max_image_colors Max_image_colors integer 64 -max_image_colors monochrome Monochrome boolean false -monochrome multiple Multiple boolean false -multiple normalFont Font string 6x13 -normal pageborder Color string color -pageborder page_size Pagesize string Letter/A4 -page_size pheight Height float 8(9.5) -pheight pwidth Width float 10(8) -pwidth rulerthick RulerThick integer 24 -rulerthick scalablefonts ScalableFonts boolean true -scalablefonts showallbuttons ShowAllButtons boolean false -showallbuttons showballoons ShowBalloons boolean true -showballoons, -dontshowballoons showdepthmanager Hints boolean true -showdepthmanager, -dontshowdepthmanager showpageborder Debug boolean true -showpageborder, -dontshowpageborder showlengths ShowLengths boolean false -showlengths, -dontshowlengths show_zero_lines Axis boolean true -show_zero_lines, -dont_show_zero_lines single Single boolean true -single specialtext SpecialText boolean false -specialtext spellcheckcommand spellCheckCommand string spell %s -spellcheckcommand spinner_delay spinnerDelay integer 500 (ms) -spinner_delay spinner_rate spinnerRate integer 100 (ms) -spinner_rate startfillstyle StartFillStyle integer 0 -startfillstyle startfontsize StartFontSize float 12 -startfontsize startgridmode StartGridMode integer 0 -startgridmode startlatexFont StartlatexFont string Default -startlatexFont startlinewidth StartLineWidth integer 1 -startlinewidth startposnmode StartPosnMode integer 1 -startposnmode startpsFont StartpsFont string Times-Roman -startpsFont starttextstep StartTextStep float 1.2 -starttextstep trackCursor Track boolean on -track, -notrack transparent_color Transparent integer -2 (none) -transparent_color userscale UserScale float 1.0 -userscale userunit UserUnit string in(cm) -userunit visual Visual string * -visual zoom Zoom float 1.0 -zoom * Default visual and depth depend on the X server. Use xdpyinfo to see what visuals and depths are supported.BUGS and RESTRICTIONS
Please send bug reports, fixes, new features etc. to:
xfig-bugs@epb1.lbl.gov (Brian V. Smith)When reporting a bug, please first check if the problem is mentioned in the FAQ section of the HTML files (xfig Help menu).
If it is not mentioned there, be sure to report the operating system you are using (e.g. SunOS 4.1.3), type of X server and version (OpenWindows 3, X11R6.4, XFree86 3.2.2, etc) and color depth (e.g. 8bpp, 16bpp), and most importantly the version of xfig or fig2dev that is having the problem.
It is also VERY useful to me if you can provide a stack trace from a debugger such as gdb, dbx, ups, etc, if the bug causes xfig to crash.
Because of the difference of some fonts in some X servers and the PostScript fonts on printers, text alignment can be problematic.
Not all operations employ smart redrawing of objects which are altered as a by product of the operation. You may need to use Redraw in these cases.
Some servers do not allow bitmaps/pixmaps taller than the screen height or wider than the screen width. That is why there is a limit on the width of the top ruler and height of the side ruler. If you need wider/taller rulers AND your server allows bigger pixmaps, you may define MAX_TOPRULER_WD and/or MAX_SIDERULER_HT in your Imakefile in the DEFINES line. For example, to have a maximum top ruler width of 1160 pixels, add -DMAX_TOPRULER_WD=1160 to your DEFINES line in the Imakefile.
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 Redraw after the operation is complete.
When zoomed very large, the length of dashes in dashed lines will top out at 255 pixels long. This is due to a restriction in X that the dash list is defined by char (255 pixels maximum for a dash). The figure will print correctly, however.
When you do a copy/rotate with multiple copies, only the creation of the last object can be undone with the Undo button.
Modifications to text using the popup search/update/replace/spell check panel cannot be undone.
See the README file for troubleshooting.
See Also
fig2dev(1) (TransFig package)
gs(1) (Ghostscript PostScript previewer)
Acknowledgement
(From the original author, Supoj Sutanthavibul): Many thanks goes to Professor Donald E. Fussell who inspired the creation of this tool.(From current maintainer Brian Smith): Thanks to all the users who have contributed to xfig, especially Paul King who, besides adding many features, revamped the look and feel which became version 2.1.
Copyright
Original Copyright (c) 1985 by Supoj Sutanthavibul Parts Copyright (c) 1994-1999 by Brian V. Smith Parts Copyright (c) 1991 by Paul King Other Copyrights may be found in various filesAny party obtaining a copy of these files is granted, free of charge, a full and unrestricted irrevocable, world-wide, paid up, royalty-free, nonexclusive right and license to deal in this software and documentation files (the "Software"), including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons who receive copies from any such party to do so, with the only requirement being that this copyright notice remain intact.
Note that although I work at Lawrence Berkeley National Laboratory (LBNL) I don't speak for LBNL nor do I represent LBNL 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 NATIONAL 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.
PostScript is a trademark of Adobe Systems Incorporated.
Parts Copyright (C) 1989 by Jef Poskanzer. Copyright notice for pbmplus code: Permission to use, copy, modify, and distribute this software and its documentation for any purpose and without fee is hereby granted, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation. This software is provided ``as is'' without express or implied warranty.
Files
- CompKeyDB
- Data base of compose (meta) key sequences for 8-bit characters. Must be installed in $(XFIGLIBDIR) with ``make install'', or may be specified with command line option -keyFile or X toolkit resource keyFile. See the Imakefile.
- /usr/lib/X11/xfig
- This directory contains the html documentation, the above mentioned CompKeyDB file, and a directory of libraries containing Fig objects such as electrical symbols, logic symbols, etc.
- Fig.ad and Fig-color.ad
- Application defaults files which are automatically installed in the system app-defaults directory with the make install command.
- Doc/FORMAT3.2
- Description of Fig file format.
- README
- Installation instructions and troubleshooting.
- CHANGES
- Description of bug fixes/new features.
Authors
Many people have contributed to xfig. Here is a list of the people who have contributed the most (in chronological order):Version 1:
Original author:
Supoj Sutanthavibul, University of Texas at AustinThe LaTeX line drawing modes were contributed by:
Frank Schmuck, Cornell UniversityOriginal X11 port by:
Ken Yap, RochesterVariable window sizes, cleanup of X11 port, right hand side panel:
Dana Chee, BellcoreCleanup of color port to X11 by:
John T. Kohl, MITVersion 2.0:
Area fill, multiple line thicknesses, multiple fonts and font sizes, bottom panel, line style/thickness, (and anything else that wasn't written by the others) by:
Brian Smith
(standard disclaimer applies)
(bvsmith@lbl.gov)Popup change-object menu by:
Jon Tombs
Frank SchmuckZooming and panning functions, shift key select mechanism by:
Dieter Pellkofer
Henning SpruthDepth feature by:
Mike LutzCut/Paste by:
Tom TkacikVersion 2.1:
Indicator panel, file menu popup, print menu popup, panning with rulers, mouse function window, regular polygon, rubberbanding of circles/ellipses, filled splines on canvas, dashed/dotted splines on canvas, update button, arbitrary angle rotation of objects, alignment in compound, object scaling, constrained copy/move, corner markers for compound, context sensitive corner markers, smarter redraw, undo for compound and point move for boxes, cancel object creation, point positioning to three resolutions, TransFig scalable text, hidden text, special text, save of figure on crash by:
Paul King (king@cs.uq.oz.au)
with help from:
Brian Smith and Micah Beck (beck@cs.utk.edu)Encapsulated PostScript importing by:
Brian BoyterPan/zoom with ctrl key/mouse by:
Henning SpruthInternational characters by:
Herve SoulardDirectory Browser based on XDir by:
Win Treese, Digital Equipment CorporationRotated ellipses by:
James Tough, Dept. of Computer Science, Heriot-Watt University, ScotlandRotated text from the xvertext package by:
Alan Richardson, Space Science Centre, School of MAPS, University of SussexPopup scale menu and dynamic switching between inches and cm by:
Paul King (king@cs.uq.oz.au)Extensive man page formatting revisions by:
David W. SandersonDisplay Postscript code for IBM RS/6000 by:
Dave Hale (dhale@green.mines.colorado.edu)Version 3.0:
New arrowhead types, separate pen/fill colors, new file protocol, more colors with extended color popup panel, new arc style, new fill patterns (bricks, etc), new line join and cap styles, export offset and file load offset, XPM import, XBM import and export (and anything else that wasn't written by the others) by:
Brian Smith
(Note: the color popup panel was based on xcoloredit by Richard Hesketh)
GIF header reading code by:
David Koblas from the giftoppm part of the pbmplus packageXPM export code (using XPM3 libraries) by:
Karel van Houten (K.H.C.vanHouten@research.ptt.nl)Higher figure resolution (1200dpi) by:
Ross Martin (martin@trcsun3.eas.asu.edu)Color quantization using neural network by:
Anthony Dekker (dekker@ACM.org)
[NEUQUANT Neural-Net quantization algorithm by Anthony Dekker, 1994. See ``Kohonen neural networks for optimal colour quantization'' in ``Network: Computation in Neural Systems'' Vol. 5 (1994) pp 351-367. for a discussion of the algorithm.]Floyd-Steinberg algorithm for dithering color images on monochrome displays lifted from the Pbmplus package by Jef Poskanser.
rotate/flip objects around/about selected anchor point and multiple copies of objects by:
Uwe Bonnes (bon@lte.e-technik.uni-erlangen.de)Input tablet extension by:
Greg LaCoste (greg@seismo.do.usbr.gov)Version 3.1:
The only difference between protocol version 3.0 and version 3.1 is that the position of the ``magnet'' has been shifted by 14 fig units. In the 2.1 and older versions of xfig the grid was in multiples of 5 fig units, but they were on intervals 4, 9, 14, 19, etc. When version 3.0 was created, coordinates were simply multiplied by the ratio of the resolutions (1200/80 = 15) so values like 4 became 60 instead of 74 ((4+1)*15 - 1).The JPEG import/export code uses the Independent JPEG Group software (see jpeg/README for details)
Image browser, editor and screen capture features by:
Jim Daley (jdaley@cix.compulink.co.uk)Version 3.2:
The changes to the version 3.2 file protocol are the addition of the paper size, print/export magnification, single/multiple page indicator and a transparent color name used for GIF export to the header of the file.
The other difference in the version 3.2 protocol is the mathematical model used for splines. The new version uses X-splines which allows the user to mix interpolation and approximation points in a same curve. More precisely, it means that an X-spline curve is neither an interpolated spline nor an approximated one, it is BOTH (the behaviour of each point is controlled by one single parameter called ``shape factor''). For additional information about X-splines, see:"X-Splines: A Spline Model Designed for the End User"
by C. Blanc and C. Schlick, Proceedings of SIGGRAPH'95
http://dept-info.labri.u-bordeaux.fr/~schlick/DOC/sig1.html
Caveat: Because previous spline models (quadratic B-splines and Bezier with hidden points) are no longer supported, curves that are present in version 3.1 and older files are automatically converted to X-splines. This translation is only an approximation process. It means that the converted curves are not exactly the same as the original ones. Though they are usually very close, some hand-fitting may be needed in some pathological cases.
Inclusion of X-splines by:
Carole Blanc (blanc@labri.u-bordeaux.fr)
Christophe Schlick (schlick@labri.u-bordeaux.fr)
Note: the initial implementation was done by C. Feuille, S. Grosbois, L. Maziere and L. Minihot as a student practice (Universite Bordeaux, France).Open/close compound feature written by
Bill Taylor (bill@mainstream.com)Library feature written by
Stephane Mancini (mancini@elecsrv.enst.fr) (object preview by Brian V. Smith)The library objects in the Electrical and Logic libraries were done by
Peter Hiscocks (phiscock@ee.ryerson.ca)The library objects in the Computer, Networks, and Hospital-Equipment libraries were extracted from the clipart example files by
Bill Chimiak (chim@bgsm.edu)
Version 3.2.3:
Please see the CHANGES file for credits for version 3.2.3 features.
Notes
Many bug fixes/cleanups etc. by a host of faithful usersSee the CHANGES file for all the credits
The TransFig package was written by Micah Beck and is maintained by Brian Smith