For rendering text, there are three font possibilities. The default font is a vector font which constructs the characters using wire objects. The Manhattan font is a built-in bitmap font which constructs the characters using Manhattan polygons. The ``pretty'' font is one of the system fonts, which similarly creates characters constructed as Manhattan polygons.
The font used can be specified by setting variables, or more conveniently through use of the !logofont command. The !logofont command brings up the Font Selector pop-up, allowing the user to select a ``pretty'' font for use with the logo command. It also allows the user to select use of the internal (vector) font, or the Manhattan font. The buttons along the bottom of the pop-up accomplish this, and the label at the bottom indicates the current selection.
The Manhattan font can also be enabled for the creation of new physical labels by setting the variable LogoManhattan with the !set command, i.e.,
!set LogoManhattanThe minimum size for a ``pixel'' in this and the ``pretty'' font is the MinWidth design rule parameter. The Manhattan font is fixed-pitch with an 8X16 map.
Use of the ``pretty'' font is enabled by setting the boolean variable LogoPretty. This variable, and the LogoManhattan variable, can be set through the !logofont command. When LogoPretty is set, the logo command will use a font derived from the screen fonts supplied by the system. The LogoPretty variable overrides the LogoManhattan variable, if both are set. When LogoPretty is set, the logo command will use the font named in the LogoPrettyFont variable, or a default font if this variable is not set. This variable can be set by hand, or can be set from the !logofont command. Under Unix/Linux, in gtk1 releases this variable can be set to the X font description name of an X font. In gtk2 releases, a Pango font description string is expected. Under Windows, the variable is set to a string in the form ``face_name pixel_height'' or the deprecated form ``(pixel_height)face_name''. Examples are ``Lucida Console 24'' or ``(24)Lucida Console'', which is the default font.
When using the default vector font, there is a path width parameter which takes integer values from 1 through 5. A larger parameter produces a thicker path, making the characters appear increasingly bold. The value of this parameter can be set with the LogoPathWidth variable, e.g.,
!set LogoPathWidth 3The default value is 1. This parameter applies only to the vector font, and has no effect when rendering the Manhattan or pretty fonts. While in the logo command and using the vector font, pressing the Ctrl-Shift-arrow key combinations will adjust the path width; the Up and Right arrow keys increase the width, Down and Left arrows decrease the path width.
Instead of a text label, the logo command can be used to place an image. The image must be provided by a file in the XPM format. This is a simple ascii bitmap format, commonly used in conjunction with the X-windows system on Unix machines. Other types of bitmap files can be converted to XPM format with widely available free software, such as the ImageMagick package. Several XPM files are supplied in the help directory for Xic (located by default in /usr/local/lib/xictools/xic/help), which illustrate the format.
This feature is enabled in the logo command by giving the path of an XPM file, which must have a ``.xpm'' suffix, as the text string. This will cause the image to be imported such that it can be scaled, transformed, and placed, just like a normal label. The background color (the first color listed in the XPM file) is taken as transparent. All other layers found in the XPM file are mapped to the current layer. The image is rendered as a collection of Manhattan polygons.
The minimum size of a character cell is about .8 X 1.4 microns (design rules permitting) for the vector font, while the maximum size is about .4 X .7 cm. Once the text is entered, the size and other attributes can be changed with the arrow keys, and the text is placed where the user clicks in the drawing with button 1. The text can be reentered, i.e., a new label or image file defined, if the Delete key is pressed.
The default operation is to apply the text or image feature directly in the current cell, where the user clicks. Previous versions of this command instead created a subcell containing the text, which was instantiated at the clicked-on locations. This may be more efficient if there are many copies of the same label. This operating mode can be enabled by setting the variable LogoToFile with the !set command.
The name of the file used for the label is internally generated, and is guaranteed to be unique in the current search path. The name consists of the first 8 characters of the label, followed by an encoding of the various parameters related to the label. For a given label, the uniqueness of the file name prevents recreating the same label file in a subsequent session.
Note that although the character path width is MinWidth or larger, some characters may produce design rule violations due to acute angles. When physical text (or an image) is placed with the logo command, interactive design rule checking is suppressed. The NoDRC flag can be set on the new label, or the NDRC layer can be used, to permanently suppress DRC.
The vector font used to render the characters can be modified, through use of a font file named ``xic_logofont''. This has syntax identical to the ``xic_font'' file described with the label command. The existing logo font can be dumped to a file with the !dumplogofont command. Also, the variable LogoEndStyle can be set to change the default end style used for the paths. The variable should be set to an integer 0-2, where 0 is for flush ends, 1 for rounded ends, and 2 for extended ends. This variable is ignored if the vector font is not in use.