font.n
上传用户:rrhhcc
上传日期:2015-12-11
资源大小:54129k
文件大小:13k
源码类别:

通讯编程

开发平台:

Visual C++

  1. '"
  2. '" Copyright (c) 1996 Sun Microsystems, Inc.
  3. '" Copyright (c) 2006-2007 Daniel A. Steffen <das@users.sourceforge.net>
  4. '"
  5. '" See the file "license.terms" for information on usage and redistribution
  6. '" of this file, and for a DISCLAIMER OF ALL WARRANTIES.
  7. '" 
  8. '" RCS: @(#) $Id: font.n,v 1.3.8.3 2007/11/05 17:21:58 dgp Exp $
  9. '" 
  10. .so man.macros
  11. .TH font n 8.0 Tk "Tk Built-In Commands"
  12. .BS
  13. '" Note:  do not modify the .SH NAME line immediately below!
  14. .SH NAME
  15. font - Create and inspect fonts.
  16. .SH SYNOPSIS
  17. fBfontfI option fR?fIarg arg ...fR?
  18. .BE
  19. .SH DESCRIPTION
  20. .PP
  21. The fBfontfR command provides several facilities for dealing with
  22. fonts, such as defining named fonts and inspecting the actual attributes of
  23. a font.  The command has several different forms, determined by the
  24. first argument.  The following forms are currently supported:
  25. .TP
  26. fBfont actual fIfontfR ?fB-displayof fIwindowfR? ?fIoptionfR?  
  27. .
  28. Returns information about the actual attributes that are obtained when
  29. fIfontfR is used on fIwindowfR's display; the actual attributes obtained
  30. may differ from the attributes requested due to platform-dependent
  31. limitations, such as the availability of font families and pointsizes.
  32. fIfontfR is a font description; see FONT DESCRIPTIONS below.  If the
  33. fIwindowfR argument is omitted, it defaults to the main window.  If
  34. fIoptionfR is specified, returns the value of that attribute; if it is
  35. omitted, the return value is a list of all the attributes and their values.
  36. See FONT OPTIONS below for a list of the possible attributes.
  37. .TP 
  38. fBfont configure fIfontnamefR ?fIoptionfR? ?fIvalue option value ...fR?  
  39. .
  40. Query or modify the desired attributes for the named font called
  41. fIfontnamefR.  If no fIoptionfR is specified, returns a list describing
  42. all the options and their values for fIfontnamefR.  If a single fIoptionfR 
  43. is specified with no fIvaluefR, then returns the current value of that
  44. attribute.  If one or more fIoptionfR-fIvaluefR pairs are specified,
  45. then the command modifies the given named font to have the given values; in
  46. this case, all widgets using that font will redisplay themselves using the
  47. new attributes for the font.  See FONT OPTIONS below for a list of the
  48. possible attributes.
  49. .TP
  50. fBfont createfR ?fIfontnamefR? ?fIoption value ...fR?
  51. .
  52. Creates a new named font and returns its name.  fIfontnamefR specifies the
  53. name for the font; if it is omitted, then Tk generates a new name of the
  54. form fBfontfIxfR, where fIxfR is an integer.  There may be any number
  55. of fIoptionfR-fIvaluefR pairs, which provide the desired attributes for
  56. the new named font.  See FONT OPTIONS below for a list of the possible
  57. attributes.
  58. .TP
  59. fBfont deletefR fIfontnamefR ?fIfontname ...fR?
  60. .
  61. Delete the specified named fonts.  If there are widgets using the named font,
  62. the named font won't actually be deleted until all the instances are
  63. released.  Those widgets will continue to display using the last known values
  64. for the named font.  If a deleted named font is subsequently recreated with
  65. another call to fBfont createfR, the widgets will use the new named font
  66. and redisplay themselves using the new attributes of that font.
  67. .TP
  68. fBfont familiesfR ?fB-displayof fIwindowfR?
  69. .
  70. The return value is a list of the case-insensitive names of all font families 
  71. that exist on fIwindowfR's display.  If the fIwindowfR argument is
  72. omitted, it defaults to the main window.
  73. .TP
  74. fBfont measure fIfontfR ?fB-displayof fIwindowfR? fItextfR 
  75. .
  76. Measures the amount of space the string fItextfR would use in the given
  77. fIfontfR when displayed in fIwindowfR.  fIfontfR is a font description;
  78. see FONT DESCRIPTIONS below.  If the fIwindowfR argument is omitted, it
  79. defaults to the main window.  The return value is the total width in pixels
  80. of fItextfR, not including the extra pixels used by highly exaggerated
  81. characters such as cursive ``f''.  If the string contains newlines or tabs,
  82. those characters are not expanded or treated specially when measuring the
  83. string.
  84. .TP
  85. fBfont metrics fIfontfR ?fB-displayof fIwindowfR? ?fIoptionfR?
  86. .
  87. Returns information about the metrics (the font-specific data), for
  88. fIfontfR when it is used on fIwindowfR's display.  fIfontfR is a font
  89. description; see FONT DESCRIPTIONS below.  If the fIwindowfR argument is
  90. omitted, it defaults to the main window.  If fIoptionfR is specified,
  91. returns the value of that metric; if it is omitted, the return value is a 
  92. list of all the metrics and their values.  See FONT METRICS below for a list
  93. of the possible metrics.
  94. .TP
  95. fBfont namesfR
  96. The return value is a list of all the named fonts that are currently defined.
  97. .SH "FONT DESCRIPTION"
  98. .PP
  99. The following formats are accepted as a font description anywhere
  100. fIfontfR is specified as an argument above; these same forms are also
  101. permitted when specifying the fB-fontfR option for widgets.
  102. .TP
  103. [1] fIfontnamefR 
  104. .
  105. The name of a named font, created using the fBfont createfR command.  When
  106. a widget uses a named font, it is guaranteed that this will never cause an
  107. error, as long as the named font exists, no matter what potentially invalid
  108. or meaningless set of attributes the named font has.  If the named font
  109. cannot be displayed with exactly the specified attributes, some other close
  110. font will be substituted automatically.
  111. .TP
  112. [2] fIsystemfontfR
  113. .
  114. The platform-specific name of a font, interpreted by the graphics server.
  115. This also includes, under X, an XLFD (see [4]) for which a single ``fB*fR''
  116. character was used to elide more than one field in the middle of the
  117. name.  See PLATFORM-SPECIFIC issues for a list of the system fonts.
  118. .VS 8.0 br
  119. .TP
  120. [3] fIfamily fR?fIsizefR? ?fIstylefR? ?fIstyle ...fR?
  121. .
  122. A properly formed list whose first element is the desired font
  123. fIfamilyfR and whose optional second element is the desired fIsizefR.
  124. The interpretation of the fIsizefR attribute follows the same rules
  125. described for fB-sizefR in FONT OPTIONS below.  Any additional optional
  126. arguments following the fIsizefR are font fIstylefRs.  Possible values
  127. for the fIstylefR arguments are as follows:
  128. .RS
  129. .DS
  130. .ta 3c 6c 9c
  131. fBnormal bold roman italic
  132. underline overstrikefR
  133. .DE
  134. .RE
  135. .TP 
  136. [4] X-font names (XLFD)
  137. .
  138. A Unix-centric font name of the form
  139. fI-foundry-family-weight-slant-setwidth-addstyle-pixel-point-resx-resy-spacing-width-charset-encodingfR.
  140. The ``fB*fR'' character may be used to skip individual fields that the
  141. user does not care about.  There must be exactly one ``fB*fR'' for each
  142. field skipped, except that a ``fB*fR'' at the end of the XLFD skips any
  143. remaining fields; the shortest valid XLFD is simply ``fB*fR'', signifying
  144. all fields as defaults.  Any fields that were skipped are given default
  145. values.  For compatibility, an XLFD always chooses a font of the specified
  146. pixel size (not point size); although this interpretation is not strictly
  147. correct, all existing applications using XLFDs assumed that one ``point''
  148. was in fact one pixel and would display incorrectly (generally larger) if
  149. the correct size font were actually used.
  150. .VE
  151. .TP
  152. [5] fIoption value fR?fIoption value ...fR?
  153. .
  154. A properly formed list of fIoptionfR-fIvaluefR pairs that specify
  155. the desired attributes of the font, in the same format used when defining
  156. a named font; see FONT OPTIONS below.
  157. .LP
  158. When font description fIfontfR is used, the system attempts to parse the
  159. description according to each of the above five rules, in the order specified.
  160. Cases [1] and [2] must match the name of an existing named font or of a
  161. system font.  Cases [3], [4], and [5] are accepted on all
  162. platforms and the closest available font will be used.  In some situations
  163. it may not be possible to find any close font (e.g., the font family was
  164. a garbage value); in that case, some system-dependent default font is
  165. chosen.  If the font description does not match any of the above patterns,
  166. an error is generated.  
  167. .SH "FONT METRICS"
  168. .
  169. The following options are used by the fBfont metricsfR command to query
  170. font-specific data determined when the font was created.  These properties are
  171. for the whole font itself and not for individual characters drawn in that
  172. font.  In the following definitions, the ``baseline'' of a font is the 
  173. horizontal line where the bottom of most letters line up; certain letters, 
  174. such as lower-case ``g'' stick below the baseline.
  175. .TP
  176. fB-ascent        fR
  177. .
  178. The amount in pixels that the tallest letter sticks up above the baseline of
  179. the font, plus any extra blank space added by the designer of the font.
  180. .TP
  181. fB-descent       fR 
  182. .
  183. The largest amount in pixels that any letter sticks down below the baseline
  184. of the font, plus any extra blank space added by the designer of the font.
  185. .TP
  186. fB-linespacefR
  187. .
  188. Returns how far apart vertically in pixels two lines of text using the same
  189. font should be placed so that none of the characters in one line overlap any
  190. of the characters in the other line.  This is generally the sum of the ascent
  191. above the baseline line plus the descent below the baseline.
  192. .TP
  193. fB-fixed          fR
  194. .
  195. Returns a boolean flag that is ``fB1fR'' if this is a fixed-width font,
  196. where each normal character is the same width as all the other
  197. characters, or is ``fB0fR'' if this is a proportionally-spaced font, where 
  198. individual characters have different widths.  The widths of control 
  199. characters, tab characters, and other non-printing characters are not 
  200. included when calculating this value.
  201. .SH "FONT OPTIONS"
  202. The following options are supported on all platforms, and are used when
  203. constructing a named font or when specifying a font using style [5] as
  204. above:
  205. .TP
  206. fB-family fInamefR 
  207. .
  208. The case-insensitive font family name.  Tk guarantees to support the font
  209. families named fBCourierfR (a monospaced ``typewriter'' font), fBTimesfR
  210. (a serifed ``newspaper'' font), and fBHelveticafR (a sans-serif
  211. ``European'' font).  The most closely matching native font family will
  212. automatically be substituted when one of the above font families is used.
  213. The fInamefR may also be the name of a native, platform-specific font
  214. family; in that case it will work as desired on one platform but may not
  215. display correctly on other platforms.  If the family is unspecified or 
  216. unrecognized, a platform-specific default font will be chosen.
  217. .VS
  218. .TP
  219. fB-size fIsizefR
  220. .
  221. The desired size of the font.  If the fIsizefR argument is a positive
  222. number, it is interpreted as a size in points.  If fIsizefR is a negative
  223. number, its absolute value is interpreted as a size in pixels.  If a
  224. font cannot be displayed at the specified size, a nearby size will be
  225. chosen.  If fIsizefR is unspecified or zero, a platform-dependent default
  226. size will be chosen.  
  227. .RS
  228. .PP
  229. Sizes should normally be specified in points so the application will remain
  230. the same ruler size on the screen, even when changing screen resolutions or
  231. moving scripts across platforms.  However, specifying pixels is useful in
  232. certain circumstances such as when a piece of text must line up with respect
  233. to a fixed-size bitmap.  The mapping between points and pixels is set when
  234. the application starts, based on properties of the installed monitor, but it
  235. can be overridden by calling the fBtk scalingfR command.
  236. .RE
  237. .VE
  238. .TP
  239. fB-weight fIweightfR 
  240. .
  241. The nominal thickness of the characters in the font.  The value
  242. fBnormalfR specifies a normal weight font, while fBboldfR specifies a
  243. bold font.  The closest available weight to the one specified will
  244. be chosen.  The default weight is fBnormalfR.
  245. .TP
  246. fB-slant fIslantfR
  247. The amount the characters in the font are slanted away from the
  248. vertical.  Valid values for slant are fBromanfR and fBitalicfR.
  249. A roman font is the normal, upright appearance of a font, while 
  250. an italic font is one that is tilted some number of degrees from upright.
  251. The closest available slant to the one specified will be chosen.
  252. The default slant is fBromanfR.
  253. .TP
  254. fB-underline fIbooleanfR
  255. The value is a boolean flag that specifies whether characters in this
  256. font should be underlined.  The default value for underline is fBfalsefR.
  257. .TP
  258. fB-overstrike fIbooleanfR 
  259. The value is a boolean flag that specifies whether a horizontal line should
  260. be drawn through the middle of characters in this font.  The default value
  261. for overstrike is fBfalsefR.
  262. .SH "PLATFORM-SPECIFIC ISSUES"
  263. .LP
  264. The following named system fonts are supported:
  265. .RS
  266. .TP 
  267. X Windows:
  268. All valid X font names, including those listed by xlsfonts(1), are available.
  269. .TP
  270. MS Windows:
  271. .DS
  272. .ta 3c 6c
  273. fBsystem ansi device
  274. systemfixed ansifixed oemfixedfR
  275. .DE
  276. .TP
  277. Mac OS X:
  278. .DS
  279. .ta 3c 6c
  280. fBsystem application menufR
  281. .DE
  282. .RE
  283. .SH EXAMPLE
  284. Fill a text widget with lots of font demonstrators, one for every font
  285. family installed on your system:
  286. .CS
  287. pack [text .t -wrap none] -fill both -expand 1
  288. set count 0
  289. set tabwidth 0
  290. foreach family [lsort -dictionary [fBfont familiesfR]] {
  291.     .t tag configure f[incr count] -font [list $family 10]
  292.     .t insert end ${family}:\t {} \
  293.             "This is a simple sampler\n" f$count
  294.     set w [fBfont measurefR [.t cget -font] ${family}:]
  295.     if {$w+5 > $tabwidth} {
  296.         set tabwidth [expr {$w+5}]
  297.         .t configure -tabs $tabwidth
  298.     }
  299. }
  300. .CE
  301. .SH "SEE ALSO"
  302. options(n)
  303. .SH KEYWORDS
  304. font