NAME
       font - Create and inspect fonts.

SYNOPSIS
       font option ?arg arg ...?

DESCRIPTION
       The  font  command provides several facilities for dealing
       with fonts, such as defining named  fonts  and  inspecting
       the  actual attributes of a font.  The command has several
       different forms, determined by the  first  argument.   The
       following forms are currently supported:

       font actual font ?-displayof window? ?option?
              Returns information about the the actual attributes
              that are obtained when font  is  used  on  window's
              display;  the actual attributes obtained may differ
              from the  attributes  requested  due  to  platform-
              dependant  limitations, such as the availability of
              font families  and  pointsizes.   font  is  a  font
              description;  see  FONT DESCRIPTIONS below.  If the
              window argument is omitted, it defaults to the main
              window.   If option is specified, returns the value
              of that attribute; if it  is  omitted,  the  return
              value  is  a  list  of all the attributes and their
              values.  See FONT OPTIONS below for a list  of  the
              possible attributes.

       font configure fontname ?option? ?value option value ...?
              Query  or  modify  the  desired  attributes for the
              named font called fontname.  If no option is speci-
              fied, returns a list describing all the options and
              their values for fontname.  If a single  option  is
              specified  with  no value, then returns the current
              value  of  that  attribute.    If   one   or   more
              option-value  pairs are specified, then the command
              modifies the given named font  to  have  the  given
              values;  in  this case, all widgets using that font
              will redisplay themselves using the new  attributes
              for the font.  See FONT OPTIONS below for a list of
              the possible attributes.

       font create ?fontname? ?option value ...?
              Creates a new named  font  and  returns  its  name.
              fontname  specifies the name for the font; if it is
              omitted, then Tk generates a new name of  the  form
              fontx,  where  x  is  an integer.  There may be any
              number of option-value  pairs,  which  provide  the
              desired  attributes  for  the  new named font.  See
              FONT OPTIONS below  for  a  list  of  the  possible
              attributes.

       font delete fontname ?fontname ...?
              Delete  the  specified  named  fonts.  If there are
              widgets using the named font, the named font  won't
              actually  be  deleted  until  all the instances are
              released.  Those widgets will continue  to  display
              using the last known values for the named font.  If
              a deleted named font is subsequently recreated with
              another  call  to font create, the widgets will use
              the new named font and redisplay  themselves  using
              the new attributes of that font.

       font families ?-displayof window?
              The  return value is a list of the case-insensitive
              names of all font families that exist  on  window's
              display.   If  the  window  argument is omitted, it
              defaults to the main window.

       font measure font ?-displayof window? text
              Measures the amount of space the string text  would
              use  in  the  given  font when displayed in window.
              font is a font description; see  FONT  DESCRIPTIONS
              below.   If  the  window  argument  is  omitted, it
              defaults to the main window.  The return  value  is
              the  total  width  in pixels of text, not including
              the extra pixels used by highly exagerrated charac-
              ters such as cursive ``f''.  If the string contains
              newlines or tabs, those characters are not expanded
              or treated specially when measuring the string.

       font metrics font ?-displayof window? ?option?
              Returns  information  about  the metrics (the font-
              specific data), for font when it is  used  on  win-
              dow's  display.   font  is  a font description; see
              FONT DESCRIPTIONS below.  If the window argument is
              omitted, it defaults to the main window.  If option
              is specified, returns the value of that metric;  if
              it  is  omitted,  the return value is a list of all
              the metrics and their  values.   See  FONT  METRICS
              below for a list of the possible metrics.

       font names
              The  return  value is a list of all the named fonts
              that are currently defined.

FONT DESCRIPTION
       The following formats are accepted as a  font  description
       anywhere  font  is  specified  as an argument above; these
       same forms are also permitted when  specifying  the  -font
       option for widgets.

       [1] fontname
              The  name  of  a named font, created using the font
              create command.  When a widget uses a  named  font,
              it  is  guaranteed  that  this  will never cause an
              error, as long as the named font exists, no  matter
              what  potentially  invalid  or  meaningless  set of
              attributes the named font has.  If the  named  font
              cannot  be  displayed  with  exactly  the specified
              attributes, some other close font will  be  substi-
              tuted automatically.

       [2] systemfont
              The  platform-specific  name of a font, interpreted
              by the graphics server.  This also includes,  under
              X, an XLFD (see [4]) for which a single ``*'' char-
              acter was used to elide more than one field in  the
              middle  of  the name.  See PLATFORM-SPECIFIC issues
              for a list of the system fonts.

       [3] family ?size? ?style? ?style ...?
              A properly formed list whose first element  is  the
              desired  font family and whose optional second ele-
              ment is the desired size.   The  interpretation  of
              the size attribute follows the same rules described
              for -size in FONT OPTIONS  below.   Any  additional
              optional  arguments  following  the  size  are font
              styles.  Possible values for  the  style  arguments
              are as follows:

                     normal      bold        roman      italic
                     underline   overstrike


       [4] X-font names (XLFD)
              A  Unix-centric font name of the form -foundry-fam-
              ily-weight-slant-setwidth-addstyle-pixel-point-
              resx-resy-spacing-width-charset-encoding.       The
              ``*'' character may  be  used  to  skip  individual
              fields  that  the  user does not care about.  There
              must be exactly one ``*'' for each  field  skipped,
              except  that  a  ``*'' at the end of the XLFD skips
              any remaining fields; the shortest  valid  XLFD  is
              simply  ``*'',  signifying  all fields as defaults.
              Any fields that were skipped are given default val-
              ues.   For  compatibility, an XLFD always chooses a
              font of the specified pixel size (not point  size);
              although  this  interpretation is not strictly cor-
              rect, all existing applications using XLFDs assumed
              that  one ``point'' was in fact one pixel and would
              display incorrectly (generally larger) if the  cor-
              rect size font were actually used.

       [5] option value ?option value ...?
              A  properly  formed list of option-value pairs that
              specify the desired attributes of the font, in  the
              same  format  used  when defining a named font; see
              FONT OPTIONS below.

       When font description font is used, the system attempts to
       parse  the description according to each of the above five
       rules, in the order specified.  Cases  [1]  and  [2]  must
       match  the  name  of an existing named font or of a system
       font.  Cases [3], [4], and [5] are accepted on  all  plat-
       forms  and  the  closest  available font will be used.  In
       some situations it may not be possible to find  any  close
       font  (e.g., the font family was a garbage value); in that
       case, some system-dependant default font  is  chosen.   If
       the  font description does not match any of the above pat-
       terns, an error is generated.

FONT METRICS
       The following options are used by the font metrics command
       to  query  font-specific data determined when the font was
       created.  These properties are for the whole  font  itself
       and  not for individual characters drawn in that font.  In
       the following definitions, the ``baseline'' of a  font  is
       the  horizontal line where the bottom of most letters line
       up; certain letters, such as lower-case ``g'' stick  below
       the baseline.

       -ascent
              The amount in pixels that the tallest letter sticks
              up above the baseline of the font, plus  any  extra
              blank space added by the designer of the font.

       -descent
              The largest amount in pixels that any letter sticks
              down below the baseline of the font, plus any extra
              blank space added by the designer of the font.

       -linespace
              Returns  how  far  apart  vertically  in pixels two
              lines of text using the same font should be  placed
              so  that none of the characters in one line overlap
              any of the characters in the other line.   This  is
              generally  the sum of the ascent above the baseline
              line plus the descent below the baseline.

       -fixed
              Returns a boolean flag that is ``1'' if this  is  a
              fixed-width  font,  where  each normal character is
              the the same width as all the other characters,  or
              is  ``0''  if this is a proportionally-spaced font,
              where individual characters have different  widths.
              The  widths  of control characters, tab characters,
              and other non-printing characters are not  included
              when calculating this value.

FONT OPTIONS
       The  following options are supported on all platforms, and
       are used when constructing a named font or when specifying
       a font using style [5] as above:
       -family name
              The  case-insensitive font family name.  Tk guaran-
              tees to support the font families named Courier  (a
              monospaced  ``typewriter''  font), Times (a serifed
              ``newspaper'' font), and  Helvetica  (a  sans-serif
              ``European''  font).   The  most  closely  matching
              native font family will  automatically  be  substi-
              tuted  when one of the above font families is used.
              The name may also be the name of  a  native,  plat-
              form-specific  font  family;  in  that case it will
              work as desired on one platform but may not display
              correctly  on  other  platforms.   If the family is
              unspecified or  unrecognized,  a  platform-specific
              default font will be chosen.

       -size size
              The desired size of the font.  If the size argument
              is a positive number, it is interpreted as  a  size
              in points.  If size is a negative number, its abso-
              lute value is interpreted as a size in pixels.   If
              a font cannot be displayed at the specified size, a
              nearby size will be chosen.  If size is unspecified
              or  zero, a platform-dependent default size will be
              chosen.

              Sizes should normally be specified in points so the
              application  will remain the same ruler size on the
              screen, even when changing  screen  resolutions  or
              moving scripts across platforms.  However, specify-
              ing pixels is useful in certain circumstances  such
              as  when  a piece of text must line up with respect
              to a fixed-size bitmap.  The mapping between points
              and  pixels  is  set  when  the application starts,
              based on properties of the installed  monitor,  but
              it can be overridden by calling the tk scaling com-
              mand.

       -weight weight
              The nominal thickness  of  the  characters  in  the
              font.   The  value normal specifies a normal weight
              font, while bold specifies a bold font.  The  clos-
              est  available  weight to the one specified will be
              chosen.  The default weight is normal.

       -slant slant
              The amount the characters in the font  are  slanted
              away from the vertical.  Valid values for slant are
              roman and italic.  A  roman  font  is  the  normal,
              upright  appearance of a font, while an italic font
              is one that is tilted some number of  degrees  from
              upright.   The  closest  available slant to the one
              specified will be chosen.   The  default  slant  is
              roman.
       -underline boolean
              The  value is a boolean flag that specifies whether
              characters in this font should be underlined.   The
              default value for underline is false.

       -overstrike boolean
              The  value is a boolean flag that specifies whether
              a horizontal line should be drawn through the  mid-
              dle  of characters in this font.  The default value
              for overstrike is false.


PLATFORM-SPECIFIC ISSUES
       The following named system fonts are supported:

              X Windows:
                     All valid  X  font  names,  including  those
                     listed by xlsfonts(1), are available.

              MS Windows:

                     system      ansi        device
                     systemfixed ansifixed   oemfixed


              Macintosh:

                     system      application


SEE ALSO
       options


KEYWORDS
       font
