Font Families and Scripts
Font Families and Scripts
A font family is a set of fonts in one typeface design, including different font
styles and sizes in that typeface. For example, the Geneva font family may
include an outline font in plain style and bitmapped fonts in various point sizes
and in italic, bold, shadow, or other styles. (For more information about
outline and bitmapped fonts, see the Font Manager)
At present a font family is exclusively identified by the 'FOND' resource. This
resource groups fonts using a font association table, which contains a word to
hold each font's point size, a word for its style, and a word for its associated
'FONT', 'NFNT', or 'sfnt' resource ID. (If the size entry in the table is 0, the
resource ID is for an 'sfnt' resource. System 7.0 does not recognize a 'FONT' or
'NFNT' resource with its size set to 0, and your application should not depend
on finding these resources.) For font family resources, Apple reserves
resource IDs 0 through 1023 and 16000 through 16383. (The font
association table is described in the Font Manager)
Note: When the Macintosh computer was first introduced, prior to
the introduction of the 'FOND' resource, fonts were grouped into font
families by storing the family ID in bits 7 through 14 of the font's
resource ID. (The font's point size was stored in bits 0 through 6.)
The font family was named by including a 'FONT' resource with a
point size of 0. Since the font family ID had to fit into 8 bits, the
range of numbers available was only 0 through 255; 0 through 127
were reserved for Apple, and 128 through 255 were available for
third-party developers. Font families identified using this method
are still recognized by the Operating System, but you should not use
these IDs or this method of identification.
Scripts are writing systems (such as Roman, Japanese, and Arabic) that are
used to represent human languages. Script systems include character sets,
fonts, keyboards, and resources that determine text collation and word breaks.
Scripts may differ in terms of the direction in which their characters and
lines run, the size of the character set used to represent the script, and the
context sensitivity of the script.
The Roman script system (used by English and many European languages) has
the largest number of font families available. It uses font family IDs between 2
and 16383. The following list shows the defined ID ranges for the font families
associated with Roman script systems. (The other resources associated with a
script, such as 'itl0', 'itl1', 'itl2', 'itl4', 'KCHR', 'itlk', 'kcs#', 'kcs4', and
'kcs8' resources, have resource IDs in the same range as the 'FOND' IDs for
that script. For more information on script systems, resources such as 'itl0'
or 'KCHR', and developing software for worldwide markets, see the
Worldwide Software Overview. Note that the 'INTL' resource is obsolete
and you should use the most appropriate currently valid resource, such as
'itl0', 'itl1', or 'itl2'.)
Range Description
0 System font. This is reserved in any script
system. The Operating System may map any font
family from any script system to this ID.
1 Application font. This is reserved in any script
system. The Operating System may map any font
family from any script system to this ID.
2 through 255 Font families for the Roman script system that
were named using the method described in the
Font Manager. Do not continue to use these
IDs. Note that Apple's system fonts (Chicago,
Geneva, New York, and so on) always retain
their old font family IDs.
256 through 1023 Reserved numbers. These numbers should be
thought of as reserved space that the Operating
System can use to resolve past and future font
family ID conflicts. Numbers in this range
should not be used as a font family's original
resource ID.
1024 through 3071 Noncommercial and public domain font
families.
3072 through 15999 Commercial font manufacturers' font families.
16000 through 16383 Reserved.
The next list shows the script code and the range of font family IDs assigned to
each script system on the Macintosh computer. Non-Roman scripts use font
family IDs in the range 16384 through 32767 and in the range -28672
through -24577, and each non-Roman script has a total of 512 font family
IDs available. Script codes 33 through 40 are invalid and should not be used.
Script ÂScript
system Âcode Font family IDs
[System reserved] ÂAny 0 through 1
Roman Â0 2 through 16383
Japanese Â1 16384 through 16895
Traditional Chinese Â2 16896 through 17407
Korean Â3 17408 through 17919
Arabic Â4 17920 through 18431
Hebrew Â5 18432 through 18943
Greek Â6 18944 through 19455
Cyrillic Â7 19456 through 19967
Uninterpreted right-to-left symbols 8 19968 through 20479
Devanagari Â9 20480 through 20991
Gurmukhi Â10 20992 through 21503
Gujarati Â11 21504 through 22015
Oriya Â12 22016 through 22527
Bengali Â13 22528 through 23039
Tamil Â14 23040 through 23551
Telugu Â15 23552 through 24063
Kannada Â16 24064 through 24575
Malayalam Â17 24576 through 25087
Sinhalese Â18 25088 through 25599
Burmese Â19 25600 through 26111
Cambodian Â20 26112 through 26623
Thai Â21 26624 through 27135
Laotian Â22 27136 through 27647
Georgian Â23 27648 through 28159
Armenian Â24 28160 through 28671
Simplified Chinese Â25 28672 through 29183
Tibetan Â26 29184 through 29695
Mongolian Â27 29696 through 30207
Ethiopian Â28 30208 through 30719
Extended Roman for Slavic/Baltic 29 30720 through 31231
Vietnamese Â30 31232 through 31743
Extended Arabic (for Sindhi, etc.) 31 31744 through 32255
Uninterpreted left-to-right symbols 32 32256 through 32767
Reserved Â41 -28672 through -28161
Reserved Â42 -28160 through -27649
Reserved Â43 -27648 through -27137
Reserved Â44 -27136 through -26625
Reserved Â45 -26624 through -26113
Reserved Â46 -26112 through -25601
Reserved Â47 -25600 through -25089
Reserved Â48 -25088 through -24577
For every script, the Operating System always maps the correct system font
to ID 0 and the correct application font to ID 1. (In a Roman script system,
Chicago is the system font and Geneva is the application font. This is not the
case in any non-Roman script system.)
Apple has created a pseudo-script at script code 32, called smUninterp,
which provides a range of IDs (32256 through 32767) that you can use to
identify fonts that are used as tools in your application. (For example, the
MacPaint drawing program uses a special font for its palette symbols.) If the
glyphs in such a font should be handled as right-to-left glyphs instead of
left-to-right glyphs, use the pseudo-script smRSymbol instead. This
pseudo- script, at script code 8, has a font family ID range of 19928 through
20479.