The Use of Reserved (= Undefined) 1252 Code Page

advertisement
The Use of Reserved (= Undefined) 1252 Code Page Slots in TrueType Fonts
Problem: How do you create a 1252 TrueType text font (= non-symbol font) with slots 128, 129, 141-144,
157-158, 173, 175, 181, 183, which is compatible with any known version of Word and Windows?
Solution: Use following encoding scheme for the critical character slots. TrueType Fonts with the following
encoding for the critical slots are compatible with any known combination of Microsoft Word and Windows:
Windows 3.1 and 3.11 + Word 6.0, Windows 1995 + Word 1997, Windows 98 + Word 6.0 and Word 1997,
Windows ME + Word 1997, Windows 2000 (NT) + Word 2000, Windows XP + Word XP.
Dec
Hex Names [and Alias Name]
Code Points
Comments
032
20
space
0020
Not redefinable! Could have both codes 0020 + 00A0
045
2D
hyphen
002D
Not redefinable! Do not combine with minus!
128* 80
Euro [uni20AC]
0080 + 20AC
Must have both codes for backward compatibility.
129* 81
c129
0081
Use "c129". Do not invent any other glyph name.
141* 8D
c141
008D
Use "c141". Do not invent any other glyph name.
142* 8E
Zcaron [c142]
008E + 017D
Must have both codes for backward compatibility.
143* 8F
c143
008F
Use "c143". Do not invent any other glyph name.
144* 90
c144
0090
Use "c144". Do not invent any other glyph name.
157* 9D
c157
009D
Use "c157". Do not invent any other glyph name.
158* 9E
zcaron [c158]
009E + 017E
Must have both codes for backward compatibility.
160
uni00A0 [nbspace]
00A0
Not redefinable! Could have both codes 0020 + 00A0
173* AD
minus [sfthyphen]
00AD
Redefinable! But do not combine with hyphen!
175* AF
macron [overscore]
00AF + 02C9
Should have both code points (at least 00AF).
181* B5
mu [mu1]
00B5 + 03BC
Should have both code points (at least 00B5).
183* B7
periodcentered [middot] 00B7 + 2219
A0
Must have both codes for backward compatibility.
* = redefinable character slots, which can be redefined, for instance, as diacritical characters for indologists.
1. Do not invent other names! For instance, if slot 157 should contain emacron, do not name it "emacron",
but stick to c157, because Windows evaluates its internal glyph name list, where it would find emacron.
2. The slots 129, 141, 143, 144, 157 must have one code point each. For instance, if you want to put
emacron into slot 157, do not add to 009D the unicode 0113 for emacron as a second code point.
3. The slots 128, 142, 158 must have both code points each. Word 6.0 needs 0080, 008E, 009E, Word 97
and later use 20AC, 017D, 017E, so you must define both code points each for the slots 128, 142, 158.
4. The slot 183 must have both code points. Windows NT needs 00B7, other Windows use 00B7 or 2219.
5. Use different names for the code points 045, 173, if you want to redefine 173 as diacritical character.
6. Slots 175, 181 should have both code points. The older codes 00AF and 00B5 must always be used.
7. If your font editor does not permit of assigning two code points to one glyph name, duplicate the glyph
and assign alias name and second code point to the duplicated glyph, e.g. zcaron = 017E, c158 = 009E.
8. You cannot redefine slot 160 as a diacritic, because Word will use slot 032, when you enter ALT 0160.
(In Wordpad 98 you would be able to define slot 160 as diacritical character and enter it with this key.)
9. All other slots should have the names and code points as shown in the following 1252 code page table.
Ulrich Stiehl, Heidelberg, 19-November-2002
Char
Dec
Hex
Adobe Standard Names
Code Points
Descriptive Names
!
"
#
$
%
&
'
(
)
*
+
,
.
/
0
1
2
3
4
5
6
7
8
9
:
;
<
=
>
?
000
001
002
003
004
005
006
007
008
009
010
011
012
013
014
015
016
017
018
019
020
021
022
023
024
025
026
027
028
029
030
031
032
033
034
035
036
037
038
039
040
041
042
043
044
045
046
047
048
049
050
051
052
053
054
055
056
057
058
059
060
061
062
063
0000
0001
0002
0003
0004
0005
0006
0007
0008
0009
000A
000B
000C
000D
000E
000F
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
001A
001B
001C
001D
001E
001F
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
002A
002B
002C
002D
002E
002F
0030
0031
0032
0033
0034
0035
0036
0037
0038
0039
003A
003B
003C
003D
003E
003F
.notdef
.notdef
.notdef
.notdef
.notdef
.notdef
.notdef
.notdef
.notdef
.notdef
.notdef
.notdef
.notdef
.notdef
.notdef
.notdef
.notdef
.notdef
.notdef
.notdef
.notdef
.notdef
.notdef
.notdef
.notdef
.notdef
.notdef
.notdef
.notdef
.notdef
.notdef
.notdef
space
exclam
quotedbl
numbersign
dollar
percent
ampersand
quotesingle
parenleft
parenright
asterisk
plus
comma
hyphen
period
slash
zero
one
two
three
four
five
six
seven
eight
nine
colon
semicolon
less
equal
greater
question
0000
0001
0002
0003
0004
0005
0006
0007
0008
0009
000A
000B
000C
000D
000E
000F
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
001A
001B
001C
001D
001E
001F
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
002A
002B
002C
002D
002E
002F
0030
0031
0032
0033
0034
0035
0036
0037
0038
0039
003A
003B
003C
003D
003E
003F
NULL
START OF HEADING
START OF TEXT
END OF TEXT
END OF TRANSMISSION
ENQUIRY
ACKNOWLEDGE
BELL
BACKSPACE
HORIZONTAL TABULATION
LINE FEED
VERTICAL TABULATION
FORM FEED
CARRIAGE RETURN
SHIFT OUT
SHIFT IN
DATA LINK ESCAPE
DEVICE CONTROL ONE
DEVICE CONTROL TWO
DEVICE CONTROL THREE
DEVICE CONTROL FOUR
NEGATIVE ACKNOWLEDGE
SYNCHRONOUS IDLE
END OF TRANSMISSION BLOCK
CANCEL
END OF MEDIUM
SUBSTITUTE
ESCAPE
FILE SEPARATOR
GROUP SEPARATOR
RECORD SEPARATOR
UNIT SEPARATOR
SPACE
EXCLAMATION MARK
QUOTATION MARK
NUMBER SIGN
DOLLAR SIGN
PERCENT SIGN
AMPERSAND
APOSTROPHE
LEFT PARENTHESIS
RIGHT PARENTHESIS
ASTERISK
PLUS SIGN
COMMA
HYPHEN-MINUS
FULL STOP
SOLIDUS
DIGIT ZERO
DIGIT ONE
DIGIT TWO
DIGIT THREE
DIGIT FOUR
DIGIT FIVE
DIGIT SIX
DIGIT SEVEN
DIGIT EIGHT
DIGIT NINE
COLON
SEMICOLON
LESS-THAN SIGN
EQUALS SIGN
GREATER-THAN SIGN
QUESTION MARK
Char
Dec
Hex
Adobe Standard Names
Code Points
Descriptive Names
@
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
[
\
]
^
_
`
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
{
|
}
~
064
065
066
067
068
069
070
071
072
073
074
075
076
077
078
079
080
081
082
083
084
085
086
087
088
089
090
091
092
093
094
095
096
097
098
099
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
0040
0041
0042
0043
0044
0045
0046
0047
0048
0049
004A
004B
004C
004D
004E
004F
0050
0051
0052
0053
0054
0055
0056
0057
0058
0059
005A
005B
005C
005D
005E
005F
0060
0061
0062
0063
0064
0065
0066
0067
0068
0069
006A
006B
006C
006D
006E
006F
0070
0071
0072
0073
0074
0075
0076
0077
0078
0079
007A
007B
007C
007D
007E
007F
at
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
bracketleft
backslash
bracketright
asciicircum
underscore
grave
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
braceleft
bar
braceright
asciitilde
.notdef
0040
0041
0042
0043
0044
0045
0046
0047
0048
0049
004A
004B
004C
004D
004E
004F
0050
0051
0052
0053
0054
0055
0056
0057
0058
0059
005A
005B
005C
005D
005E
005F
0060
0061
0062
0063
0064
0065
0066
0067
0068
0069
006A
006B
006C
006D
006E
006F
0070
0071
0072
0073
0074
0075
0076
0077
0078
0079
007A
007B
007C
007D
007E
007F
COMMERCIAL AT
LATIN CAPITAL LETTER A
LATIN CAPITAL LETTER B
LATIN CAPITAL LETTER C
LATIN CAPITAL LETTER D
LATIN CAPITAL LETTER E
LATIN CAPITAL LETTER F
LATIN CAPITAL LETTER G
LATIN CAPITAL LETTER H
LATIN CAPITAL LETTER I
LATIN CAPITAL LETTER J
LATIN CAPITAL LETTER K
LATIN CAPITAL LETTER L
LATIN CAPITAL LETTER M
LATIN CAPITAL LETTER N
LATIN CAPITAL LETTER O
LATIN CAPITAL LETTER P
LATIN CAPITAL LETTER Q
LATIN CAPITAL LETTER R
LATIN CAPITAL LETTER S
LATIN CAPITAL LETTER T
LATIN CAPITAL LETTER U
LATIN CAPITAL LETTER V
LATIN CAPITAL LETTER W
LATIN CAPITAL LETTER X
LATIN CAPITAL LETTER Y
LATIN CAPITAL LETTER Z
LEFT SQUARE BRACKET
REVERSE SOLIDUS
RIGHT SQUARE BRACKET
CIRCUMFLEX ACCENT
LOW LINE
GRAVE ACCENT
LATIN SMALL LETTER A
LATIN SMALL LETTER B
LATIN SMALL LETTER C
LATIN SMALL LETTER D
LATIN SMALL LETTER E
LATIN SMALL LETTER F
LATIN SMALL LETTER G
LATIN SMALL LETTER H
LATIN SMALL LETTER I
LATIN SMALL LETTER J
LATIN SMALL LETTER K
LATIN SMALL LETTER L
LATIN SMALL LETTER M
LATIN SMALL LETTER N
LATIN SMALL LETTER O
LATIN SMALL LETTER P
LATIN SMALL LETTER Q
LATIN SMALL LETTER R
LATIN SMALL LETTER S
LATIN SMALL LETTER T
LATIN SMALL LETTER U
LATIN SMALL LETTER V
LATIN SMALL LETTER W
LATIN SMALL LETTER X
LATIN SMALL LETTER Y
LATIN SMALL LETTER Z
LEFT CURLY BRACKET
VERTICAL LINE
RIGHT CURLY BRACKET
TILDE
DELETE
Char
‚
ƒ
„
…
†
‡
ˆ
‰
Š
‹
Œ
‘
’
“
”
•
–
—
˜
™
š
›
œ
Ÿ
¡
¢
£
¤
¥
¦
§
¨
©
ª
«
¬
®
¯
°
±
²
³
´
µ
¶
·
¸
¹
º
»
¼
½
¾
¿
Dec
Hex
Adobe Standard Names
Code Points
Descriptive Names
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
0080
0081
0082
0083
0084
0085
0086
0087
0088
0089
008A
008B
008C
008D
008E
008F
0090
0091
0092
0093
0094
0095
0096
0097
0098
0099
009A
009B
009C
009D
009E
009F
00A0
00A1
00A2
00A3
00A4
00A5
00A6
00A7
00A8
00A9
00AA
00AB
00AC
00AD
00AE
00AF
00B0
00B1
00B2
00B3
00B4
00B5
00B6
00B7
00B8
00B9
00BA
00BB
00BC
00BD
00BE
00BF
.notdef
Euro
.notdef
c129
quotesinglbase
florin
quotedblbase
ellipsis
dagger
daggerdbl
circumflex
perthousand
Scaron
guilsinglleft
OE
.notdef
c141
.notdef
Zcaron
.notdef
c143
.notdef
c144
quoteleft
quoteright
quotedblleft
quotedblright
bullet
endash
emdash
tilde
trademark
scaron
guilsinglright
oe
.notdef
c157
.notdef
zcaron
Ydieresis
uni00A0
exclamdown
cent
sterling
currency
yen
brokenbar
section
dieresis
copyright
ordfeminine
guillemotleft
logicalnot
minus
registered
macron
degree
plusminus
twosuperior
threesuperior
acute
mu
paragraph
periodcentered
cedilla
onesuperior
ordmasculine
guillemotright
onequarter
onehalf
threequarters
questiondown
0080
0081
201A
0192
201E
2026
2020
2021
02C6
2030
0160
2039
0152
008D
008E
008F
0090
2018
2019
201C
201D
2022
2013
2014
02DC
2122
0161
203A
0153
009D
009E
0178
00A0
00A1
00A2
00A3
00A4
00A5
00A6
00A7
00A8
00A9
00AA
00AB
00AC
00AD
00AE
00AF
00B0
00B1
00B2
00B3
00B4
00B5
00B6
00B7
00B8
00B9
00BA
00BB
00BC
00BD
00BE
00BF
EURO SIGN
UNDEFINED
SINGLE LOW-9 QUOTATION MARK
LATIN SMALL LETTER F WITH HOOK
DOUBLE LOW-9 QUOTATION MARK
HORIZONTAL ELLIPSIS
DAGGER
DOUBLE DAGGER
MODIFIER LETTER CIRCUMFLEX ACCENT
PER MILLE SIGN
LATIN CAPITAL LETTER S WITH CARON
SINGLE LEFT-POINTING ANGLE QUOTATION MARK
LATIN CAPITAL LIGATURE OE
UNDEFINED
LATIN CAPITAL LETTER Z WITH CARON
UNDEFINED
UNDEFINED
LEFT SINGLE QUOTATION MARK
RIGHT SINGLE QUOTATION MARK
LEFT DOUBLE QUOTATION MARK
RIGHT DOUBLE QUOTATION MARK
BULLET
EN DASH
EM DASH
SMALL TILDE
TRADE MARK SIGN
LATIN SMALL LETTER S WITH CARON
SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
LATIN SMALL LIGATURE OE
UNDEFINED
LATIN SMALL LETTER Z WITH CARON
LATIN CAPITAL LETTER Y WITH DIAERESIS
NO-BREAK SPACE
INVERTED EXCLAMATION MARK
CENT SIGN
POUND SIGN
CURRENCY SIGN
YEN SIGN
BROKEN BAR
SECTION SIGN
DIAERESIS
COPYRIGHT SIGN
FEMININE ORDINAL INDICATOR
LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
NOT SIGN
SOFT HYPHEN
REGISTERED SIGN
MACRON
DEGREE SIGN
PLUS-MINUS SIGN
SUPERSCRIPT TWO
SUPERSCRIPT THREE
ACUTE ACCENT
MICRO SIGN
PILCROW SIGN
MIDDLE DOT
CEDILLA
SUPERSCRIPT ONE
MASCULINE ORDINAL INDICATOR
RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
VULGAR FRACTION ONE QUARTER
VULGAR FRACTION ONE HALF
VULGAR FRACTION THREE QUARTERS
INVERTED QUESTION MARK
20AC
017D
017E
02C9
03BC
2219
Char
Dec
Hex
Adobe Standard Names
Code Points
Descriptive Names
À
Á
Â
Ã
Ä
Å
Æ
Ç
È
É
Ê
Ë
Ì
Í
Î
Ï
Ð
Ñ
Ò
Ó
Ô
Õ
Ö
×
Ø
Ù
Ú
Û
Ü
Ý
Þ
ß
à
á
â
ã
ä
å
æ
ç
è
é
ê
ë
ì
í
î
ï
ð
ñ
ò
ó
ô
õ
ö
÷
ø
ù
ú
û
ü
ý
þ
ÿ
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
00C0
00C1
00C2
00C3
00C4
00C5
00C6
00C7
00C8
00C9
00CA
00CB
00CC
00CD
00CE
00CF
00D0
00D1
00D2
00D3
00D4
00D5
00D6
00D7
00D8
00D9
00DA
00DB
00DC
00DD
00DE
00DF
00E0
00E1
00E2
00E3
00E4
00E5
00E6
00E7
00E8
00E9
00EA
00EB
00EC
00ED
00EE
00EF
00F0
00F1
00F2
00F3
00F4
00F5
00F6
00F7
00F8
00F9
00FA
00FB
00FC
00FD
00FE
00FF
Agrave
Aacute
Acircumflex
Atilde
Adieresis
Aring
AE
Ccedilla
Egrave
Eacute
Ecircumflex
Edieresis
Igrave
Iacute
Icircumflex
Idieresis
Eth
Ntilde
Ograve
Oacute
Ocircumflex
Otilde
Odieresis
multiply
Oslash
Ugrave
Uacute
Ucircumflex
Udieresis
Yacute
Thorn
germandbls
agrave
aacute
acircumflex
atilde
adieresis
aring
ae
ccedilla
egrave
eacute
ecircumflex
edieresis
igrave
iacute
icircumflex
idieresis
eth
ntilde
ograve
oacute
ocircumflex
otilde
odieresis
divide
oslash
ugrave
uacute
ucircumflex
udieresis
yacute
thorn
ydieresis
00C0
00C1
00C2
00C3
00C4
00C5
00C6
00C7
00C8
00C9
00CA
00CB
00CC
00CD
00CE
00CF
00D0
00D1
00D2
00D3
00D4
00D5
00D6
00D7
00D8
00D9
00DA
00DB
00DC
00DD
00DE
00DF
00E0
00E1
00E2
00E3
00E4
00E5
00E6
00E7
00E8
00E9
00EA
00EB
00EC
00ED
00EE
00EF
00F0
00F1
00F2
00F3
00F4
00F5
00F6
00F7
00F8
00F9
00FA
00FB
00FC
00FD
00FE
00FF
LATIN CAPITAL LETTER A WITH GRAVE
LATIN CAPITAL LETTER A WITH ACUTE
LATIN CAPITAL LETTER A WITH CIRCUMFLEX
LATIN CAPITAL LETTER A WITH TILDE
LATIN CAPITAL LETTER A WITH DIAERESIS
LATIN CAPITAL LETTER A WITH RING ABOVE
LATIN CAPITAL LETTER AE
LATIN CAPITAL LETTER C WITH CEDILLA
LATIN CAPITAL LETTER E WITH GRAVE
LATIN CAPITAL LETTER E WITH ACUTE
LATIN CAPITAL LETTER E WITH CIRCUMFLEX
LATIN CAPITAL LETTER E WITH DIAERESIS
LATIN CAPITAL LETTER I WITH GRAVE
LATIN CAPITAL LETTER I WITH ACUTE
LATIN CAPITAL LETTER I WITH CIRCUMFLEX
LATIN CAPITAL LETTER I WITH DIAERESIS
LATIN CAPITAL LETTER ETH
LATIN CAPITAL LETTER N WITH TILDE
LATIN CAPITAL LETTER O WITH GRAVE
LATIN CAPITAL LETTER O WITH ACUTE
LATIN CAPITAL LETTER O WITH CIRCUMFLEX
LATIN CAPITAL LETTER O WITH TILDE
LATIN CAPITAL LETTER O WITH DIAERESIS
MULTIPLICATION SIGN
LATIN CAPITAL LETTER O WITH STROKE
LATIN CAPITAL LETTER U WITH GRAVE
LATIN CAPITAL LETTER U WITH ACUTE
LATIN CAPITAL LETTER U WITH CIRCUMFLEX
LATIN CAPITAL LETTER U WITH DIAERESIS
LATIN CAPITAL LETTER Y WITH ACUTE
LATIN CAPITAL LETTER THORN
LATIN SMALL LETTER SHARP S
LATIN SMALL LETTER A WITH GRAVE
LATIN SMALL LETTER A WITH ACUTE
LATIN SMALL LETTER A WITH CIRCUMFLEX
LATIN SMALL LETTER A WITH TILDE
LATIN SMALL LETTER A WITH DIAERESIS
LATIN SMALL LETTER A WITH RING ABOVE
LATIN SMALL LETTER AE
LATIN SMALL LETTER C WITH CEDILLA
LATIN SMALL LETTER E WITH GRAVE
LATIN SMALL LETTER E WITH ACUTE
LATIN SMALL LETTER E WITH CIRCUMFLEX
LATIN SMALL LETTER E WITH DIAERESIS
LATIN SMALL LETTER I WITH GRAVE
LATIN SMALL LETTER I WITH ACUTE
LATIN SMALL LETTER I WITH CIRCUMFLEX
LATIN SMALL LETTER I WITH DIAERESIS
LATIN SMALL LETTER ETH
LATIN SMALL LETTER N WITH TILDE
LATIN SMALL LETTER O WITH GRAVE
LATIN SMALL LETTER O WITH ACUTE
LATIN SMALL LETTER O WITH CIRCUMFLEX
LATIN SMALL LETTER O WITH TILDE
LATIN SMALL LETTER O WITH DIAERESIS
DIVISION SIGN
LATIN SMALL LETTER O WITH STROKE
LATIN SMALL LETTER U WITH GRAVE
LATIN SMALL LETTER U WITH ACUTE
LATIN SMALL LETTER U WITH CIRCUMFLEX
LATIN SMALL LETTER U WITH DIAERESIS
LATIN SMALL LETTER Y WITH ACUTE
LATIN SMALL LETTER THORN
LATIN SMALL LETTER Y WITH DIAERESIS
Download