Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
font(n)			     Tk	Built-In Commands		       font(n)

______________________________________________________________________________

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? ?--? ?char?
	      Returns information about	the actual  attributes	that  are  ob-
	      tained  when  font  is  used on window's display;	the actual at-
	      tributes obtained	may differ from	the attributes	requested  due
	      to  platform-dependent  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  OP-
	      TIONS  below for a list of the possible attributes.  If the char
	      argument is supplied, it must be a single	 character.  The  font
	      attributes  returned  will be those of the specific font used to
	      render that character, which will	be  different  from  the  base
	      font  if the base	font does not contain the given	character.  If
	      char may be a hyphen, it should be preceded by --	to distinguish
	      it from a	misspelled option.

       font configure fontname ?option?	?value option value ...?
	      Query or modify the desired attributes for the named font	called
	      fontname.	 If no option is specified, returns a list  describing
	      all  the options and their values	for fontname.  If a single op-
	      tion is specified	with no	value, then returns the	current	 value
	      of that attribute.  If one or more option-value pairs are	speci-
	      fied, then the command modifies the given	named font to have the
	      given values; in this case, all widgets using that font will re-
	      display 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	speci-
	      fies 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 will not actually	be deleted un-
	      til 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 re-
	      display 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 ar-
	      gument 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 descrip-
	      tion; 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  pix-
	      els  used	 by highly exaggerated characters 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 window's display.  font  is  a  font
	      description;  see	 FONT DESCRIPTIONS below.  If the window argu-
	      ment 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 cur-
	      rently 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  mat-
	      ter  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
	      substituted automatically.

       [2] systemfont
	      The platform-specific name of a font, interpreted	by the	graph-
	      ics  server.  This also includes,	under X, an XLFD (see [4]) for
	      which a single "*" character 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 element is the desired size.
	      The interpretation of the	size attribute follows the same	 rules
	      described	 for  -size in FONT OPTIONS below.  Any	additional op-
	      tional 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-spac-
	      ing-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 de-
	      faults.  Any fields that were skipped are	given default  values.
	      For  compatibility,  an XLFD always chooses a font of the	speci-
	      fied pixel size (not point size);	although  this	interpretation
	      is  not  strictly	correct, all existing applications using XLFDs
	      assumed that one "point" was in fact one pixel and would display
	      incorrectly (generally larger) if	the correct size font were ac-
	      tually 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
       platforms and the closest available font	will be	used.  In some	situa-
       tions  it  may  not  be possible	to find	any close font (e.g., the font
       family was a garbage value); in that case,  some	 system-dependent  de-
       fault  font  is	chosen.	 If the	font description does not match	any of
       the above patterns, 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 proper-
       ties 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 us-
	      ing the same font	should be placed so that none of  the  charac-
	      ters  in	one  line  overlap  any	of the characters in the other
	      line.  This is generally the sum of the ascent above  the	 base-
	      line 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 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 guarantees 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 substituted when one	of the
	      above font families is used.  The	name may also be the name of a
	      native, platform-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	 posi-
	      tive  number, it is interpreted as a size	in points.  If size is
	      a	negative number, its absolute 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	chang-
	      ing screen resolutions or	moving scripts across platforms.  How-
	      ever, specifying 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	 closest 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 middle of  characters  in  this
	      font.  The default value for overstrike is false.

STANDARD FONTS
       The  following named fonts are supported	on all systems,	and default to
       values that match appropriate system defaults.

       TkDefaultFont
	      This font	is the default for all GUI items not otherwise	speci-
	      fied.

       TkTextFont
	      This  font  should be used for user text in entry	widgets, list-
	      boxes etc.

       TkFixedFont
	      This font	is the standard	fixed-width font.

       TkMenuFont
	      This font	is used	for menu items.

       TkHeadingFont
	      This font	should be used for column headings in  lists  and  ta-
	      bles.

       TkCaptionFont
	      This font	should be used for window and dialog caption bars.

       TkSmallCaptionFont
	      This  font  should  be used for captions on contained windows or
	      tool dialogs.

       TkIconFont
	      This font	should be used for icon	captions.

       TkTooltipFont
	      This font	should be used for tooltip windows (transient informa-
	      tion windows).

       It  is not advised to change these fonts, as they may be	modified by Tk
       itself in response to system changes. Instead, make a copy of the  font
       and modify that.

PLATFORM-SPECIFIC FONTS
       The following system fonts are supported:

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

       MS Windows
	      The following fonts are supported, and are mapped	to the	user's
	      style defaults.

		     system	 ansi	     device
		     systemfixed ansifixed   oemfixed

       Mac OS X
	      The  following fonts are supported, and are mapped to the	user's
	      style defaults.

		     system	 application menu

	      Additionally, the	following named	fonts provide  access  to  the
	      Aqua theme fonts:

		     systemSystemFont	 systemEmphasizedSystemFont
		     systemSmallSystemFontsystemSmallEmphasizedSystemFont
		     systemApplicationFontsystemLabelFont
		     systemViewsFont	 systemMenuTitleFont
		     systemMenuItemFont	 systemMenuItemMarkFont
		     systemMenuItemCmdKeyFontsystemWindowTitleFont
		     systemPushButtonFontsystemUtilityWindowTitleFont
		     systemAlertHeaderFontsystemToolbarFont
		     systemMiniSystemFontsystemDetailSystemFont
		     systemDetailEmphasizedSystemFont

EXAMPLE
       Fill  a text widget with	lots of	font demonstrators, one	for every font
       family installed	on your	system:
	      pack [text .t -wrap none]	-fill both -expand 1
	      set count	0
	      set tabwidth 0
	      foreach family [lsort -dictionary	[font families]] {
		  .t tag configure f[incr count] -font [list $family 10]
		  .t insert end	${family}:\t {}	\
			  "This	is a simple sampler\n" f$count
		  set w	[font measure [.t cget -font] ${family}:]
		  if {$w+5 > $tabwidth}	{
		      set tabwidth [expr {$w+5}]
		      .t configure -tabs $tabwidth
		  }
	      }

SEE ALSO
       options(n)

KEYWORDS
       font

Tk				      8.0			       font(n)

NAME | SYNOPSIS | DESCRIPTION | FONT DESCRIPTION | FONT METRICS | FONT OPTIONS | STANDARD FONTS | PLATFORM-SPECIFIC FONTS | EXAMPLE | SEE ALSO | KEYWORDS

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=font.tk85&manpath=FreeBSD+13.0-RELEASE+and+Ports>

home | help