---
name: "xfig"
section: "1"
platform: "linux"
package: "xfig"
version: "1:3.2.9a-3"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/xfig"
---

# xfig(1)

Facility for Interactive Generation of figures under X11 Version 3.2.9a

## NAME

xfig - Facility for Interactive Generation of figures under X11\
 Version 3.2.9a

## SYNOPSIS

**xfig** \[*options*\] \[*file*\]

## DESCRIPTION

*Xfig* is a menu-driven tool that allows the user to draw and manipulate objects interactively under the X Window System.  If *file* is given, it specifies the name of a file to be edited.

The bulk of the documentation for *xfig* is in an HTML-based reference guide. See the Help menu in *xfig* or point your browser at */usr/share/doc/xfig/html/index.html*. There are both English and Japanese versions.

When using a two-button mouse instead of a three-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 https://sourceforge.net/projects/mcj/.

The *Fig2dev* package is used when printing or exporting the output from *xfig*. The *fig2dev* program is automatically called by *xfig* as a back-end processor to produce various types of output:

LaTeX, Metafont, PDF, PostScript or Encapsulated PostScript, CGM and EMF (mostyl 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. 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

**-help**

-

  Print all command-line options for xfig and quit.

**-a**\[**llownegcoords**\]

-

  Allow panning into the negative region of the canvas. This is the default

**-au**\[**torefresh**\]

-

  Make xfig look at the timestamp on the .fig file and automatically load it and display it every time it changes.

**-bal**\[**loon\_delay**\] *msec*

-

  Cause popup information balloons to be delayed by *msec* milliseconds.  The default is 500 milliseconds.

**-butt**\[**on**\] *font*

-

  Cause the font used for most buttons to be *font* (default = 6x13).

**-but\_**\[**per\_row**\] *number*

-

  Specify the number of buttons wide the mode panel should be. This is useful in conjunction with the **-pheight** parameter to reduce the canvas height for small screens.

**-cbg** *color*

-

  Use *color* as the background color for the canvas. If you want to set the background of everything in xfig (e.g. menus, etc.) use the general **-bg** option.

**-center**

-

  Set the print option to print the figure centered on the page. This is the default.

**-centim**\[**ers**\]

-

  Make centimeters the unit of choice.  See also **-metric.**

**-cfg** *color*

-

  Use *color* as the default color for objects. If you want to set the foreground of everything in xfig (e.g. menus, etc.) use the general **-fg** option.

**-correct\_font\_size**

-

  Normally, *fig2dev* uses 1/80 inch for font size increments (for historical reasons), instead of the more proper \`\`points'' (1/72 inch) that *xfig* uses.  This option makes xfig call fig2dev with the **-F** option to make it use points (1/72 inch).

**-deb**\[**ug**\]

-

  Turn on debugging mode. Prints various debugging messages like font names etc.

**-dep**\[**th**\]

-

  Choose depth of visual desired.  Your server must support the desired visual and depth chosen. Use *xdpyinfo* to see what visuals and depths are supported. See also the **-visual** option.

**-donta**\[**llownegcoords**\]

-

  Don't allow panning into the negative region of the canvas. The default is to allow panning in the negative region.

**-dontshowb**\[**alloons**\]

-

  Prevents xfig from popping up the information balloons. See also **-showballoons.**

**-dontshowl**\[**engths**\]

-

  Don't show lengths of lines as they are 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 to be used for when exporting a fig file. Choices are:

  ```
  pdftex	Combined PDF/LaTeX (both PDF and LaTeX parts)
  Name	Language
  Vector formats:
  ps	PostScript
  eps	Encapsulated PostScript
  pdf	PDF (Portable Document Format)
  box	LaTeX box (figure boundary)
  latex	LaTeX picture
  pict2e	LaTeX picture + pict2e macros
  tikz	LaTeX picture + tikz macros
  epic	LaTeX picture + epic macros
  eepic	LaTeX picture + eepic macros
  eepicemu	LaTeX picture + eepicemu macros
  pstex	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 macros
  cgm	Computer Graphcis Meta file
  emf	Enhanced Meta file
  dxf	Drawing Interchange format
  gbx	Gerber (RS-247-X)
  ibmgl	HPGL/2 or IBMGL
  textyl	Textyl special commands
  tpic	TPIC
  pic	PIC
  mf	MF (MetaFont)
  mp	MP (MetaPost)
  tk	Tk (Tcl/Tk toolkit)
  ptk	Perl/Tk
  shape	LaTeX shape paragraph definition
  svg	SVG (Scalable Vector Graphics)
  Bitmap formats:
  gif	GIF
  jpeg	JPEG (JFIF)
  pcx	PCX
  png	PNG
  ppm	PPM (portable pixmap package)
  sld	(AutoCad slide)
  tiff	TIFF
  xbm	X11 Bitmap
  xpm     X11 Pixmap
  ```

**-export\_m**\[**argin**\] *width*

-

  Set the size of the border margin around the figure for exporting to bitmap, PostScript, Encapsulated PostScript, or HTML MAP formats. This is in units of points (1/72th inch). The default is 0.

**-fli**\[**pvisualhints**\]

-

  Flip left/right mouse indicator messages for mice whose buttons have been switched. The default is to NOT flip the messages.

**-flu**\[**shleft**\]

-

  Set the print option to print the figure flush left. The default is to center the figure on the page.

**-free**\[**hand\_resolution**\] *resolution*

-

  Set the resolution of the freehand drawing mode to *resolution* pixels.  This is the number of pixels the mouse must move before xfig adds another point to the object being drawn.

**-geom**\[**etry**\] \[*WxH*\]*\[+X+Y\]*

-

  You may use the -geometry option or resource to *size and/or position the xfig window,* or you may use **-pwidth** and/or **-pheight** to specify the canvas size in inches or centimeters. If you use the **-geom** option to make the xfig window smaller than the default, you may have to use the **-but\_per\_row** option 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 is gs. This version of xfig links into the ghostscript library. The ghostscript executable is not needed, it is only called as a fallback-solution.

**-grid\_c**\[**olor**\] *color*

-

  Draw 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 show 1/16 inch divisions.

**-hidd**\[**entext**\]

-

  Start *xfig* with the *hidden text* mode for text objects. The *Hidden* attribute is used for figures that will be used with *LaTeX* and is applicable only to the display of the document in *xfig*. It means that the text itself is not shown onscreen, but only the string \`\`\<text\>''.  This 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**\]

-

  Hide the depth manager panel. The default is to show the panel.

**-icon\_**\[**view**\]

-

  Show 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 bitmap editor to use when \`\`Edit Image'' button is pressed in Picture Object panel.

**-inc**\[**hes**\] (or **-imp**\[**erial**\])

-

  Make inches the unit of choice. This is the default.

**-ins**\[**tallowncmap**\]

-

  Install own colormap. Normally, xfig uses the current colormap.

**-internalBW** width

-

  Use lines of width *width* between all buttons and panels (default 1).

**-jpeg**\[**\_quality**\] *quality*

-

  Set the quality factor for exporting to the jpeg format. The default is 75.

**-k**\[**eyFile**\] *compose-key-file*

-

  Use *compose-key-file* instead of *CompKeyDB* for compose (meta) key database. 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.

**-lan**\[**dscape**\]

-

  Make *xfig* come up in landscape mode (10.5" x 8"). This is the default; however as 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 version 3.0 or higher.\
   See also -portrait.

**-lat**\[**exfonts**\]

-

  Start *xfig* with *LaTeX* font selection. Normally, the *PostScript* fonts are available as the default. This flag selects the *LaTeX* fonts to start.

**-le**\[**ft**\]

-

  Change the position of the side panel window to the left of the canvas window. This is the default.

**-library\_d**\[**ir**\] *\[directory \| file\]*

-

  Specify directory or file containing directory names where Fig object libraries are located. There may be sub-directories there and sub-sub-directories, etc.

**-library\_i**\[**con\_size**\] *size*

-

  Specify the size of the icons shown for library objects.  The default is 60 pixels, with the minimum being 40 and the maximum being 120.

**-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 to *numcols (default 64).*

**-me**\[**tric**\]

-

  Make centimeters the unit of choice. The option **-centimeters** may also be used. Fig files saved in metric mode are, due to rounding issues, scaled down by about 5% when saved, and scaled up when read in. Using **-inches** or **-imperial** avoids 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 be *font*. 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 .fig file 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 about 10%. See also **-nooverlap.**

**-pag**\[**eborder**\] *color*

-

  Draw the page border on the canvas in this color (default light blue). The page border is turned on by the **-showpageborder** option (resource Fig.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

  ```
  tabloid	Tabloid	17in x 11in
  Option	Paper	Size
  letter	Letter	8.5in x 11in
  legal	Legal	8.5in x 14in
  tabloid	Tabloid	17in x 11in
  a	ANSI A	8.5in x 11in
  b	ANSI B	11in x 17in
  c	ANSI C	17in x 22in
  d	ANSI D	22in x 34in
  e	ANSI E	34in x 44in
  a9	ISO A9	37mm x 52mm
  a8	ISO A8	52mm x 74mm
  a7	ISO A7	74mm x 105mm
  a6	ISO A6	105mm x 148mm
  a5	ISO A5	148mm x 210mm
  a4	ISO A4	210mm x 297mm
  a3	ISO A3	297mm x 420mm
  a2	ISO A2	420mm x 594mm
  a1	ISO A1	594mm x 840mm
  a0	ISO A0	840mm x 1189mm
  b10	JIS B10	32mm x 45mm
  b9	JIS B9	45mm x 64mm
  b8	JIS B8	64mm x 91mm
  b7	JIS B7	91mm x 128mm
  b6	JIS B6	128mm x 182mm
  b5	JIS B5	182mm x 257mm
  b4	JIS B4	257mm x 364mm
  b3	JIS B3	364mm x 515mm
  b2	JIS B2	515mm x 728mm
  b1	JIS B1	728mm x 1030mm
  b0	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 *height* high (where *height* is either cm or in, depending on the **-metric** setting).

**-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 *width* wide (where *width* is either cm or in, depending on the **-metric** setting).

**-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) is 24.

**-scale\_factor** *scale*

-

  Scale every figure read in by this value.  This is useful in conjunction with the **-update** option 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 **-showallbuttons** option 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 **-pageborder** option (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 are 0 (no smoothing), 2 or 4 (most smoothing).  This parameter is passed to ghostscript in the -dTextAlphaBits -dGraphicsAlphaBits options 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 \\backslash command, a brace '{' is turned into a brace command \\{, etc.

**-spel**\[**lcheckcommand**\] *command*

-

  Use *command* for the external spell checking program when using the spell check/search/replace popup. The string *command* should 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 is 500 milliseconds.

**-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 (-1 to 21).

**-startfo**\[**ntsize**\] *pointsize*

-

  Set the default font size for text objects (default = 12pt).

**-startg**\[**ridmode**\] *modenumber*

-

  Set the starting grid mode (0 to 3).  Mode 0 is no grid. In imperial (inches) mode, grid mode 1 is 1/4 inch, mode 2 is 1/2 inch and mode 3 is 1 inch. In metric mode, grid mode 1 is 2mm, mode 2 is 5mm and mode 3 is 1cm.

**-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 (0 to 4) In imperial (inches) mode, positioning mode 0 is \`\`any'', mode 1 is 1/16 inch, mode 2 is 1/4 inch, mode 3 is 1/2 inch and mode 4 is 1 inch. In metric mode, mode 0 is \`\`any'', mode 1 is 1mm, mode 2 is 5mm, mode 3 is 10mm and mode 4 is 20mm.

**-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 export *color\_number.* This number is the color number according to the **xfig** color panel, starting at 0 (black) and ending at 31 (gold), or may be a user-defined color number, which is 32 or higher.

**-update** *file \[ file ... \]*

-

  Run xfig in an "update" mode, where it will read each Fig file specified on the command line and write it out to the original file, in the current file format for the version of xfig being run. The original Fig file will be preserved with the suffix *.bak* attached to the name. In this mode, xfig exits when finished, and no window is opened.

**-users**\[**cale**\] *scale*

-

  Set the multiplier for displayed line lengths etc. This factor is multiplied by the actual length, radius or diameter of the object currently being drawn on the canvas. It is useful for making scale drawings, where e.g. 1 inch = 1 foot (userscale = 12.0) or 1cm = 1m (userscale = 100.0).

**-useru**\[**nit**\] *units*

-

  The *units* string is printed with the length information when drawing objects. For example if the *userscale* = 1.0 and the *userunit* = *ft* then a line which is 3 inches long on the canvas would be displayed as \`\`length = 3 ft'' when it is being drawn.

-

  After *xfig* is started you may change the *userscale* and the *userunit* from a popup menu available by pressing mouse button 3 in the *units* box where the two rulers meet.

**-visual** *visualname*

-

  Use *visualname* as the visual for xfig.  The names are TrueColor (case is not important), StaticColor, DirectColor, StaticGray, GrayScale and PseudoColor. *xfig* uses the default visual unless this is specified.  Your server must support the desired visual. Use *xdpyinfo* to see what visuals and depths are supported. See also the **-depth** option.

**-write\_bak**

-

  When saving a drawing into an existing .fig file xfig will first rename that file by appending

**-zoom** *zoomscale*

-

  Set the starting zoom scale.

## X RESOURCES and DEFAULTS

The overall widget name(Class) is xfig(Fig). These resources correspond to the command line arguments:

```
Name	Type	Default	Command-line equivalent
Name	Type	Default	Command-line equivalent
allownegcoords	boolean	true	-allownegcoords (true),
			-dontallownegcoords (false)
autorefresh	boolean false	-autorefresh
axislines	string	pink	-axislines
balloon_delay	integer	500 (ms)	-balloon_delay
but_per_row	integer	2	-but_per_row
buttonFont	string	6x13	-button
canvasbackground	string	white	-cbg
canvasforeground	string	black	-cfg
correctfontsize	boolean	false	-correctfontsize
debug	boolean	false	-debug
depth	integer	*	-depth
dontswitchcmap	boolean	false	-dontswitchcmap
exportLanguage	string	eps	-exportLanguage
export_margin	integer	0	-export_margin
flipvisualhints	boolean	false	-flipvisualhints
flushleft	boolean	false	-flushleft (true),
			-center (false)
freehand_resolution	integer	25	-freehand_resolution
grid_color	string	black	-grid_color
grid_unit	string	1/16 (inch)	-grid_unit
		0.1 (metric)
hiddentext	boolean	false	-hiddentext
icon_view	boolean	true	-icon_view (true),
			-list_view (false)
image_editor	string	xv	-image_editor
inches	boolean	true	-inches (true),
			-imperial (true),
			-centimeters (false),
			-metric (false)
installowncmap	boolean	false	-installowncmap
internalborderwidth	integer	1	-internalBW
international	boolean	true	-international (true),
			-nointernational (false)
jpeg_quality	integer	75	-jpeg_quality
justify	boolean	false	-left (false),
			-right (true)
keyFile	string	CompKeyDB	-keyFile
landscape	boolean	true	-Landscape (true),
			-landscape (true),
			-Portrait (false),
			-portrait (false)
latexfonts	boolean	false	-latexfonts
library_dir	string	~/xfiglib	-library_dir
magnification	float	100	-magnification
max_image_colors	integer	64	-max_image_colors
monochrome	boolean	false	-monochrome
multiple	boolean	false	-multiple
normalFont	string	6x13	-normal
overlap	boolean	true	-overlap (true),
			-nooverlap (false)
pageborder	string	lightblue	-pageborder
paper_size	string	Letter (inch)	-paper_size
		A4 (metric)
pheight	float	8.5 (landscape)	-pheight
		9.5 (portrait)
pwidth	float	11 (landscape)	-pwidth
		8.5 (portrait)
rigidtext	boolean	false	-rigid (true)
rulerthick	integer	24	-rulerthick
scale_factor	float	1.0	-scale_factor
showallbuttons	boolean	false	-showallbuttons
showaxislines	boolean	true	-showaxislines (true),
			-dontshowaxislines (false)
showballoons	boolean	true	-showballoons (true),
			-dontshowballoons (false)
showdepthmanager	boolean	true	-showdepthmanager (true),
			-dontshowdepthmanager (false)
showlengths	boolean	false	-showlengths (true),
			-dontshowlengths (false)
shownums	boolean	false	-shownums (true),
			-dontshownums (false)
showpageborder	boolean	true	-showpageborder (true),
			-dontshowpageborder (false)
single	boolean	true	-single
smooth_factor	integer	0	-smooth_factor
specialtext	boolean	false	-specialtext
splash	boolean	true	-splash (true),
			-nosplash (false)
spellcheckcommand	string	spell %s	-spellcheckcommand
spinner_delay	integer	500 (ms)	-spinner_delay
spinner_rate	integer	100 (ms)	-spinner_rate
startfillstyle	integer	0	-startfillstyle
startfontsize	float	12	-startfontsize
startgridmode	integer	0	-startgridmode
startlatexFont	string	Default	-startlatexFont
startlinewidth	integer	1	-startlinewidth
startposnmode	integer	1	-startposnmode
startpsFont	string	Times-Roman	-startpsFont
starttextstep	float	1.2	-starttextstep
tablet	boolean	false	-track,
trackCursor	boolean	true	-track (true),
			-notrack (false)
transparent_color	integer	-2 (none)	-transparent_color
userscale	float	1.0	-userscale
userunit	string	in (inches)	-userunit
		cm (metric)
visual	string	*	-visual
write_bak	boolean	true	-write_bak
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:\
 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.

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 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 ALSO

[fig2dev(1)](/fig2dev/1.md) (*Fig2dev* package)

[gs(1)](/gs/1.md) (*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

```
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

```

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.

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.

*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

- */usr/share/xfig/CompKeyDB*

  Data base of compose (meta) key sequences for 8-bit characters. A different file may be specified with the command line option **-keyFile** or X toolkit resource keyFile.

- */usr/share/doc/xfig/html*

  This directory contains the html documentation.

- */usr/share/doc/xfig/FORMAT3.2*

  Description of Fig file format.

- */usr/share/xfig/Libraries*

  This directory contains libraries of Fig objects such as electrical symbols, logic symbols, etc.

- */usr/share/X11/app-defaults/Fig*

  Application defaults file.

- */usr/share/applications/org.xfig.xfig.desktop*

  Desktop entry file.

- */usr/share/metainfo/org.xfig.xfig.metainfo.xml*

  Appstream metadata.

- */usr/share/pixmaps/xfig.png*

  Desktop icon.

## 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 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:**

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 and newer:**

Please see the CHANGES file for credits for newer releases.

## NOTES

Many bug fixes/cleanups etc. by a host of faithful users.

See the **CHANGES** file for all the credits.

The *Fig2dev* package was written by Micah Beck and is maintained by Thomas Loimer.
