xfig(1)
๐ NAME ๐
xfig โ Facility for Interactive Generation of figures under X11, Version 3.2.9a.
Yes bestie, this is the xfig(1) manual page (General Commands Manual), and it's long, so buckle up. ๐
๐ฆ SYNOPSIS ๐ฆ
xfig [options] [file]
โจ DESCRIPTION โจ
Okay so Xfig is a menu-driven tool, which is the fancy way of saying: you draw and manipulate objects interactively under the X Window System, and the menus do the heavy lifting. And if you hand it a file? That's the name of a file to be edited. Easy. ๐
The bulk of the documentation for xfig lives in an HTML-based reference guide. So either hit up the Help menu in xfig, or point your browser at /usr/share/doc/xfig/html/index.html. There are both English and Japanese versions, because we're multilingual and iconic. ๐ธ
Two-button mouse moment? If you've got a two-button mouse instead of a three-button one, hold the <Meta> key and the right button at the same time โ that does exactly what the middle button would do. No mouse left behind. ๐ซถ
Xfig is available from https://sourceforge.net/projects/mcj/.
The Fig2dev package is what gets called when you print or export output from xfig. The fig2dev program is automatically called by xfig as a back-end processor to produce various types of output:
- LaTeX
- Metafont
- PostScript or Encapsulated PostScript
- CGM and EMF (mostly used under Windows)
- tk (tcl/tk tool command language/tool kit package)
- SVG
- GIF
- JPEG
- PCX
- PNG
- PPM
- TIFF
- XBM
- XPM
- Gerber
- AutoCAD Slide
- IBM-GL (HP/GL)
- Pic and PiCTeX
And for use with TeX/LaTeX: box, epic, eepic, eepicemu, pict2e, pstricks, tikz.
See man fig2dev for all options.
The Fig2dev package is available from https://sourceforge.net/projects/mcj/.
๐ OPTIONS ๐
Time for the main character section, fr fr. Every single flag, no skips. ๐
-helpโ prints all the command-line options for xfig and then quits. Like, the whole menu. ๐-a[llownegcoords]โ lets you pan into the negative region of the canvas. This is the default, so you're already living that life. โจ-au[torefresh]โ makes xfig peek at the timestamp on the.figfile and automatically load and display it every single time it changes. Obsessed with staying updated. ๐-bal[loon_delay]msec โ makes popup information balloons wait msec milliseconds before showing up. The default is500milliseconds.-butt[on]font โ sets the font used for most buttons to font (default =6x13).-but_[per_row]number โ says how many buttons wide the mode panel should be. Super useful paired with the-pheightparameter when you're trying to shrink the canvas height for a small screen. ๐ฑ-cbgcolor โ uses color as the background color for the canvas. If you want to set the background of everything in xfig (menus, etc.), use the general-bgoption instead.-centerโ sets the print option to print the figure centered on the page. This is the default. ๐ฏ-centim[ers]โ makes centimeters the unit of choice. See also-metric.-cfgcolor โ uses color as the default color for objects. If you want to set the foreground of everything in xfig (menus, etc.), use the general-fgoption instead.-correct_font_sizeโ okay so normally,fig2devuses1/80inch for font size increments (for historical reasons, don't ask ๐ญ), instead of the more proper "points" (1/72inch) that xfig uses. This option makes xfig callfig2devwith the-Foption so it uses points (1/72inch) instead.-deb[ug]โ turns on debugging mode. Prints various debugging messages like font names etc.-dep[th]โ choose the depth of visual you want. Your server must support the desired visual and depth you picked. Usexdpyinfoto see what visuals and depths are supported. See also the-visualoption.-donta[llownegcoords]โ does not allow panning into the negative region of the canvas. The default is to allow panning in the negative region.-dontshowb[alloons]โ stops xfig from popping up the information balloons. See also-showballoons.-dontshowl[engths]โ don't show lengths of lines as they're being drawn. This is the default.-dontshowz[erolines]โ don't show axis zero lines on the canvas. The default is to show them.-dontsw[itchcmap]โ prevents xfig from switching to a private colormap if there aren't enough colors available in the default colormap. See also-max_image_colors.-exportL[anguage]language โ specifies the default language used when exporting a fig file. The choices are:
Vector formats:
psโ PostScriptepsโ Encapsulated PostScriptpdfโ PDF (Portable Document Format)boxโ LaTeX box (figure boundary)latexโ LaTeX picturepict2eโ LaTeX picture + pict2e macrostikzโ LaTeX picture + tikz macrosepicโ LaTeX picture + epic macroseepicโ LaTeX picture + eepic macroseepicemuโ LaTeX picture + eepicemu macrospstexโ Combined PS/LaTeX (both PS and LaTeX parts)pdftexโ Combined PDF/LaTeX (both PDF and LaTeX parts)pspdftexโ Combined PS/PDF/LaTeX (three parts)pictexโ PiCTeX macroscgmโ Computer Graphics Meta fileemfโ Enhanced Meta filedxfโ Drawing Interchange formatgbxโ Gerber (RS-247-X)ibmglโ HPGL/2 or IBMGLtextylโ Textyl special commandstpicโ TPICpicโ PICmfโ MF (MetaFont)mpโ MP (MetaPost)tkโ Tk (Tcl/Tk toolkit)ptkโ Perl/Tkshapeโ LaTeX shape paragraph definitionsvgโ SVG (Scalable Vector Graphics)
Bitmap formats:
gifโ GIFjpegโ JPEG (JFIF)pcxโ PCXpngโ PNGppmโ PPM (portable pixmap package)sldโ (AutoCad slide)tiffโ TIFFxbmโ X11 Bitmapxpmโ X11 Pixmap
-export_m[argin]width โ sets the size of the border margin around the figure when exporting to bitmap, PostScript, Encapsulated PostScript, or HTML MAP formats. This is in units of points (1/72th inch). The default is0.-fli[pvisualhints]โ flips the left/right mouse indicator messages for mice whose buttons have been switched. The default is to NOT flip the messages.-flu[shleft]โ sets the print option to print the figure flush left. The default is to center the figure on the page.-free[hand_resolution]resolution โ sets the resolution of the freehand drawing mode to resolution pixels. Basically: how many pixels the mouse has to move before xfig adds another point to the object you're drawing. ๐๏ธ-geom[etry] [WxH][+X+Y]โ you can use the-geometryoption or resource to size and/or position the xfig window, OR you can use-pwidthand/or-pheightto specify the canvas size in inches or centimeters. Heads up: if you use-geomto make the xfig window smaller than the default, you may have to use the-but_per_rowoption to tell xfig to put 3 or 4 buttons per row on the left mode panel. ๐ช-gh[ostscript]ghostscript executable โ specify the name or path to the ghostscript executable. The default isgs. This version of xfig links into the ghostscript library, so the ghostscript executable is not needed โ it's only called as a fallback-solution. ๐-grid_c[olor]color โ draws the grid on the canvas in this color (default:red).-grid_u[nit]unit โ only used when in inches mode, to choose between showing fractions or decimal inches in the rulers and grid. Any of the following may be used to force decimal inches:"ten","tenth","10,"1/10". If any other value is used for this option, the rulers will show1/16inch divisions.-hidd[entext]โ starts xfig with the hidden text mode for text objects. The Hidden attribute is used for figures that'll be used with LaTeX, and it applies only to the display of the document in xfig. It means the text itself isn't shown onscreen โ only the string<text>. The whole point is to keep long sequences of LaTeX formatting commands from making the screen messy and hard to read. The default for the Hidden flag is off. ๐-dontshowd[epthmanager]โ hides the depth manager panel. The default is to show the panel.-icon_[view]โ shows the library objects as icons. This is the default. The other mode is-list_view. ๐-iconG[eometry] +X+Yโ specifies the position for the icon.-ima[ge_editor]editor โ specify the bitmap editor to use when the "Edit Image" button is pressed in the Picture Object panel.-inc[hes](or-imp[erial]) โ makes inches the unit of choice. This is the default.-ins[tallowncmap]โ install own colormap. Normally, xfig uses the current colormap.-internalBWwidth โ uses lines of width width between all buttons and panels (default1).-jpeg[_quality]quality โ sets the quality factor for exporting to the jpeg format. The default is75.-k[eyFile]compose-key-file โ uses compose-key-file instead ofCompKeyDBfor the compose (meta) key database. Details, bestie, because they matter:- If there are no
/s in the name, the file must reside in the xfig library directory,$XFIGLIBDIR, usually/usr/local/lib/X11/xfig. - If there are any
/s in the name, it is taken as is (not relative to$XFIGLIBDIR). - If there is a leading
~/in the string, then the~is expanded to the user's home directory. ๐
- If there are no
-lan[dscape]โ makes xfig come up in landscape mode (10.5" x 8"). This is the default; however, since the orientation is stored with Fig files, when you load a Fig file the orientation will change as required. This is only true for files of version3.0or higher. See also-portrait.-lat[exfonts]โ starts xfig with LaTeX font selection. Normally, the PostScript fonts are available as the default. This flag selects the LaTeX fonts to start. โ๏ธ-le[ft]โ changes the position of the side panel window to the left of the canvas window. This is the default.-library_d[ir] [directory | file]โ okay so this tells xfig where the Fig object libraries live, either a directory or a file containing directory names. And bestie, there may be sub-directories there and sub-sub-directories, etc. ๐-library_i[con_size] sizeโ sets how big the icons shown for library objects are. The default is60pixels, with the minimum being40and the maximum being120. โจ-lis[t_view]โ show the library objects as a list of names. The default mode is-icon_view. ๐-mag[nification] magโ set export and print magnification in%. ๐ฅ-max[_image_colors] numcolsโ limit the number of colors used for imported images tonumcols(default64). ๐-me[tric]โ make centimeters the unit of choice. The option-centimetersmay also be used. Fig files saved in metric mode are, due to rounding issues, scaled down by about5%when saved, and scaled up when read in. Using-inchesor-imperialavoids the scaling. ๐ซถ
After xfig is started you may change the units from metric to imperial or vice versa from a popup menu available by pressing mouse button 3 in the units box where the two rulers meet.
-mo[nochrome]โ use black and white only. ๐ค๐ค-mu[ltiple]โ sets multiple page mode for print or export. See also-single. ๐๐-nointernationalโ switch off international support. This can be done if text objects only contain ASCII characters. (Characters beyond ASCII are interpreted as Latin 1). If there are error messages when starting xfig regarding"missing charsets in string to fontset conversion", setting this option avoids the error. ๐ญ-noo[verlap]โ when exporting in multiple page mode, causes no overlap from page to page. This is the default. See also-overlap. ๐ซ-nor[mal] fontโ cause the font used for the message window to befont. This font is also used on the canvas when the global settings"Show line lengths"or"Show vertex numbers"are true (default =6x13). ๐ค-nosp[lash]โ don't show the startup splash screen. The default is to show it (-splash). ๐-not[rack]โ turn off cursor (mouse) tracking arrows. ๐ฑ๏ธ๐ซ-nowrite_bakโ when saving a drawing into an existing.figfile xfig will first rename that file by appending".bak"to the name. This option disables this feature. ๐พ-ov[erlap]โ when exporting in multiple page mode, causes overlap from page to page of about10%. See also-nooverlap. ๐-pag[eborder] colorโ draw the page border on the canvas in thiscolor(default light blue). The page border is turned on by the-showpageborderoption (resourceFig.showpageborder), and shows the edges of the current export paper size. ๐จ-pap[er_size] sizeโ set the initial paper size for Export and Print. Choices are:letterโ Letter,8.5in x 11inlegalโ Legal,8.5in x 14intabloidโ Tabloid,17in x 11inaโ ANSI A,8.5in x 11inbโ ANSI B,11in x 17incโ ANSI C,17in x 22indโ ANSI D,22in x 34ineโ ANSI E,34in x 44ina9โ ISO A9,37mm x 52mma8โ ISO A8,52mm x 74mma7โ ISO A7,74mm x 105mma6โ ISO A6,105mm x 148mma5โ ISO A5,148mm x 210mma4โ ISO A4,210mm x 297mma3โ ISO A3,297mm x 420mma2โ ISO A2,420mm x 594mma1โ ISO A1,594mm x 840mma0โ ISO A0,840mm x 1189mmb10โ JIS B10,32mm x 45mmb9โ JIS B9,45mm x 64mmb8โ JIS B8,64mm x 91mmb7โ JIS B7,91mm x 128mmb6โ JIS B6,128mm x 182mmb5โ JIS B5,182mm x 257mmb4โ JIS B4,257mm x 364mmb3โ JIS B3,364mm x 515mmb2โ JIS B2,515mm x 728mmb1โ JIS B1,728mm x 1030mmb0โ JIS B0,1030mm x 1456mm
Note that this doesn't affect the size of the drawing canvas. Use the -pheight and -pwidth options for that.
-ph[eight] heightโ make the xfig canvas heightheighthigh (whereheightis eithercmorin, depending on the-metricsetting). ๐-po[rtrait]โ make xfig come up in portrait mode (8.5" x 9"). See note about landscape mode. ๐ผ๏ธ-pw[idth] widthโ make the xfig canvas widthwidthwide (wherewidthis eithercmorin, depending on the-metricsetting). ๐-righ[t]โ change the position of the side panel window to the right of the canvas window (default: left). โก๏ธ-rigi[d]โ start xfig with the rigid text mode for text objects. The Rigid attribute forces text to remain the same size even if inside a compound object that is scaled up or down. The default is off. ๐-ru[lerthick]โ set the height(width) of the top(side) rulers in pixels. The default (and minimum) is24. ๐-scale_factor scaleโ scale every figure read in by this value. This is useful in conjunction with the-updateoption to do batch scaling of figures. ๐-showa[llbuttons]โ show all the xfig indicator buttons instead of only those relevant to the current drawing mode. Normally, the buttons line width, area-fill, grid mode, text size, etc. are only visible when they are relevant to the current drawing mode. The-showallbuttonsoption 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. ๐-showb[alloons]โ forces xfig to pop up the information balloons when the mouse passws over a button. This is the default. See also-dontshowballoons. ๐-showd[epthmanager]โ show the depth manager panel. This panel lets one show or hide objects at various depths. This is the default. ๐-showl[engths]โ makes xfig show the lengths of lines being drawn, in red text near the line itself. Also, when points are moved or added. In addition, imagine a triangle formed with the line segment as the hypotenuse, and a vertical and horizontal line forming the other two sides. These lines and their lengths are also drawn in red as the point is moved or added. This mode is ignored when drawing in freehand mode. This flag may be toggled by pressing<Meta>i(default). ๐บ-shown[ums]โ with this option, xfig will draw all objects with a red number next to each vertex. This is generally only useful for debugging. ๐ข-showp[ageborder]โ makes xfig show the border of the current paper size in the color specified by the-pageborderoption (default: light blue). ๐ผ๏ธ-showz[erolines]โ show axis zero lines on the canvas. This is the default. ๐-si[ngle]โ sets single page mode for print or export. This is the default. See also-multiple. ๐-sm[ooth_factor] factorโ enable smoothing when exporting to the bitmap formats (e.g. GIF, PNG, etc.). The allowed values are0(no smoothing),2or4(most smoothing). This parameter is passed to ghostscript in the-dTextAlphaBits-dGraphicsAlphaBitsoptions to smooth the figure. โจ-spec[ialtext]โ start xfig with the TeX text mode for text objects. This means that characters that have a special meaning to TeX/LaTeX, e.g.,'$'or'\', are not quoted but left untouched in the text string. This is most useful for writing LaTeX equations. If this flag is not set, then the backslash character'\'is changed to the\backslashcommand, a brace'{'is turned into a brace command\{, etc. ๐งฎ-spel[lcheckcommand] commandโ usecommandfor the external spell checking program when using the spell check/search/replace popup. The stringcommandshould include the string"%s"which is replaced by a temporary filename. Default is"spell %s". ๐-spinner_d[elay] msecโ the delay (in milliseconds) before the spinner will automatically count up or down when the button is pressed. Spinners are the (numeric) text widgets with an up- and down-arrow, which when clicked, cause the value to be incremented/decremented. The default is500milliseconds. โณ-spinner_r[rate] msecโ the rate (in milliseconds) at which the spinner will count when the up- or down-arrow is pressed. โฑ๏ธ-startfi[llstyle] stylenumberโ set the starting fill style for area fill (-1to21). ๐จ-startfo[ntsize] pointsizeโ set the default font size for text objects (default =12pt). ๐ค-startg[ridmode] modenumberโ set the starting grid mode (0to3). Mode0is no grid. In imperial (inches) mode, grid mode1is1/4inch, mode2is1/2inch and mode3is1inch. In metric mode, grid mode1is2mm, mode2is5mmand mode3is1cm. ๐-startla[texFont] fontโ set the starting font name for LaTeX fonts. ๐งฎ-startli[newidth] widthโ set the starting line width. โ๏ธ-startpo[snmode] modenumberโ set the starting point positioning mode (0to4). In imperial (inches) mode, positioning mode0is"any", mode1is1/16inch, mode2is1/4inch, mode3is1/2inch and mode4is1inch. In metric mode, mode0is"any", mode1is1mm, mode2is5mm, mode3is10mmand mode4is20mm. ๐-startp[sFont] fontโ set the starting font name for PostScript fonts. ๐จ๏ธ-startt[extstep] stepsizeโ set the starting text step. ๐-ta[blet]โ specifies that xfig should use the input tablet instead of the mouse for drawing. You must have the XInputExtension in your X server and an input tablet for this to work. ๐๏ธ-trackโ turn on cursor (mouse) tracking arrows (default). ๐ฑ๏ธ-tran[sparent_color] color_numberโ make the transparent color for GIF exportcolor_number. This number is the color number according to the xfig color panel, starting at0(black) and ending at31(gold), or may be a user-defined color number, which is32or higher. ๐-updatefile [file...] โ runs xfig in an update mode, bestie. It reads each Fig file you dropped on the command line and writes it right back out to the original file, in whatever the current file format is for the version of xfig you're running. Your original Fig file doesn't get yeeted though โ it's preserved with a.baksuffix tacked onto the name. ๐ซถ In this mode xfig exits as soon as it's done, and no window opens at all. It's giving "silent makeover", periodt.-users[cale]scale โ sets the multiplier for displayed line lengths and all that. This factor gets multiplied by the actual length, radius, or diameter of the object you're currently drawing on the canvas. It's so useful for scale drawings, like when 1 inch = 1 foot (that'suserscale = 12.0) or 1cm = 1m (that'suserscale = 100.0). ๐โจ-useru[nit]units โ this units string gets printed alongside the length info while you're drawing objects. Example time: ifuserscale = 1.0anduserunit = ft, then a line that's 3 inches long on the canvas would show up aslength = 3 ftwhile you're drawing it. ๐
Once xfig is up and running, you can change userscale and userunit from a popup menu โ just press mouse button 3 in the units box, the one where the two rulers meet. iykyk.
-visualvisualname โ uses visualname as the visual for xfig. The names areTrueColor(case is not important, bestie),StaticColor,DirectColor,StaticGray,GrayScaleandPseudoColor. Unless you specify this, xfig just uses the default visual. Your server must support the visual you want though โ no cap. Usexdpyinfoto see what visuals and depths are supported, and go peek at the-depthoption too. ๐-write_bakโ when saving a drawing into an existing.figfile xfig will first rename that file by appending
okay so the manpage literally just. stops there ๐ I'm not making up the rest, that's genuinely where the sentence ends. Iconic of it, honestly.
-zoomzoomscale โ sets the starting zoom scale. That's it, that's the whole vibe. ๐
๐ซ X RESOURCES and DEFAULTS ๐ซ
The overall widget name(Class) is xfig(Fig). These resources correspond to the command line arguments โ like, they're the same thing but in resource form, fr fr:
allownegcoordsโ boolean, defaulttrue; command-line equivalent:-allownegcoords(true),-dontallownegcoords(false)autorefreshโ boolean, defaultfalse; command-line equivalent:-autorefreshaxislinesโ string, defaultpink; command-line equivalent:-axislinesballoon_delayโ integer, default500(ms); command-line equivalent:-balloon_delaybut_per_rowโ integer, default2; command-line equivalent:-but_per_rowbuttonFontโ string, default6x13; command-line equivalent:-buttoncanvasbackgroundโ string, defaultwhite; command-line equivalent:-cbgcanvasforegroundโ string, defaultblack; command-line equivalent:-cfgcorrectfontsizeโ boolean, defaultfalse; command-line equivalent:-correctfontsizedebugโ boolean, defaultfalse; command-line equivalent:-debugdepthโ integer, default*; command-line equivalent:-depthdontswitchcmapโ boolean, defaultfalse; command-line equivalent:-dontswitchcmapexportLanguageโ string, defaulteps; command-line equivalent:-exportLanguageexport_marginโ integer, default0; command-line equivalent:-export_marginflipvisualhintsโ boolean, defaultfalse; command-line equivalent:-flipvisualhintsflushleftโ boolean, defaultfalse; command-line equivalent:-flushleft(true),-center(false)freehand_resolutionโ integer, default25; command-line equivalent:-freehand_resolutiongrid_colorโ string, defaultblack; command-line equivalent:-grid_colorgrid_unitโ string, default1/16(inch) or0.1(metric); command-line equivalent:-grid_unithiddentextโ boolean, defaultfalse; command-line equivalent:-hiddentexticon_viewโ boolean, defaulttrue; command-line equivalent:-icon_view(true),-list_view(false)image_editorโ string, defaultxv; command-line equivalent:-image_editorinchesโ boolean, defaulttrue; command-line equivalent:-inches(true),-imperial(true),-centimeters(false),-metric(false)installowncmapโ boolean, defaultfalse; command-line equivalent:-installowncmapinternalborderwidthโ integer, default1; command-line equivalent:-internalBWinternationalโ boolean, defaulttrue; command-line equivalent:-international(true),-nointernational(false)jpeg_qualityโ integer, default75; command-line equivalent:-jpeg_qualityjustifyโ boolean, defaultfalse; command-line equivalent:-left(false),-right(true)keyFileโ string, defaultCompKeyDB; command-line equivalent:-keyFilelandscapeโ boolean, defaulttrue; command-line equivalent:-Landscape(true),-landscape(true),-Portrait(false),-portrait(false)latexfontsโ boolean, defaultfalse; command-line equivalent:-latexfontslibrary_dirโ string, default~/xfiglib; command-line equivalent:-library_dirmagnificationโ float, default100; command-line equivalent:-magnificationmax_image_colorsโ integer, default64; command-line equivalent:-max_image_colorsmonochromeโ boolean, defaultfalse; command-line equivalent:-monochromemultipleโ boolean, defaultfalse; command-line equivalent:-multiplenormalFontโ string, default6x13; command-line equivalent:-normaloverlapโ boolean, defaulttrue; command-line equivalent:-overlap(true),-nooverlap(false)pageborderโ string, defaultlightblue; command-line equivalent:-pageborderpaper_sizeโ string, defaultLetter(inch) orA4(metric); command-line equivalent:-paper_sizepheightโ float, default8.5(landscape) or9.5(portrait); command-line equivalent:-pheightpwidthโ float, default11(landscape) or8.5(portrait); command-line equivalent:-pwidthrigidtextโ boolean, defaultfalse; command-line equivalent:-rigid(true)rulerthickโ integer, default24; command-line equivalent:-rulerthickscale_factorโ float, default1.0; command-line equivalent:-scale_factorshowallbuttonsโ boolean, defaultfalse; command-line equivalent:-showallbuttonsshowaxislinesโ boolean, defaulttrue; command-line equivalent:-showaxislines(true),-dontshowaxislines(false)showballoonsโ boolean, defaulttrue; command-line equivalent:-showballoons(true),-dontshowballoons(false)showdepthmanagerโ boolean, defaulttrue; command-line equivalent:-showdepthmanager(true),-dontshowdepthmanager(false)showlengthsโ boolean, defaultfalse; command-line equivalent:-showlengths(true),-dontshowlengths(false)shownumsโ boolean, defaultfalse; command-line equivalent:-shownums(true),-dontshownums(false)showpageborderโ boolean, defaulttrue; command-line equivalent:-showpageborder(true),-dontshowpageborder(false)singleโ boolean, defaulttrue; command-line equivalent:-singlesmooth_factorโ integer, default0; command-line equivalent:-smooth_factorspecialtextโ boolean, defaultfalse; command-line equivalent:-specialtextsplashโ boolean, defaulttrue; command-line equivalent:-splash(true),-nosplash(false)spellcheckcommandโ string, defaultspell %s; command-line equivalent:-spellcheckcommandspinner_delayโ integer, default500(ms); command-line equivalent:-spinner_delayspinner_rateโ integer, default100(ms); command-line equivalent:-spinner_ratestartfillstyleโ integer, default0; command-line equivalent:-startfillstylestartfontsizeโ float, default12; command-line equivalent:-startfontsizestartgridmodeโ integer, default0; command-line equivalent:-startgridmodestartlatexFontโ string, defaultDefault; command-line equivalent:-startlatexFontstartlinewidthโ integer, default1; command-line equivalent:-startlinewidthstartposnmodeโ integer, default1; command-line equivalent:-startposnmodestartpsFontโ string, defaultTimes-Roman; command-line equivalent:-startpsFontstarttextstepโ float, default1.2; command-line equivalent:-starttextsteptabletโ boolean, defaultfalse; command-line equivalent:-track,trackCursorโ boolean, defaulttrue; command-line equivalent:-track(true),-notrack(false)transparent_colorโ integer, default-2(none); command-line equivalent:-transparent_coloruserscaleโ float, default1.0; command-line equivalent:-userscaleuserunitโ string, defaultin(inches) orcm(metric); command-line equivalent:-userunitvisualโ string, default*; command-line equivalent:-visualwrite_bakโ boolean, defaulttrue; command-line equivalent:-write_bakzoomโ float, default1.0; command-line equivalent:-zoom
โญ tiny but important footnote, bestie: the*fordepthandvisualmeans the default visual and depth depend on your X server. Usexdpyinfoto see what visuals and depths are supported. Don't guess, go check. ๐
๐ BUGS and RESTRICTIONS ๐
Please send bug reports, fixes, new features etc. to:
thomas.loimer@tuwien.ac.at
Because of the difference of the fonts shown on the canvas and the PostScript fonts on printers, text alignment can be problematic. ๐ญ Just how it is.
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.
If the image is panned, or the xfig window is iconified and de-iconified during the middle of an operation (e.g. while drawing a line), the picture will be distorted. ๐ You can fix it with 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 โ so it's giving visual-only drama. ๐
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. No takebacks, no undo, periodt. ๐ซ
๐ SEE ALSO ๐
fig2dev(1)(Fig2dev 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 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 ยฉ๏ธ
okay bestie, legal era. read it, it's short, it's important ๐
- Original Copyright (c) 1985 by Supoj Sutanthavibul
- Parts Copyright (c) 1989-2015 by Brian V. Smith
- Parts Copyright (c) 1991 by Paul King
- Parts Copyright (c) 2016-2024 by Thomas Loimer
- Other Copyrights may be found in various files
so here's the whole license vibe, no cap, word for word:
Any 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 and/or distribute 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.
and the โจ disclaimer โจ, which is giving very serious:
THE AUTHORS 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.
also, PSA: PostScript is a trademark of Adobe Systems Incorporated. ๐
more copyright lore, this time from the pbmplus code:
- 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 ๐
the lil file map of where everything lives. bookmark this, fr fr ๐๏ธ
/usr/share/xfig/CompKeyDBโ the data base of compose (meta) key sequences for 8-bit characters. wanna use a different one? you can point at another file with the command line option-keyFileor the X toolkit resourcekeyFile. slay ๐/usr/share/doc/xfig/htmlโ this directory contains the html documentation. it's giving "read the docs" energy, as you should ๐/usr/share/doc/xfig/FORMAT3.2โ description of Fig file format. yes bestie, the actual format spec ๐ซถ/usr/share/xfig/Librariesโ this directory contains libraries of Fig objects such as electrical symbols, logic symbols, etc. drag-and-drop icons but make it 1990s โจ/usr/share/X11/app-defaults/Figโ application defaults file. this is where the X resources live ๐/usr/share/applications/org.xfig.xfig.desktopโ desktop entry file. it's how your launcher finds her ๐/usr/share/metainfo/org.xfig.xfig.metainfo.xmlโ appstream metadata. software-center lore ๐ธ/usr/share/pixmaps/xfig.pngโ desktop icon. the face card. the moment. ๐
๐ AUTHORS ๐
many people have contributed to xfig. here is a list of the people who have contributed the most (in chronological order). this is the group chat hall of fame, genuinely iconic ๐
Version 1
- Original author: Supoj Sutanthavibul, University of Texas at Austin
- The LaTeX line drawing modes were contributed by: Frank Schmuck, Cornell University
- Original X11 port by: Ken Yap, Rochester
- Variable window sizes, cleanup of X11 port, right hand side panel: Dana Chee, Bellcore
- Cleanup of color port to X11 by: John T. Kohl, MIT
Version 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 Schmuck
- Zooming and panning functions, shift key select mechanism by: Dieter Pellkofer, Henning Spruth
- Depth feature by: Mike Lutz
- Cut/Paste by: Tom Tkacik
Version 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 Boyter
- Pan/zoom with ctrl key/mouse by: Henning Spruth
- International characters by: Herve Soulard
- Directory Browser based on XDir by: Win Treese, Digital Equipment Corporation
- Rotated ellipses by: James Tough, Dept. of Computer Science, Heriot-Watt University, Scotland
- Rotated text from the xvertext package by: Alan Richardson, Space Science Centre, School of MAPS, University of Sussex
- Popup 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. Sanderson
- Display 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 package
- XPM 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
bestie, the lore here is so specific and i love it:
- 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 math did math things
- The JPEG import/export code uses the Independent JPEG Group software (see
jpeg/READMEfor 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 and newer
- Please see the
CHANGESfile for credits for newer releases.
๐ NOTES ๐
- Many bug fixes/cleanups etc. by a host of faithful users. ๐ซถ
- See the
CHANGESfile for all the credits. - The Fig2dev package was written by Micah Beck and is maintained by Thomas Loimer.
and that's the whole page bestie, you read the entire thing, main character behavior fr fr ๐
this edition is from Xfig 3.2.9a, dated Dec 2024, and it's page xfig(1) โ go forth and draw, you ate that โจ๐ฆ๐ธ๐
๐ฆ where this page comes from
- alpine 3.24: xfig-doc 3.2.9a-r1 ยท Xfig
- debian trixie: xfig 1:3.2.9a-3 ยท MIT~Xfig
- ubuntu questing: xfig 1:3.2.9a-4
- ubuntu resolute: xfig 1:3.2.9a-5 ยท MIT~Xfig
- ubuntu stonking: xfig 1:3.2.9a-5 ยท MIT~Xfig
- Copyright (c) 1985-1988 by Supoj Sutanthavibul
- Copyright (c) 1989-2015 by Brian V. Smith
- Copyright (c) 1991 by Paul King
- Copyright (c) 2016-2024 by Thomas Loimer
- Copyright (C) 1989 by Jef Poskanzer
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms