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