XFIG Users Manual

Object Attributes

Buttons to set various drawing parameters (called attribute buttons), such as line width or color, are placed on the attribute panel. Buttons to set global parameters such as the zoom scale or grid mode are also placed on the attribute panel. Current settings are displayed in each attribute button.

Settings in the attribute panel are applied when creating new objects. It is also possible to modify attributes of existing objects using UPDATE or EDIT.

The first three buttons do not control object attributes but are placed here for convenience:
[ZOOM SCALE] Zoom (magnify) figure in canvas
[GRID MODE] [POINT POSITION] Grids

These are the attribute buttons:
[DEPTH] Object depths
[PEN COLOR] [FILL COLOR] [FILL STYLE] Colors and patterns
[LINE WIDTH] [LINE STYLE] [JOIN STYLE] [CAP STYLE] Width and shape of lines
[TEXT FONT]
[TEXT SIZE] [TEXT STEP] [TEXT JUSTIFICATION] [TEXT FLAGS] Font and other attributes of TEXT objects
[ARROW MODE] [ARROW TYPE] [ARROW SIZE] Arrows
[BOX CURVE] Corner radius of ARC-BOX objects
[ARC TYPE] Shape of ARC objects
[NUM SIDES] Number of sides of REGULAR POLYGON
[NUM COPIES] [NUM X COPIES] [NUM Y COPIES] Number of copies to be created
[ROTATION ANGLE] [TEXT ANGLE] Angle of rotation
[ANGLE GEOMETRY] Restriction of the angle of lines
[SMART LINK] Smart Links
[VERTICAL ALIGN] [HORIZONTAL ALIGN] Alignment of objects
[DIMENSION LINES] Dimension Lines

Normally, only the attribute buttons which are significant to the selected mode are placed on the attribute panel. When it is not possible to display all the attribute buttons at once, a scrollbar will be added to the attribute panel.

These settings may be changed by clicking those attribute buttons. Each mouse button has the following function:

- Mouse button 1 (`Menu')
Clicking an attribute button with mouse button 1 will popup a panel to change setting of the attribute button, and the user may select a new value by clicking any button on the panel (in the case of grid mode or text font, etc.) or entering a new value from the keyboard (in the case of zoom scale or line width, etc.)
- Mouse button 2 (`Dec/Prev')
If the attribute button contains a numeric value (zoom scale or line width, for example), clicking the attribute button with mouse button 2 will decrease the value. If the attribute button is of another type (grid mode or text font, for example), the selection will be chosen from the previous item in the list. The list is considered circular.
- Mouse button 3 (`Inc/Next')
This mouse button is the reverse of mouse button 2. If the attribute button contains a numeric value, clicking the attribute button with mouse button 3 will increase the value. If the attribute button is of another type, the selection will be chosen from the next item in the list. The list is considered circular.

In UPDATE mode, a small toggle button appears in the upper-right corner of each attribute button. This controls whether the particular attribute should be applied when using the UPDATE mode. Also, an Update Control Button will be placed at the left of the attribute panel.

[Update Control Buttons]

(ZOOM SCALE) zoom panel
Set the zoom scale of display on the canvas. The zoom scale may be set in the range of 0.01 to 50. On many systems, the display on the screen will be almost actual-size when this is set to 1.

Clicking this button with mouse button 1 will popup a panel to enter new value of zoom scale from keyboard. Clicking this button with mouse button 2 or mouse button 3 will decrease or increase the zoom scale by a factor of 1.5 respectively if the zoom is > 1, or by 0.1 if zoom scale is less than 1.0 and 0.01 if the zoom is less than 0.1.

Zooming of the canvas may also be performed by specifying the rectangle to be zoomed on the canvas (`area zoom'). To do this, specify the rectangle to be zoomed by clicking mouse button 1 (`zoom area') while pressing CONTROL key and specify one corner of the rectangle, and then clicking mouse button 1 (`final point') again at the opposite corner of the rectangle.

If you use a wheel mouse, then rotating the wheel on the canvas while the Shift key is pressed will zoom/unzoom the canvas around the pointer and rotating the wheel while the Control key is pressed will scroll (pan) the canvas up or down.

It is also possible to set zoom scale to 1 by clicking mouse button 3 (`unzoom') while pressing CONTROL key on the canvas.

To force the area-zoom to zoom using integer values check the box in the zoom popup panel that says Integer zoom.

To zoom the figure so that it just fills the canvas, press the Fit to canvas button. Integer zoom is ignored if the zoom needed to fit the figure on the canvas is less than 1.0.

See also Zooming.


(DEPTH)
Set the `depth' of objects.

The Depth is used to decide which object should be hidden when objects overlap. The object with larger depth will be hidden by object with smaller depth. Depth is an integer value of the range 0 to 999.

If objects with the same depth overlap, it is unknown which object will be hidden, and the display on the screen may be different from a printout or export.

Normally, all depths are displayed on the canvas, but the user may control which depths are displayed and editable. See the Depth Panel section.

If the depth of a compound object is changed with UPDATE, the relative depths of the objects contained will be maintained. For example, consider a compound object containing three objects at depths 3, 8 and 11 respectively. If the depth of the compound is changed to 2, then the objects contained will have depths of 2, 7 and 10 respectively.


(GRID MODE)
Set the size of the grid displayed on the canvas. If this is set to None, no grid will be displayed.

The size of the grid may be selected from 1/8inch, 1/4inch, 1/2inch and 1inch if unit is set to Imperial (inches), and from 2mm, 5mm, 10mm and 20mm if unit is set to Metric.

This grid will not restrict positioning of objects. If you want to set a restriction of positioning of objects, use POINT POSITION.


(POINT POSITION)
Set the size of virtual grid (it is not visible) to control the restriction of positioning of objects. If this is not set to Any, objects may only be placed on the virtual grid of the selected size. If this is set to Any, objects can be placed anywhere.

The size of the virtual grid may be selected from 1/16inch, 1/8inch, 1/4inch, 1/2inch and 1inch if unit is set to Imperial (inches), and from 1mm, 2mm, 5mm, 10mm and 20mm if unit is set to Metric.

This will also restrict which objects may be `picked up' when editing. If an object is not on the virtual grid specified here, the object can't picked up.

This virtual grid will not displayed on the canvas. The visible grid can be set by GRID MODE.


(ROTATION ANGLE)
Set the angle for rotating objects with ROTATE. Clicking this button with mouse button 2 or mouse button 3 will decrease or increase the angle by 15 degrees respectively. Clicking this button with mouse button 1 will popup a panel to enter the angle.

The angle of TEXT or ELLIPSE objects may also be set by TEXT / ELLIPSE ANGLE.

Note that some objects may only be rotated by 90 degrees (e.g. BOX)


(TEXT / ELLIPSE ANGLE)
Set the angle of TEXT or ELLIPSE objects. Positive values indicate counter-clockwise rotation, and negative values indicate clockwise rotation.

Clicking this button with mouse button 2 or mouse button 3 will decrease or increase angle by 15 degrees respectively. Clicking this button with mouse button 1 will popup a panel to enter the angle.

To rotate exisiting objects, use ROTATE. See also ROTATION ANGLE.


(NUMBER OF POLYGON SIDES)
Set the number of sides used in creating a regular polygon with REGULAR POLYGON.

(NUMBER OF COPIES)
Set the number of copies to be made with COPY & ROTATE (see ROTATE).

The number of copies to be made with ARRAY PLACEMENT should be set with NUMBER OF X COPIES and NUMBER OF Y COPIES.


(NUMBER OF X COPIES / NUMBER OF Y COPIES)
Set the number of copies to be made in the X and Y direction when copying objects with ARRAY PLACEMENT (see COPY).

The number of copies to be made with COPY & ROTATE should be set with NUMBER OF COPIES.


(SMART-LINKS MODE)
This button controls the smart-link mode. If the smart-link mode is enabled, lines with an end point on the perimeter of objects such as a BOX or inside a COMPOUND object (henceforth called links) will be treated specially when those objects are moved or copied.
OFF
Disable the smart-link mode. When moving or copying an object, only the object will moved or copied.
MOVE
When moving an object, the end point of the link will be moved with the object so that the link will remain linked. When copying an object, the link is also copied.
SLIDE
When moving an object, the end segment of the link (the segment which touches the object) will slide so that the angle of the segment is maintained. When copying an object, the link is also copied.

Lines which touch objects such as circles or ellipses are not treated as links. If you want to use smart-link facility for such lines, make the object into a COMPOUND object.


(VERTICAL ALIGN)
Set the vertical alignment mode for ALIGN.
[None] Do not align vertically.
[Top] Align to top of objects.
[Center] Align center of objects.
[Bottom] Align to bottom of objects.
[Even Center] Vertically distribute objects so that the distance between center of each object is equal.
[Even Edge] Vertically distribute objects so that the distance between the edge of each object is equal.
[Abut Edge] Vertically distribute objects so that the edge of each object touch.

(HORIZONTAL ALIGN)
Set the horizontal alignment mode for ALIGN
[None] Do not align horizontally.
[Left] Align to left of objects.
[Center] Align center of objects.
[Right] Align to right of objects.
[Even Center] Horizontally distribute objects so that the distance between center of each object is equal.
[Even Edge] Horizontally distribute objects so that the distance between the edge of each object is equal.
[Abut Edge] Horizontally distribute objects so that the edge of each object touch.

(ANGLE GEOMETRY)
Set the restriction of the angle of lines when creating POLYLINE, POLYGON, SPLINE objects, etc. This will also restrict the angle of line segment when moving its end point with MOVE POINT.
Unrestricted
Don't restrict the angle of lines. With this setting, lines of any angle may be created. This is the default.
LaTeX Line
Allow lines to be drawn only at slopes which can be handled by the line command of the LaTeX picture environment. With this setting, lines with slope x / y (here, x and y are integers in the range -6 to 6) may be created.
LaTeX Vector
Allow lines to be drawn only at slopes which can be handled by the vector command of the LaTeX picture environment. With this setting, lines with slope x / y (here, x and y are integers in the range -4 to 4) may be created.
Manhattan-Mountain
Allow lines to be drawn in the horizontal, vertical or diagonal (45 degrees) direction only.
Manhattan
Allow lines to be drawn in the horizontal or vertical direction only.
Mountain
Allow lines to be drawn in the diagonal (45 degrees) direction only.

(PEN COLOR)
Set the color used to draw objects. The color may be selected from 32 standard colors and other arbitrary colors defined by user. See Colors Panel for more information.

Clicking this button with mouse button 1 will popup the Colors Panel.

The color to fill the region inside object is set by FILL COLOR and FILL STYLE. If you want to fill the region without drawing the outline of the object, set LINE WIDTH to zero.


(FILL COLOR)
Set the color used to fill the region inside objects. As in PEN COLOR, the color may be selected from 32 standard colors and other arbitrary colors defined by user. See Colors Panel for more information.

Clicking this button with mouse button 1 will popup the Colors Panel.

The color to draw the outline of object is set by PEN COLOR. The FILL COLOR is only effective when the FILL STYLE is set to other than None. If you don't want to fill the region inside objects, set the FILL STYLE to None.


(FILL STYLE)
Set fill darkness or fill pattern. Fill color is set by FILL COLOR. If None is selected here, the region inside object will not be filled.

Clicking this button with mouse button 1 will popup this panel:

[Fill Style Panel]

(LINE WIDTH)
Set the width of lines to draw the outline of objects. The unit of the line width is exactly 1 screen pixel (about 1/80 inch).

If this is set to zero, the outline of objects will not be drawn. The area fill will still be used if area fill is enabled by FILL STYLE.


(LINE STYLE)
Set the line style from solid, dashed, dotted, dash-dot, dash-dot-dot and dash-dot-dot-dot. It is also possible to set the dash length or dot distance. The shape (ends) of each dash and dot may be set by CAP STYLE.

Clicking this button with mouse button 1 will popup this panel:

[Line Style Panel]

(JOIN STYLE)
Set the shape of the join point (vertex) of lines of objects such as POLYLINE or POLYGON. This setting does not have a remarkable effect when the line is very thin.

MITER
Extend the outer edge of the lines until they touch. Automatically uses BEVEL instead if the angle is too acute. This is the default.
ROUNDED
Join lines with an arc whose center is at the join point and whose diameter is equal to the line width.
BEVEL
Join the lines with butt end caps and fill the resulting triangular notch at the join position.

[Join Style Example]

The shape of the end points of lines will set by CAP STYLE.


(CAP STYLE)
Set the shape of end points of lines of objects such as POLYLINE. This setting does not have a remarkable effect when the line is very thin.

BUTT
The ends of the line don't extend beyond the end points. This is the default.
ROUND
Terminate lines with a circle whose diameter is equal to the line width.
PROJECTING
Similar to BUTT, but the ends of the line extend by half of line width beyond the end points.

[Cap Style Example]

This setting also affects the shape of dashes or dots of dashed-lines or dotted-lines. The shape of the join point (vertex) of lines is set by JOIN STYLE.


(ARROW MODE)
Determines whether an arrow head should be automatically added at either or both ends of a line when creating a POLYLINE, OPEN ARC, or OPEN SPLINE object.
[None] Do not add any arrow heads.
[Forward] Add an arrow head at the last point of the line.
[Both] Add an arrow head at each end of the line.
[Backward] Add an arrow head at the first point of the line.

The shape of the arrow head may be set by ARROW TYPE and the size by ARROW SIZE. It is also possible to add (or remove) arrow heads to existing objects using ADD / DELETE ARROW.


(ARROW TYPE)
Sets the shape of arrow heads.
[Arrow Types]
The size of arrow head may be set using ARROW SIZE.

(ARROW SIZE)
Set the size of arrow head.

Clicking this button with mouse button 1 will popup this panel:

[Arrow Size] [Arrow Head]

The Thickness controls the thickness of the line forming the arrow head.
The Width controls the width at the back of the arrow head.
The Length controls the length of the arrow head.

All these units are the same as for LINE WIDTH. This is a change from previous versions of xfig, where the width and length were in Fig units (1/1200 inch).

- If the Absolute Values box is checked, the values from the left side entries are used and are absolute as just described.
- If the Multiple of Line Width box is checked, the respective value from the right side entry is multiplied by the current line width setting to arrive at the sizes.

(BOX CURVE)
Set the corner radius of ARC-BOX objects. The units are the same as for LINE WIDTH.

(ARC TYPE)
Set the style of ARC object.
OPEN ARC
Draw only the arc.
PIE-WEDGE
Adding to the arc, draw lines which connect each end of the arc to the center.

(TEXT FONT)
Set the font used to draw TEXT objects. The size of the font may be set by TEXT SIZE.

Clicking this button with mouse button 1 will popup the Font Panel to select the font.

(TEXT SIZE)
Set the size (point size) of TEXT object. The default is 12 points. The font itself is set by TEXT FONT.

(TEXT STEP)
Set the vertical distance by which lines of text will be spaced when entering multiple lines in TEXT mode. The distance is the product of the height of the font (approximately TEXT SIZE) and this value.

(TEXT JUSTIFICATION)
Set which part of the text should be placed at the specified point when entering TEXT object.
LEFT JUSTIFIED
Place the left edge of the text at the specified point. This is the default.
CENTERED
Place the center of the text at the specified point.
RIGHT JUSTIFIED
Place the right edge of the text at the specified point.

(TEXT FLAGS)
Set the Hidden, Rigid and TeX flags of TEXT objects. These flags are used for special situations, and they are all OFF by default.

Clicking this button with mouse button 2 or mouse button 3 will switch which flag's state should be displayed on the button.

Clicking this button with mouse button 1 will popup this panel:

[Text Flags]

If the Hidden flag is set ON, the string `<<>>' is displayed on the canvas instead of the text itself. The text will output as usual when Printing or Exporting. This is useful to avoid text with long sequences of LaTeX commands which makes the display hard to read.

If the Rigid flag is ON, the size of the font of the TEXT object will not be changed when a COMPOUND object which includes the TEXT object is scaled.

If the TeX flag is ON, special characters (such as `\' or `$', for example) in text will not be specially processed but passed to the output `as is' when Exporting. This may be used to put LaTeX commands in text. The use of LaTeX commands is especially helpful to put complex mathematical formulas in the figure, for example. If the TeX flag is OFF, the text will be processed before output, and special characters will be quoted. For example, `\' will be replaced by `\backslash', and `$' will be replaced by `\$'.


Dimension Lines
Set the attributes of dimension lines. One may have end-ticks on the lines, arrowheads, box around the text with or without a border, and the actual length of the line for the text or a user-defined text.
[Dimension Lines]
As you make changes to the settings, the image at the top of the panel shows what the dimension line would look like.

- Line - This is the main line
- Thickness
This is the thickness of the main dimension line. It may be 0, in which case no line is drawn.
- Style
The style of the line (solid, dash, etc.). The standard line style pulldown menu appears when this is pressed.
- Color
The color of the line. A color panel pops up when this is pressed, to choose the color.
- Arrows
- Types
When pressed a pulldown menu appears from which the user may select the arrowhead type (or none) for each end of the line.
- Length
The length of the arrowheads as a multiple of the main line thickness
- Width
The width of the arrowheads as a multiple of the main line thickness
- Box - This is the box drawn around the dimension text
- Thickness
The thickness of the line drawn around the box
- Color
The color used to fill the box. A color panel pops up.
- Ticks
- Show ticks
Checkbox to show or hide end ticks on main line.
- Thickness
The thickness of the ticks
- Text - The text showing the length of the line
- Font
When pressed the standard font menu pops up to choose the font.
- Size
The font size in points.
- Color
Text color popup menu.
- Text type
Checkboxes - show actual dimension of line even when the line is resized, or show user-entered text.
-

Colors Panel

The Colors Panel is used to choose or define colors for the outline of objects or the fill area inside objects, and it will popup when either PEN COLOR button or FILL COLOR button is clicked.

[Color Panel]

- Edit Pen
If this button is selected, the PEN COLOR (color to draw outline of object) may be selected. If this panel is popped up by clicking PEN COLOR button, this button is selected initially.

- Edit Fill
If this button is selected, the FILL COLOR (color to fill region inside of object) may be selected. If this panel is popped up by clicking FILL COLOR button, this button is selected initially.

- Standard Colors
This is a panel of 32 standard color buttons. Any of these colors may be selected by clicking on the color. The standard colors are black, yellow, white, gold, five shade of blue, four shade of green, four shade of cyan, four shade of red, five shade of magenta, four shade of brown, and four shade of pink. Additional colors may be defined by User Defined Colors.

- User Defined Colors
- Add Color
This button will add a new user-defined color in the box under User Defined Colors. Its initial color is black. The color sliders may be used to change the color.
- Lookup Color
This button will also add new user-defined color, by getting a color from the display. After clicking Lookup Color, click on any color on the display and that color will be used for the new user-defined color.
- Delete
This button will delete a user-defined color. A user-defined color may be deleted by clicking this button after selecting a color cell. However, the color may not be deleted if the color is in use by any objects in the current figure.
- UnDelete
This button will undo the last delete of user-defined color.
- Delete Unused
This button will delete any unused user-defined colors. Notice that the number of colors actually in use are displayed next to the "User Defined Colors" title. Also, the borders of the colors in use are drawn in green, while the borders of unused colors are black. The border of the selected color is red.
- RGB and HSV Sliders
The user-defined colors may be modified using RGB (red/green/blue) or HSV (hue/saturation/value) sliders. It is also possible to enter hexadecimal values to indicate the intensity of red, green and blue (each value is 00 to FF) into the fields under Edit Pen and Edit Fill.

If two or three of the buttons above the red, green and blue sliders are checked (the figure shows the red and green locked), those sliders will be `locked' together, so that moving the Lock slider will move those sliders together.

-

Font Panel

The Font Panel is used to select the font to draw text, and it will popup when the TEXT FONT button is clicked. Only the font name may be selected here; the size of the font must be set using TEXT SIZE.

There are two Font Panels; one for PostScript fonts and one for LaTeX fonts.

[Font Panel - PostScript]

[Font Panel - LaTeX]

Clicking a font button (the labels of the buttons are drawn using the font) will select that font. Clicking the Use LaTeX Fonts button will switch to the panel for LaTeX fonts, and clicking Use PostScript Fonts button will switch to the panel for PostScript fonts.

It is not guaranteed that all fonts in the panel of PostScript fonts are available on all PostScript printers. Also, different fonts may be used on the screen. This is dependent on which fonts the X server has. But at least Times-Roman, Times-Italic, Times-Bold, Times-BoldItalic, Courier, Courier-Oblique, Courier-Bold, Courier-BoldOblique, Helvetica, Helvetica-Oblique, Helvetica-Bold and Helvetica-BoldOblique will be available in most environments.

[I18N] If xfig is started in a japanese or korean environment "Times-Roman" and "Times-Bold" will be replaced with

Times-Roman + Mincho and Times-Bold + Gothic
in the Japanese environment, and
Times-Roman + Mincho and Times-Bold + Gothic
in the Korean environment. See Internationalization about this.


[ Contents | Introduction | Credits ]