-
Notifications
You must be signed in to change notification settings - Fork 708
/
Copy pathnotes.src
585 lines (481 loc) · 21.4 KB
/
notes.src
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html lang="en">
<!-- $Id: notes.src,v 2.20 2011-10-18 19:25:27 bbos Exp $ -->
<HEAD>
<TITLE>Appendix C: Implementation and performance notes</TITLE>
<!--script src="http://www.w3c-test.org/css/harness/annotate.js#CSS21_DEV" type="text/javascript" defer></script-->
</HEAD>
<BODY>
<H1 align="center">Implementation and performance
notes for fonts</H1>
<P><em>This appendix is informative, not normative.</em></P>
<!--<H2>Fonts</H2>-->
<H2>Glossary of font terms</H2>
<dl>
<DT><a name="definingDocLock"><b>DocLock™</b></a>
<dd>Bitstream's <i>DocLock™</i> technology ensures that TrueDoc
PFRs can only be used with the site they are published for. A TrueDoc
PFR moved to a different site or referenced from another site will not
work.
<dt><a name="definingDSIG"><b>Digital Signature</b></a>
<dd>Part of a trust management technology, used to provide signed
assertions about a resource. <!-- DSIG for example in OpenType,
http://www.microsoft.com/TRUETYPE/OTSPEC/dsig.htm -->
<dt><a name="definingFontCaching"></A><b>Font Caching</b></dt>
<dd><i>Font caching</i> allows for a temporary copy of fonts on the client
system. They are often stored on disk with other cached items such as
graphics specifically for the UA.</dd>
<DT><a name="definingFontFace"><b>Font Face</b></A>
<DD>A "handle" that refers to a specific face of a font, excluding
the font size.
<!-- What does this mean: (? size may be needed for non-scalable
fonts) -IJ -->
<!-- Add a link to Font Face from first usage of term -IJ -->
<!-- font family -->
<dt><a name="definingFontMatching"></A><b>Font Matching</b></dt>
<dd><i>Font matching</i> is a process of selecting a similar font based
on using one or more attributes of the primary font. Common attribute include
serif, sans-serif, weight, cap height, x-height, spacing, language, and
posture. Font matching is dependent on the algorithm and the variety of
candidate fonts.</dd>
<dt><a name="definingSubsetting"></A><b>Glyph Representation Sub-setting</b></dt>
<dd><i>Glyph Representation sub-setting</i> is the process by which
unwanted glyph representations (together with their side bearings and
kerning information) are removed from a primary font to produce a
smaller subset font that covers a particular document or set of
documents. This is a particular win for documents that use ideographic
scripts, where the glyph complement of the base font can be very
large. Glyph representation sub-setting for documents using scripts
that require ligatures, such as Arabic, is difficult without knowing
the ligature formation rules of the final display system.</dd>
<dt><a name="definingIntellifont"><b>Intellifont</b></a>
<dd>Intellifont technology was developed by Agfa and is the native
format for Hewlett-Packard and other printers that use the PCL5
language. It is also the native font format on the Amiga
computers.
<dt><a name="defininginfinifont"><b>Infinifont</b></a>
<dd>A font synthesis technique which, given a Panose-1 number (and,
optionally, additional font description data) can generate a faux font
without extrapolating from a single master outline or interpolating
between two or more outlines (see [[-INFINIFONT]]).
<dt><a name="definingItalic"><b>Italic</b></a>
<dd>A class of letter forms for Latin scripts, that are more cursive
than roman letter forms but less so than script forms. Often, a pair of
fonts are designed to be used together; one is a serifed roman and one
is italic. Other terms to describe this class of letter forms include
cursive and, for Cyrillic scripts, kursiv. For sans-serif faces, the
companion face is often a slanted or oblique variant rather than a
different class of letter form.<br>
<P><img src="./images/italic-40.png" alt="Italic forms"></p>
<dt><a name="definingKern"><b>Kerning</b></a>
<dd>Altering the spacing between selected glyph representations, which
would otherwise appear to be too close or too far apart, to obtain a
more even typographical color.
<p><img src="./images/kern-22.png" alt="Illustration of kerning"></p>
<dt><a name="definingMultiMaster"></A><b>Multiple Master Font</b></dt>
<dd>A <i>Multiple Master Font</i> contains two (or more)
primary fonts that are used
with special rendering software to provide an interpolated result. Adobe
Systems provides a mechanism that allows for parameters to be used to control
the output or the interpolated output font. These parameters generally describe
the characteristics of an original font and the multiple master result
is referred to as a "synthesized font."</dd>
<dt><a name="definingOpenType"><b> Open Type</b></a>
<dd>Open Type is an extension to the TrueType font format that
contains additional information that extends the capabilities of the
fonts to support high-quality international typography. Open Type can
associate a single character with multiple glyph representations, and
combinations of characters with a single glyph representation
(ligature formation). Open Type includes two-dimensional information
to support features for complex positioning and glyph attachment.
TrueType Open and OpenType contain explicit script and language
information, so a text-processing application can adjust its behavior
accordingly (see [[-OPENTYPE]]).
<dt><a name="definingServerFont"></A><b>Server Font</b></dt>
<dd>A <i>Server Font</i> is a font resource located on the web server
that is referenced by the WebFont definition. The user agent may use
this resource for rendering the page.</dd>
<!-- script need a definition -->
<dt><a name="definingSpeedo"><b>Speedo</b></a>
<dd><i>Speedo</i> font technology was developed by Bitstream and is
the native font format on the Atari ST and Falcon computers. It is
also used by computers running the X window system.
<dt><a name="definingTrueDoc"></A><b>TrueDoc</b></dt>
<dd><i>TrueDoc</i> technology was developed by Bitstream for the
creation, transport, and imaging of platform independent scalable
font objects on the web. Creation of font objects is done by the
TrueDoc character shape recorder (CSR) and the rendering of the font
objects is done by TrueDoc's character shape player (CSP). The
technology is intended to be used on the web for viewing and
printing.</dd>
<dt><a name="definingTrueDocPFR"></A><b>TrueDoc Portable Font Resource</b></dt>
<dd>A <i>TrueDoc Portable font resource</i> (or, <b>PFR</b>) is a
platform-independent scalable font object that is produced by a
character shape player. Input may be either TrueType or Type 1 of any
flavor on either Windows, Mac, or Unix. TrueDoc Portable Font
Resources provide good compression ratios, are platform
independent, and because they are not in an native font format
(TrueType or Type 1) they can not be easily installed.</dd>
<dt><a name="definingTT"></A><b>TrueType</b></dt>
<dd><i>TrueType </i> is a font format developed by Apple and licensed
to Microsoft. TrueType is the native operating system font format for
Windows and Macintosh. TrueType contains a hierarchical set of tables
and glyph representations. Characters can be hinted on a per
character and point size basis yielding excellent quality at screen
resolutions. TrueType fonts for Windows and Mac have few differences,
though they can be different enough to prevent cross platform
usage. </dd>
<dt><a name="definingTTC"></A><b>TrueType Collection</b></dt>
<dd>A <i>TrueType Collection</i> (or <b>TTC</b>) is an extension to
the TrueType format that includes tables that allow for multiple
TrueType fonts to be contained within a single TrueType font file.
TrueType collection files are relatively rare at this time. </dd>
<!-- add CFF font sets -->
<dt><a name="definingTTGX"></A><b>TrueType GX Fonts</b></dt>
<dd><i>TrueType GX Fonts</i> contain extensions to the standard
TrueType format that allow for mutable fonts, similar to Multiple
Master fonts. There may be several mutation axis such as weight,
height, and slant. The axis can be defined to obtain almost any
effect. TrueType GX can also supports alternate glyph representation
substitution for ligatures, contextual forms, fractions, etc. To date,
TrueType GX is available only on the Mac (see [[-TRUETYPEGX]]).
<!-- TrueType Open, ME and FE Win only -->
<dt><a name="definingT1"></A><b>Type 1 font</b></dt>
<dd><i>Type 1 fonts</i>, developed by Adobe Systems, were one of first
scalable formats available. Type 1 fonts generally contain 228
characters with the glyph representations described using third degree
bezier curves. Mac, Windows, and X have similar but separate formats;
Adobe provides Adobe Type Manager for all three platforms. Type1c is a
more recent losslessly-compressed storage form for Type 1 glyph
representations.</dd>
<dt><a name="definingURIbound"><b>URI Binding</b></a>
<dd>A process of locking a particular font resource to a given Web
site by embedding an encrypted URI or a digitally signed usage
assertion into the font resource.
</dl>
<h2><a name=coneg>Font retrieval</a></h2>
<p>There are many different font formats in use by many different
platforms. To select a preferred font format, transparent content
negotiation is used (see [[-NEGOT]]). It is always possible to
tell when a font is being dereferenced, because the URI is inside a
font description. A given implementation will know which downloadable
font formats it supports and can thus use the format hint to avoid
downloading fonts in an unsupported format.
<h2><a name="panose">Meaning of the Panose Digits</a></h2>
<p><img src="./images/panose-16.png" alt="Illustration of Panose-1"></p>
<p>The Family, Serif Style and Proportion numbers are used by
Windows95 for font selection and matching.
<p>The meaning of the ten numbers and the allowable values (given in
parentheses) are given below for the most common case, where the "family"
digit is <tt>2, Text and Display</tt>. (If the first digit has a different
value, the remaining nine digits have different meanings). For further
details on Panose-1, see [[-PANOSE]].
<dl>
<dt>Family
<dd><ul>
<li>Any (0)
<li>No Fit (1)
<li>[[-PANOSE]] <b>Latin Text and Display</b> (2)
<li>[[-PANOSE]] <b>Latin Script</b> (3)
<li>[[-PANOSE]] <b>Latin Decorative</b> (4)
<li>[[-PANOSE]] <b>Latin Pictorial</b> (5)
</ul>
<dt>Serif Style
<dd><ul>
<li>Any (0)
<li>No Fit (1)
<li>Cove (2)
<li>Obtuse Cove (3)
<li>Square Cove (4)
<li>Obtuse Square Cove (5)
<li>Square (6)
<li>Thin (7)
<li>Bone (8)
<li>Exaggerated (9)
<li>Triangle (10)
<li>Normal Sans (11)
<li>Obtuse Sans (12)
<li>Perp Sans (13)
<li>Flared (14)
<li>Rounded (15)
</ul>
<dt>Weight
<dd><ul><li>Any (0)
<li>No Fit (1)
<li>Very Light (2)[100]
<li>Light (3) [200]
<li>Thin (4) [300]
<li>Book (5) [400] <i>same as CSS1 'normal'</i>
<li>Medium (6) [500]
<li>Demi (7) [600]
<li>Bold (8) [700] <i>same as CSS1 'bold'</i>
<li>Heavy (9) [800]
<li>Black (10) [900]
<li>Extra Black / Nord (11) [900] <i>force mapping to CSS1 100-900 scale</i>
</ul>
<dt>Proportion
<dd><ul>
<li>Any (0)
<li>No Fit (1)
<li>Old Style (2)
<li>Modern (3)
<li>Even Width (4)
<li>Expanded (5)
<li>Condensed (6)
<li>Very Expanded (7)
<li>Very Condensed (8)
<li>Monospaced (9)
</ul>
<dt>Contrast
<dd><ul><li>Any (0)
<li>No Fit (1)
<li>None (2)
<li>Very Low (3)
<li>Low (4)
<li>Medium Low (5)
<li>Medium (6)
<li>Medium High (7)
<li>High (8)
<li>Very High (9)
</ul>
<dt>Stroke Variation
<dd><ul><li>Any (0)
<li>No Fit (1)
<li>No Variation (2)
<li>Gradual/Diagonal (3)
<li>Gradual/Transitional (4)
<li>Gradual/Vertical (5)
<li>Gradual/Horizontal (6)
<li>Rapid/Vertical (7)
<li>Rapid/Horizontal (8)
<li>Instant/Horizontal (9)
<li>Instant/Vertical (10)
</ul>
<dt>Arm Style
<dd><ul><li>Any (0)
<li>No Fit (1)
<li>Straight Arms/Horizontal (2)
<li>Straight Arms/Wedge (3)
<li>Straight Arms/Vertical (4)
<li>Straight Arms/Single Serif (5)
<li>Straight Arms/Double Serif (6)
<li>Non-Straight Arms/Horizontal (7)
<li>Non-Straight Arms/Wedge (8)
<li>Non-Straight Arms/Vertical 90)
<li>Non-Straight Arms/Single Serif (10)
<li>Non-Straight Arms/Double Serif (11)
</ul>
<dt>Letterform
<dd>
<ul><li>Any (0)
<li>No Fit (1)
<li>Normal/Contact (2)
<li>Normal/Weighted (3)
<li>Normal/Boxed (4)
<li>Normal/Flattened (5)
<li>Normal/Rounded (6)
<li>Normal/Off Center (7)
<li>Normal/Square (8)
<li>Oblique/Contact (9)
<li>Oblique/Weighted (10)
<li>Oblique/Boxed (11)
<li>Oblique/Flattened (12)
<li>Oblique/Rounded (13)
<li>Oblique/Off Center (14)
<li>Oblique/Square (15)
</ul>
<dt>Midline
<dd>
<ul><li>Any (0)
<li>No Fit (1)
<li>Standard/Trimmed (2)
<li>Standard/Pointed (3)
<li>Standard/Serifed (4)
<li>High/Trimmed (5)
<li>High/Pointed (6)
<li>High/Serifed (7)
<li>Constant/Trimmed (8)
<li>Constant/Pointed (9)
<li>Constant/Serifed (10)
<li>Low/Trimmed (11)
<li>Low/Pointed (12)
<li>Low/Serifed (13)
</ul>
<dt>XHeight
<dd><ul><li>Any (0)
<li>No Fit (1)
<li>Constant/Small (2)
<li>Constant/Standard (3)
<li>Constant/Large (4)
<li>Ducking/Small (5)
<li>Ducking/Standard (6)
<li>Ducking/Large (7)
</ul>
</dl>
<p><em>Panose-2</em> (see [[-PANOSE2]]) is a specification for a
more comprehensive font classification and matching technology which
is not limited to Latin typefaces. For example, the serif
characteristics of a Latin face may be compared with the stroke
terminations of a Kanji face.
<p><img src="./images/P2F24.png" alt="Illustration of Panose-2"></p>
<p>The Panose-2 value is not stored inside any known font formats, but
may be measured.
<h2><a name="truetype-unicode">Deducing Unicode Ranges for TrueType</a></h2>
<P>This information is available in the font by looking at the
'ulUnicodeRange' bits in the 'OS/2' table (if it has one), which holds
a bitfield representation of the set. This table is defined in
revision 1.66 of the TrueType specification, from
Microsoft. Considering this information as a set, each element
corresponds to a Unicode 1.1 character block, and the presence of that
element in the set indicates that the font has one or more glyph
representations to represent at least one character in that block. The
set has 128 elements as described below. The order generally follows
that in the Unicode 1.1 standard. This table may be used to convert
the information in a TrueType font into a CSS 'unicode-range'
descriptor.
<table>
<thead>
<tr><th colspan="4"><hr>
<tr><th>Block<th>Add<th>Block name<th>Unicode range
<tr><th colspan="4"><hr>
</thead>
<tr><td>0<td>1<td>Basic Latin<td>U+0-7F
<tr><td>1<td>2<td>Latin-1 Supplement<td>U+80-FF
<tr><td>2<td>4<td>Latin-1 Extended-A<td>U+100-17F
<tr><td>3<td>8<td>Latin Extended-B<td>U+180-24F
<tr><th colspan="4"><hr>
<tr><td>4<td>1<td>IPA Extensions<td>U+250-2AF
<tr><td>5<td>2<td>Spacing Modifier Letters<td>U+2B0-2FF
<tr><td>6<td>4<td>Combining Diacritical Marks<td>U+300-36F
<tr><td>7<td>8<td>Greek<td>U+370-3CF
<tr><th colspan="4"><hr>
<tr><td>8<td>1<td><i>Greek Symbols and Coptic</i><td>U+3D0-3EF
<tr><td>9<td>2<td>Cyrillic<td>U+400-4FF<!-- 0500-052F ?? -->
<tr><td>10<td>4<td>Armenian<td>U+530-58F
<tr><td>11<td>8<td>Hebrew<td>U+590-5FF
<tr><th colspan="4"><hr>
<tr><td>12<td>1<td><i>Hebrew Extended-A<br>Hebrew Extended-B</i><td>?? what ranges ??
<tr><td>13<td>2<td>Arabic<td>U+600-69F<!--0700-08FF ?? -->
<tr><td>14<td>4<td><i>Arabic Extended</i><td>U+670-6FF
<tr><td>15<td>8<td>Devanagari<td>U+900-97F
<tr><th colspan="4"><hr>
<tr><td>16<td>1<td>Bengali<td>U+980-9FF
<tr><td>17<td>2<td>Gurmukhi<td>U+A00-A7F
<tr><td>18<td>4<td>Gujarati<td>U+A80-AFF
<tr><td>19<td>8<td>Oriya<td>U+B00-B7F
<tr><th colspan="4"><hr>
<tr><td>20<td>1<td>Tamil<td>U+B80-BFF
<tr><td>21<td>2<td>Telugu<td>U+C00-C7F
<tr><td>22<td>4<td>Kannada<td>U+C80-CFF
<tr><td>23<td>8<td>Malayalam<td>U+D00-D7F<!-- 0D80-0DFF ?? -->
<tr><th colspan="4"><hr>
<tr><td>24<td>1<td>Thai<td>U+E00-E7F
<tr><td>25<td>2<td>Lao<td>U+E80-EFF
<!-- <tr><td>- <td><b>Tibetan ??</b><td>-->
<tr><td>26<td>4<td>Georgian<td>U+10A0-10EF
<tr><td>27<td>8<td><i>Georgian Extended</i><td>U+10F0-10FF ??
<tr><th colspan="4"><hr>
<tr><td>28<td>1<td>Hangul Jamo<td>U+1100-11FF
<tr><td>29<td>2<td>Latin Extended Additional<td>-
<tr><td>30<td>4<td>Greek Extended<td>U+1F00-1FFF
<tr><td>31<td>8<td>General Punctuation<td>U+2000-206F
<tr><th colspan="4"><hr>
<tr><td>32<td>1<td>Superscripts and Subscripts<td>-
<tr><td>33<td>2<td>Currency Symbols<td>U+20A0-20CF
<tr><td>34<td>4<td>Combining Marks for Symbols<td>U+20D0-20FF
<tr><td>35<td>8<td>Letterlike Symbols<td>U+2100-214F
<tr><th colspan="4"><hr>
<tr><td>36<td>1<td>Number Forms<td>U+2150-218F
<tr><td>37<td>2<td>Arrows<td>U+2190-21FF
<tr><td>38<td>4<td>Mathematical Operators<td>U+2200-22FF
<tr><td>39<td>8<td>Miscellaneous Technical<td>U+2300-23FF
<tr><th colspan="4"><hr>
<tr><td>40<td>1<td>Control Pictures<td>U+2400-243F
<tr><td>41<td>2<td>Optical Character Recognition<td>U+2440-245F
<tr><td>42<td>4<td>Enclosed Alphanumerics<td>U+2460-24FF
<tr><td>43<td>8<td>Box Drawing<td>U+2500-257F
<tr><th colspan="4"><hr>
<tr><td>44<td>1<td>Block Elements<td>U+2580-259F
<tr><td>45<td>2<td>Geometric Shapes<td>U+25A0-25FF
<tr><td>46<td>4<td>Miscellaneous Symbols<td>U+2600-26FF
<tr><td>47<td>8<td>Dingbats<td>U+2700-27BF
<tr><th colspan="4"><hr>
<tr><td>48<td>1<td>CJK Symbols and Punctuation<td>U+3000-303F
<tr><td>49<td>2<td>Hiragana<td>U+3040-309F
<tr><td>50<td>4<td>Katakana<td>U+30A0-30FF
<tr><td>51<td>8<td>Bopomofo<td>U+3100-312F
<tr><th colspan="4"><hr>
<tr><td>52<td>1<td>Hangul Compatibility Jamo<td>U+3130-318F
<!-- <tr><td>- <td><b>Kanbun ??</b><td>-->
<tr><td>53<td>2<td>CJK Miscellaneous<td>??
<tr><td>54<td>4<td>Enclosed CJK Letters and Months<td>U+3200-32FF
<tr><td>55<td>8<td>CJK compatibility<td>U+3300-33FF
<tr><th colspan="4"><hr>
<tr><td>56<td>1<td>Hangul<td>U+AC00-D7FF
<!-- <tr><td>57<td>0<td>RESERVED<td>-
<tr><td>58<td> RESERVED<td>- -->
<tr><td>59<td>8<td>CJK Unified Ideographs<td>U+4E00-9FFF
<tr><th colspan="4"><hr>
<!-- <tr><td>-<td><b>Surrogates ??</b><td>-->
<tr><td>60<td>1<td>Private Use Area<td>U+E000-F8FF
<tr><td>61<td>2<td>CJK Compatibility Ideographs<td>U+F900-FAFF
<tr><td>62<td>4<td>Alphabetic Presentation Forms<td>U+FB00-FB4F
<tr><td>63<td>8<td>Arabic Presentation Forms-A<td>U+FB50-FDFF
<tr><th colspan="4"><hr>
<tr><td>64<td>1<td>Combining Half Marks<td>U+FE20-FE2F<!-- this is only two characters -->
<tr><td>65<td>2<td>CJK compatibility Forms<td>U+FE30-FE4F
<tr><td>66<td>4<td>Small Form Variants<td>U+FE50-FE6F
<tr><td>67<td>8<td>Arabic Presentation Forms-B<td>U+FE70-FEFF<!--FEFF also in Specials -->
<tr><th colspan="4"><hr>
<tr><td>68<td>1<td>Halfwidth and Fullwidth Forms<td>U+FF00-FFEF
<tr><td>69<td>2<td>Specials<td>U+FFF0-FFFD
<!-- this is just the 'unknown character' glyph -->
<!-- <tr><td>70 - <br>127<td>0<td>RESERVED<td>? -->
</table>
<p class=comment>The TrueType bitfield system has the problem that it
is tied to Unicode 1.1 and is unable to cope with Unicode expansion -
it is unable to represent Tibetan for example, or other scripts introduced with Unicode 2.0 or later revisions.
<h2><a name="autodescgen">Automatic descriptor generation</a></h2>
<p>Authoring tools should allow style sheet authors to add and edit font descriptors. In some cases, however, authoring tools can help by examining locally installed fonts and automatically generating descriptors for fonts referenced in the style sheet. This is also a function that can be carried out by tools which subset or convert fonts ready for dynamic download.
<p>This table suggests where such information can be found, for common font formats.</p>
<table border>
<tr><td>Descriptor<td>Type 1<td>TrueType and OpenType<td>TrueType GX [[-TRUETYPEGX]]</tr>
<tr><td><span class="descinst-ascent">'ascent'</span>
<td><tt>'Ascender'</tt> in AFM/PFM file<td><tt>'Ascender'</tt> in
<tt>'hhea'</tt> table or (preferably)
<tt>'sTypoAscender'</tt> in <tt>'OS/2'</tt> table<td><tt>'horizontalBefore'</tt> in <tt>'fmtx'</tt> table
<tr><td><span class="descinst-baseline">'baseline'</span>
<td> <td> <td><tt>bsln</tt> table, see <a href="#bsln">note</a>
<tr><td><span class="descinst-bbox">'bbox'</span>
<td><tt>FontBBox</tt>, font dictionary<td><tt>'xMin'</tt>, <tt>'xMax'</tt>, <tt>'yMin'</tt> and <tt>'yMax'</tt>
entries of the <tt>'head'</tt> table<!-- Apple API to get this: http://17.126.23.20/dev/techsupport/insidemac/Text/Text-273.html#HEADING273-0 -->
<td>
<tr><td><span class="descinst-cap-height">'cap-height'</span>
<td><tt>CapHeight</tt> in AFM/PFM file<td> <td>
<tr><td><span class="descinst-descent">'descent'</span>
<td><tt>'Descender'</tt> in the AFM/PFM file.<td> <td>
<tr><td><span class="descinst-mathline">'mathline'</span>
<td> <td> <td><tt>bsln</tt> table
<tr><td><span class="descinst-font-family">'font-family'</span>
<td><tt>FamilyName</tt>, fontinfo dictionary<td><tt>name</tt> table<td>
<tr><td><span class="descinst-stemh">'stemh'</span>
<td><tt>StdHW</tt>, private dictionary of AFM/PFM file<td> <td>
<tr><td><span class="descinst-stemv">'stemv'</span>
<td><tt>/StdVW</tt>, private dictionary<td><tt>cvt</tt> table<td>
<tr><td><span class="descinst-topline">'topline'</span>
<td> <td> <td><tt>bsln</tt> table
<tr><td><span class="descinst-unicode-range">'unicode-range'</span>
<td>cmap file<td><tt>OS/2</tt> table, see <a href="#truetype-unicode">Appendix C</a><td>
<tr><td><span class="descinst-units-per-em">'units-per-em'</span>
<td><tt>FontMatrix</tt>, font dictionary<td><tt>unitsPerEm</tt>, <tt>head</tt> table.<td>
<tr><td><span class="descinst-widths">'widths'</span>
<td> <td><tt>hmtx</tt> table<td>
</table>
<ul><li><a name="bsln">Within the <tt>bsln</tt></a> table, the
<tt>ideographic centered baseline</tt> may be used for stretches of
predominantly ideographic characters and the <tt>ideographic low
baseline</tt> is more suitable for ideographic characters in a run of
predominantly Latin, Greek or Cyrillic characters.
</ul>
</BODY>
</HTML>