# Main Menus

The following menus are at the top of the xfig window.

File: File menu
Edit: Edit menu
View: View menu
Snap: Snap menu
Help: Help menu

## File menu

New
  Delete all objects from the canvas and erase the current file name to make a new figure. The accelerator `Meta-N` will also perform this function. This operation may be undone by Undo.
Open...
  Popup panel to open a Fig file. See File Panels for details.
Merge...
  Popup panel to merge one or more Fig files with the current figure. See File Panels for details.
Save
  Save current figure in current filename.
Save As...
  Popup panel to save current figure in new filename. See File Panels for details.
Export...
  Popup panel to export current figure to various formats such as PostScript, GIF, etc. See Exporting for details.
Print...
  Popup panel to print current figure to PostScript printer. See Printing for details.
Exit
  Exit from xfig. The accelerator `Meta-Q` will also perform this function.
  If the figure has been modified and not saved, a popup panel will appear to ask the user if he wants to save the figure first and then quit, quit without saving, or cancel the quit altogether.
  If xfig is terminated with signals such as HUP or INT (for example, by the `kill` command or an internal error of xfig), xfig will try to save the figure in the SAVE.fig file.
Recent file list (1 2 3 4)
  Below the Exit menu entry is a list of recently loaded Fig files. The number of files in this list may be set in the .xfigrc file in the user's login directory, or from the Global Settings panel. The maximum number of file names saved is 9.

## Edit Menu

Undo
  Undo the last operation such as object creation, deletion or modification. The accelerator `Meta-U` will also perform this function.
  Multi-level undo is not supported. If Undo is clicked twice, it will revert the state before the first undo.
Paste Objects
  Paste the Fig object previously copied into the xfig cut buffer (see also COPY and DELETE) into the current figure. The accelerator `Meta-T` will also perform this function.
  The object will appear on the canvas under or near the mouse where it may then be moved and placed by pressing mouse button 1 (`place object'). If you want to place it where it originally came from press mouse button 2 (`place at orig posn').
  This function can be used to copy part of another figure into the figure being edited. The cut buffer can be shared between xfigs if a user runs two or more xfig programs at the same time, and it is possible to copy objects between those xfig programs. If you want to copy an entire figure from another file, you can merge the file using File panel.
  Normally, the "`.xfig`" file in user's home directory is used as the cut buffer.
Paste Text
  Paste text from the X11 cut buffer onto the canvas where a text object has been started. Note that you must already have started a text object by clicking the Text mode and clicking on the canvas where you want the text pasted. The accelerators `F18` and `F20` will also perform this function.
Search/Replace...
  Popup panel to search and/or replace strings in Fig text objects. The accelerator `Meta-I` will also perform this function. See Search and Replace Text for details.
Spell Check...
  Popup panel to check Fig text objects for spelling errors. The accelerator `Meta-K` will also perform this function. See Spell Check for details.
Delete all
  Delete all objects on the canvas. Can be undone with `Meta-U` (Undo).
Global settings...
  Popup panel showing global settings such as the HTML browser, spelling checker, mouse tracking in rulers, etc. The accelerator `Meta-G` will also perform this function. See Global Settings for details.
Set units...
  Popup the unit panel to change drawing/scaling units. Right-clicking on the unit box in the upper-right corner of xfig will also perform this operation.

## View Menu

Manage Styles...
  Popup the Style Manager. These are user-defined settings which can be named and saved. For example you may have a group of settings called "special lines" which have predefined line styles and colors from which you can choose. See Manage Styles... for details.
Redraw
  Redraw the canvas. The accelerators `Meta-R` and `Ctrl-L` will also perform this function.
Portrait/Landscape
  Change the orientation of the xfig canvas between portrait and landscape. The orientation will also be used as the default orientation when Exporting or Printing a figure.
  The default orientation may be specified by command line options. The orientation is automatically changed when loading a fig file to correspond to the setting in the file.
Zoom in
  Zoom in on the canvas by a factor of two. `Shift-Z` will also perform this function. See also Zooming.
Zoom out
  Zoom in on the canvas by a factor of two. A lowercase `z` will also perform this function. See also Zooming.
Zoom to Fit canvas
  Zoom the figure so that it just fits in the canvas. `Ctrl-Z` will also perform this function. See also Zooming.
Pan to origin
  Pan the canvas to the origin (0,0). See also Panning the Canvas.
Character map
  Popup a panel showing all latin-1 characters of the current font. If the character map is popped up while drawing a text object, clicking on one of the characters will insert that character at the current cursor position into the text object. This is especially useful for ZapfDingbats and Symbol fonts.

For the following, an asterisk (*) in the menu indicates that the setting is turned on.

Show page borders
  Turn on or off the drawing of the page borders on the canvas. If on, xfig draws a lightblue line (default) on the canvas where the page boundaries are and the name of the page size, for the currently selected page size The accelerator `Meta-B` will also perform this function. (see Exporting or Printing for page sizes supported).
Show depth manager
  Show or hide the depth manager panel to the right of the side ruler. See Layers (Depths) for details.
Show info balloons
  Turn on or off displaying of information balloons. These balloons popup after a small delay when the mouse is moved over a button or other areas of xfig with information about that item. The accelerator `Meta-Y` will also perform this function.
  The popup delay may be set in the Global Settings panel.
Show line lengths
  Turn on or off the display of line lengths as lines/circles/etc. are drawn. If on, xfig shows the lengths of lines as they are being drawn in red, near the lines themselves. The accelerator `Meta-L` will also perform this function.
Show vertex numbers
  Turn on or off labelling of vertices of Fig objects. If on, xfig will label each vertex of objects on the canvas with their drawing order. This is only useful for diagnostic purposes.

## Snap Menu

The Snap operations are used to snap the next point clicked by the user to some location on a selected object. For example, after invoking the Endpoint snap mode, the next point clicked by the user will be used to identify the nearest object and then, if that object has some feature that can be reasonably interpreted as an "endpoint" the input point will be translated to that endpoint. If the selected object has more than one endpoint, the one closest the initial point will be used.

Snaps can be used either in drawing mode, as described above, or in edit mode. You could, for example, move an ellipse such that one of its foci coincides with the midpoint of a polyline segment:

1. Select "Move"
2. Select "Focus" from the Snap pulldown.
3. Select the ellipse at some point on it near the focus.
4. Select "Midpoint" from the Snap pulldown.
5. Select the polyline segment.

The following is a list of the available snap modes.

Hold
  Usually, the selected snap operation is automatically deselected immediately after the the next point is clicked. This button suppresses that behaviour, keeping the selected snap operation in effect until it is manually released with the Release button, q.v. The Hold capability allows, e.g., the connection of a series of polyline vertices by another polyline.
Release
  Releases a locked snap mode being retained by the Hold button, or cancels a snap operation after it's been selected.
Endpoint
  Endpoint snap mode snaps the input point to some feature of the selected object that may be interpreted as an endpoint. The feature selected depends on the type of object selected:

  Polylines (including boxes and polygons):
    Snaps to the nearest vertex.
  Ellipses (not including circles):
    Snaps to the nearest endpoint.of any of the semi-axes. (This is not relevant to circles.)
  Text
    Snaps to the nearest vertex of the bounding box.
  Arcs
    Snaps to the nearest of the three arc definition points.
Midpoint
  Midpoint snap mode snaps the input point to some feature of the selected object that may be interpreted as a midpoint. The feature selected depends on the type of object selected:

  Polylines (including boxes and polygons):
    Snaps to the midpoint of the nearest polyline segment.
  Ellipses (including circles):
    Snaps to the centerpoint.
  Text
    Snaps to the midpoint of the nearest side of the bounding box.
  Arcs
    Snaps to the arc centerpoint.
Nearest
  While a polyline is being drawn, this operation simply snaps to the nearest point on the nearest object. This works for target polyline, circle/ellipse, text (the bounding box), and arc objects.
Focus
  Focus snap mode snaps the input point to some feature of the selected object that may be interpreted as a focus. The feature selected depends on the type of object selected:

  Polylines (including boxes and polygons):
    Snaps to the unweighted centroid of the vertices.
  Ellipses (including circles):
    Snaps to the nearest ellipse focus, or to the centerpoint of circles.
  Text
    Snaps to the centroid of the bounding box.
  Arcs
    Snaps to the arc centerpoint.
Diameter
  While a polyline is being drawn, this operation snaps to a point such that the midpoint of the segment specified by that point and the "current" point is at the centerpoint of the selected object. This works for all objects except splines.
Normal
  While a polyline is being drawn, this operation snaps to a point on the selected object such that the segment from the "current" point to the object is perpendicular to the object. If there are multiple possible normal points (like to the near and far sides of a circle), the snap is to the one closest to where the user clicked. This works for target polyline, circle/ellipse, text (the bounding box), and arc objects.
Tangent
  While a polyline is being drawn, this operation snaps to a point on the selected object such that the segment from the "current" point to the object is tangent to the object. If there are multiple possible tangent points (like to the sides of a circle), the snap is to the one closest to where the user clicked. This works for target circle/ellipse and arc objects.
Intersection
  Lets the user select a second object and snaps to the nearest intersection of the two objects. Works between all combinations of circles, ellipses, polylines, and arcs except (yet) the case of two ellipses at different angles

## Help Menu

Xfig Reference (HTML)...
  This starts up your web browser (resource `Fig.browser`, default xdg-open) to view the main xfig reference manual.
Xfig Reference (PDF)...
  These start up your PDF viewer (resource `Fig.pdfviewer`, default xdg-open) to view the PDF version of the reference manual.
How-To Guide (PDF)...
  This starts up your PDF viewer (resource `Fig.pdfviewer`, default xdg-open) to view the xfig tutorial, written by Peter Hiscocks.
Man pages (HTML)...
  This starts up your PDF viewer (resource `Fig.pdfviewer`, default acroread) to view the xfig man pages.
About Xfig...
  This pops up a window with the version and copyright information about xfig.

## File Panels

The file panels provide the facility to Load, SaveAs, or Merge Fig files. Use Exporting if you want to output figure with a format other than a Fig file, and use IMPORTING PICTURE OBJECTS if you want to insert image files into the figure.

  Choosing Open... from the File menu will pop up up the Open Figure panel. The accelerator `Meta-O` will also perform this function.
  Choosing Merge... from the File menu will pop up up the Merge Figure panel. The accelerator `Meta-M` will also perform this function.
  Choosing Save As... from the File menu will pop up up the SaveAs panel. The accelerator `Meta-A` will also perform this function.

The panels look almost the same except for the bottom row of buttons, which reflect the operations like "Open", "Merge" and "Save":

File Status
  This shows whether the current figure has been modified or not.
# of Objects
  This shows the number of Fig objects in the drawing. A compound object with several objects inside is considered one object.
Figure Offset
  Specify amounts of offset the figure should be shifted when loaded or merged. The figure will be shifted to right or down by the amounts specified here. It is also possible to shift figure to left or up by specifying negative values here. Unit of the amounts may be Inches, Centimeters, or Fig Units (1/1200 inch in version 3.x).
Current File
  The name of the current file is displayed here. This is updated if a different filename is entered in the Filename field, and that file is either loaded or saved.
Filename
  Specify the name of file to be loaded or saved. If this field is empty, the file indicated at Current File will be accessed.
  The file name in the Filename field may be changed by clicking a file name in Fig Files list, or by typing the file name on the keyboard . If Return is typed after the file name is entered, the file will be opened for the Open panel, or saved for the SaveAs panel, or merged for the Merge panel.
Fig Files
  The files in the current directory matching the pattern specified by Filename Mask are displayed here, and users may select a file name from the list.
  Clicking a file name in this list with mouse button 1 will copy the file name to Filename field. Double-clicking a file name in this list with mouse button 1 will open the file for the Open panel, or or save the file for the SaveAs panel, or merge the file for the Merge panel.
Filename Mask
  Only the files which match this pattern will be listed in the Fig Files list. The pattern is similar to the one which is used in the UNIX shell, so it is possible to use meta-characters like "`*`" or "`?`". In addition, multiple patterns separated by a space are allowed.
  Typing Return in this field will cause a rescan of the current directory as if the Rescan button was clicked. The initial value of this string is "`*.fig *.fig.gz *.fig.[Zz]`" , which will show all Fig files including compressed files and backups, but it may be changed by the `Fig*file_panel*mask*string` resource if necessary.
Current Dir
  This shows the current directory, and files in the directory will be displayed in the Fig files list.
  The directory name in the Current Dir field may be changed by clicking a directory name in Directories list, or by typing the directory name on the keyboard. If Return is typed after the directory name is entered, the directory will scanned as if the Rescan button was clicked and the contents of Fig Files list will be updated.
Directories
  List of directories in the current directory is displayed here, and clicking any item in this list with mouse button 1 will cause a move to the directory. Normally, hidden directories are not displayed here, but that may be toggled with the Show Hidden button.
  "`..`" indicates the parent directory. Moving to the parent directory may also be performed by clicking mouse button 3 on the File Alternatives list or the Directories list.
Home
  Clicking this button will move to the home directory of the user.
Show Hidden
  This button controls whether hidden directories (directories whose name starts with "`.`") are displayed or not. Clicking this button will toggle the state. By default, hidden directories are not displayed.
Rescan
  Clicking this button will scan the files in the current directory and update the Fig Files list with those files whose names match the Filename Mask. The accelerator `Meta-R` will also perform this function.
Cancel
  Clicking this button will close the File panel. The accelerator `Meta-C` or the `Escape` key will also perform this function.

Only one of the following three buttons will appear, depending on the operation (Open, Merge, or Save):

Open
  Clicking this button will open the file specified by the Filename field.
  Before opening the file, the figure on the canvas is cleared. If the figure on the canvas has been modified and not saved, a popup panel will appear and the user will be asked to save the current figure, discard it and open the new file or cancel the open of the new file altogether.
  The figure will be shifted by the amounts specified by Figure Offset.
  xfig can also read files compressed by compress or gzip (files which have suffix `.Z`, `.z`, or `.gz`). Before opening a compressed file, the file will be uncompressed by uncompress or gunzip.
  A newer version of xfig can always open Fig files created by older version of xfig, but the reverse is not true. When opening files of older format, xfig will notify the user in a popup message panel and will convert the file to the current version. There is no way to save a Fig file in an older version format.
  In addition to the Open button, a button labeled New xfig... allows the user to start another copy of xfig running on any file selected. This is a completely separate Unix process, but the two programs may communicate through the cut/paste feature.

Merge
  Clicking this button will read the figure from the file specified by the Filename field and merge it with the figure on the canvas.
  As in Open, the figure will be shifted at the amounts specified by Figure Offset.

Save
  Clicking this button will save the figure to the file specified in the Filename field if any, or the file name in Current File otherwise.
  When trying to save to an existing file other than Current File, a popup panel will appear and the user will be asked if he wants to save over that file.
  Also, Current File is updated to reflect the new file name.
  Before saving the file, the original file (if any) will be automatically renamed to the same name but with the suffix "`.bak`" to leave it as a backup file.

## Manage Styles...

The style manager lets you save and load groups of attributes (e.g. line color, thickness, font size etc.) by name. For example you may want a thick, dashed, red line style often, so using the style manager you could choose those attributes and save and recall them in a style called "thickred".

When adding styles, only the attributes which are selected for UPDATE will be saved.

Also, you may have "families" of styles. For example a family called "lines" may have a collection of named styles for lines (e.g. color, thickness etc.) and a family called "fonts" may have a collection of named styles for fonts (e.g. font, size, color, etc.)

To use styles, when you popup the style manager (View/Manage Styles... or `Control-Y`), xfig automatically goes into update mode. For styles already defined, choose the style family in the upper list and the style in that family from the lower list. The update buttons will automatically be turned on for those attributes affected by the style and off for those not affected. At this point, if you click on objects on the canvas they will be updated with those attributes. Creating new objects will use those attribtes and the others shown in the attribute panel.

To create a new family, enter the name in the Choice entry under Family and press the Add button.

Now select the attributes that you want to be affected by your style (e.g. line color, thickness etc.) by turning on or off the red buttons in the upper-right corner of the attribute buttons (see Update), and setting the value of the attribute. Finally, enter the name of the style you want to create in the Choice entry under Style and press the Add button.

There is a limit of 16 families and 30 styles in each.

Family
  Choose style family from this list. A style family may have one or more styles (described below).
  Choice
    This shows the current family selection, or the user may enter a family name here and press enter to load it.
  Add
    After entering a name in the Choice field above, press this button to add it to the list of style families.
  Delete
    Delete the selected style family.
Style
  This shows the styles available in the above-chosen family. Click on a style entry to select it.
  Choice
    This shows the current style selection, or the user may enter a style name here and press enter to load it.
  Add
    After entering a name in the Choice field above, press this button to add it to the list of styles.
  Delete
    Delete the selected style.
Save settings
  Save all the families and styles currently defined. To change an existing named style, first select it and delete it, then enter the name again, make the changes to the attribute panel and press "Save settings".
Reload settings
  Reload the families and their styles, discarding any changes to the current listts.
Close
  Close the Style Manager panel.

[ Contents | Introduction | Credits ]