www.delorie.com/gnu/docs/fontutils/fontu_63.html | search |
Buy GNU books! | |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
This section lists all the TFM fontdimens recognized by these programs: all those recognized by TeX, plus a few others we thought would prove useful when writing TeX macros.
A fontdimen is an arbitrary number, in all cases but one
(slant
, see below) measured in printer's points, which is
associated with a particular font. Their values are stored in the TFM
file for the font. We also refer, context permitting, to fontdimens as
"font parameters", or simply "parameters".
Fontdimens affect many aspects of TeX's behavior: the interword spacing, accent placement, and math formula construction. The math fontdimens in particular are fairly obscure; if you don't have a firm grasp on how TeX constructs math formulas, the explanations below will probably be meaningless to you, and--unless you're making a font for math typesetting--can be ignored.
The `common.cmi' file which Charspace reads sets reasonable defaults for the fontdimens relevant to normal text typesetting.
When TeX (or other programs) scale a font, its fontdimen values are scaled proportionally to the design size. For example, suppose the designsize of some font f is 10pt, and some fontdimen in f has the value 7.5pt. Then if the font is used scaled to 20pt, the fontdimen's value is scaled to 15pt.
You can get the table of fontdimen values in a particular TFM file by running the standard TeX utility program PLtoTF and inspecting its (human-readable text) output.
In our programs and in PLtoTF, fontdimens are typically shown by their names. But each also has a number, starting at 1. You can use either the number or the name on the command line (in the argument to the `-fontdimens' option). The numbers are given in parentheses after the name in the table below.
In a few cases (fontdimens 8--13), the same number fontdimen has two different names, and two different meanings. This does not cause problems in practice, because these fontdimens are used only in the TeX math symbol and math extension fonts, which TeX can distinguish via its "math families" (see The TeXbook for the details).
slant (1)
slant
parameter is not scaled
with the font when it is loaded. It defines the "slant per pt" of the
font; for example, a slant
of 0.2 means a 1pt-high
character stem would end 0.2pt to the right of where it began.
This value is typical for slanted or italic fonts; for normal upright
fonts, slant
is zero, naturally. TeX uses this to position
accents.
space (2)
space
parameter defines the normal interword space of the
font. This is typically about one-third of the design size, but it
varies according to the type design: a narrow, spiky typeface will
have a small interword space relative to a wide, regular one.
Exception: in math fonts, the interword space is zero.
stretch (3)
stretch
parameter defines the interword stretch of the font.
This is typically about one-half of the space
parameter. TeX
is reluctant to increase interword spacing beyond the width
space
+ stretch
. In monospaced fonts, the stretch
is typically zero.
shrink (4)
shrink
parameter defines the interword shrink of the font.
This is typically about one-third of the space
parameter. TeX
does not decrease interword spacing beyond the width space
- shrink
. In monospaced fonts, the shrink is typically zero.
xheight (5)
xheight
parameter defines the x-height of the font, i.e., the
main body size. The height of the lowercase `x' is often used for this,
since neither the top nor the bottom of `x' are curves. There is no
hard-and-fast rule in TeX that the x-height must equal the height of
`x', however.
This fontdimen defines the value of the ex
dimension in TeX.
TeX also uses this to position: it assumes the accents in the font
are properly positioned over a character that is exactly 1ex high.
quad (6)
quad
fontdimen defines the value of the em
dimension
in TeX. This is often the same as the design size of the font, but
as usual, that's not an absolute requirement.
Typesetters often use em
s and ex
s instead of hardwiring
dimensions in terms of (say) points; that way, experimenting with
different fonts for a particular job does not require changing the
dimensions.
extraspace (7)
extraspace
fontdimen defines the space TeX puts at the end
of sentence. (Technically, when the \spacefactor
is 20000 or
more.) This is typically about one-sixth of the normal interword space.
num1 (8)
(Sorry, we haven't written a description of the math fontdimens yet.)
num2 (9)
num3 (10)
denom1 (11)
denom2 (12)
sup1 (13)
sup2 (14)
sup3 (15)
sub1 (16)
sub2 (17)
supdrop (18)
subdrop (19)
delim1 (20)
delim2 (21)
axisheight (22)
defaultrulethickness (8)
bigopspacing1 (9)
bigopspacing2 (10)
bigopspacing3 (11)
bigopspacing4 (12)
bigopspacing5 (13)
leadingheight (23)
leadingheight
parameter defines the height component of the
recommended leading for this font. Leading is the
baseline-to-baseline distance when setting lines of type.
TeX does not automatically use this fontdimen, and the standard TeX fonts do not define it, but you may wish to include it in new fonts for the benefit of future TeX macro. This fontdimen is a GNU extension.
leadingdepth (24)
leadingdepth
parameters defines the depth of the recommended
leading for this font. See leadingheight
directly above. This
fontdimen is a GNU extension.
fontsize (25)
fontsize
parameter is the design size of the font. This is
needed for TeX macros to find the font's design size. This fontdimen
is a GNU extension.
version (26)
version
parameter identifies a particular version of the TFM
file. Whenever the character dimensions, kerns, or ligature table for a
font changes, it is good to increment the version number. It is also good
to keep such changes to a minimum, since they can change the line breaks
and page breaks in documents typeset with previous versions. This
fontdimen is a GNU extension.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
webmaster donations bookstore | delorie software privacy |
Copyright © 2003 by The Free Software Foundation | Updated Jun 2003 |