% @@psencodingfile@{ % date = "24feb10", % filename = "ec.enc", % email = "tex-fonts@@tug.org", % docstring = "This is the EC (aka Cork aka T1) encoding vector % for 8-bit fonts to be used with TeX." % @} % % The original paper can be found on % https://www.tug.org/TUGboat/Articles/tb11-4/tb30ferguson.pdf % % Names of the glyphs try to comply with: % Adobe Glyph List For New Fonts, ver. 1.6, 30 Januaury 2006 % http://partners.adobe.com/public/developer/en/opentype/aglfn13.txt % but some exceptions are listed below. % % The following characters are not present in Unicode: % - /perthousandzero = used to compose /perthousand, /pertenthousand, ... out of /percent + this character % - Germandbls = now there is a related character in Unicode, % U+1E9E - LATIN CAPITAL LETTER SHARP S % but probably /S_S ligature name should be used instead % % The following two characters have different Unicode mappings than on the AGL: % - /tcedilla = U+0163 - LATIN SMALL LETTER T WITH CEDILLA % according to AGL it should be /tcommaaccent % - /Tcedilla = U+0162 - LATIN CAPITAL LETTER T WITH CEDILLA % according to AGL it should be /Tcommaaccent % But having /scedilla and /tcommaaccent mixed is even more ugly. % % The following characters are not present on the AGL: % - /dotlessj = U+0237 - LATIN SMALL LETTER DOTLESS J % - /cwm = U+200B - ZERO WIDTH SPACE % - /visiblespace = U+2423 - OPEN BOX % and should probably better be labeled with uniXXXX notation % (though hardly any font has those glyphs anyway). % % The following ligatures are deprecated by recent AGL: % - /ff, /fi, /fl, /ffi, /ffl = /f_i and similar should have been used instead % % Hyphen character: % There are two character named "hyphen". The original article explains % the background of this decision (if one wanted to use a different % hyphenation character and still be able to use the dash). So the first % character should serve as "hyphen char" and the other one as "dash" in % compound words. The character 0x2D is supposed to be the hyphen char, % but since there used to be two characters of the same name in this % file for some time, the tools like afmtotfm have been confused and % remapped the hyphen char to 0x7F automatically. After the second % character's name was changed, hyphenation characters in existing % tfm fonts (generated with the old ec.enc) have disappeared, so the % second character has been renamed back to "hyphen". Anyone generating % tfm fonts is strongly encouraged to make a copy of this file, rename % it and change glyph names as required for their font. % % Other remarks: % - /Eth = U+00D0 - LATIN CAPITAL LETTER ETH % must also be used as /Dcroat % U+0110 - LATIN CAPITAL LETTER D WITH STROKE % % Misleading names and shapes of letters (that lead to different names in past) % - /lcaron = U+013E - LATIN SMALL LETTER L WITH CARON % /lquoteright % - /Lcaron = U+013D - LATIN CAPITAL LETTER L WITH CARON % /Lquoteright % - /dcaron = U+010F - LATIN SMALL LETTER D WITH CARON % /dquoteright % - /tcaron = U+0165 - LATIN SMALL LETTER T WITH CARON % /tquoteright % - /dcroat = U+0111 - LATIN SMALL LETTER D WITH STROKE % /dbar, /dmacron % % - /cwm - /bom, /zerowidthnobreakspace % - /underscore - /underline % - /hyphen.alt - /sfthyphen, /hyphen, /dash % % % Turkish & Romanian % -------------------- % EC encoding has been defined to include /tcedilla and /scedilla. % For Turkish one needs /scedilla, while for Romanian one would need % "t with comma below" (/tcommaaccent) and "s with comma below" (/scommaaccent). % "t with cedilla" in not used in any language except in inferior % Romanian typography that can use cedillas instead of commas below. % AGL has a strange mapping as well. % % Without adding an additional character, it is impossible to support both % languages at the same time, so EC is not really best choice for Romanians, % even though it can be "misused" if one replaces both /scedilla and /tcedilla % with /scommaaccent and /tcommaaccent. % % Characters that have been renamed in July 2008: % 0x18 /zeroinferior -> /perthousandzero % 0x20 U+2423 /visualspace -> /visiblespace (if font doesn't have it, use /space) % 0x8D U+014A /Ng -> /Eng % 0x9E U+0111 /dbar -> /dcroat % 0xAD U+014B /ng -> /eng % 0xB4 U+0165 /tquoteright -> /tcaron % % Although these ligatures and kerns are somewhat questionable to have % in an encoding file, they've been here forever, and they are % traditional in the TeX world, so we preserve them. % % LIGKERN space l =: lslash ; space L =: Lslash ; % LIGKERN question quoteleft =: questiondown ; exclam quoteleft =: exclamdown ; % LIGKERN hyphen hyphen =: endash ; endash hyphen =: emdash ; % LIGKERN quoteleft quoteleft =: quotedblleft ; % LIGKERN quoteright quoteright =: quotedblright ; % % We blow away kerns to and from spaces (TeX doesn't have a % space) and also remove any kerns from the numbers (although % the only kern pair that mentions a number in Times-Roman.afm % is one one.) % % LIGKERN space {} * ; * {} space ; zero {} * ; * {} zero ; % LIGKERN one {} * ; * {} one ; two {} * ; * {} two ; % LIGKERN three {} * ; * {} three ; four {} * ; * {} four ; % LIGKERN five {} * ; * {} five ; six {} * ; * {} six ; % LIGKERN seven {} * ; * {} seven ; eight {} * ; * {} eight ; % LIGKERN nine {} * ; * {} nine ; % LIGKERN comma comma =: quotedblbase ; less less =: guillemotleft ; % LIGKERN greater greater =: guillemotright ; % /txttECEncodingC [ % now 256 chars follow /grave % 0x00 U+0060 /acute % 0x01 U+00B4 /circumflex % 0x02 U+02C6 /tilde % 0x03 U+02DC /dieresis % 0x04 U+00A8 /hungarumlaut % 0x05 U+02DD /ring % 0x06 U+02DA /caron % 0x07 U+02C7 /breve % 0x08 U+02D8 /macron % 0x09 U+00AF /dotaccent % 0x0A U+02D9 /cedilla % 0x0B U+00B8 /ogonek % 0x0C U+02DB /quotesinglbase % 0x0D U+201A /guilsinglleft % 0x0E U+2039 /guilsinglright % 0x0F U+203A /quotedblleft % 0x10 U+201C /quotedblright % 0x11 U+201D /quotedblbase % 0x12 U+201E /guillemotleft % 0x13 U+00AB /guillemotright % 0x14 U+00BB /endash % 0x15 U+2013 /emdash % 0x16 U+2014 /cwm % 0x17 U+200B /perthousandzero % 0x18 ______ /dotlessi % 0x19 U+0131 /dotlessj % 0x1A U+0237 /ff % 0x1B U+FB00 /fi % 0x1C U+FB01 /fl % 0x1D U+FB02 /ffi % 0x1E U+FB03 /ffl % 0x1F U+FB04 /visiblespace % 0x20 U+2423 /exclam % 0x21 /quotedbl % 0x22 /numbersign % 0x23 /dollar % 0x24 /percent % 0x25 /ampersand % 0x26 /quoteright % 0x27 U+2019 /parenleft % 0x28 /parenright % 0x29 /asterisk % 0x2A /plus % 0x2B /comma % 0x2C /hyphen % 0x2D /period % 0x2E /slash % 0x2F /zero.alt2 % 0x30 /one % 0x31 /two % 0x32 /three % 0x33 /four % 0x34 /five % 0x35 /six % 0x36 /seven % 0x37 /eight % 0x38 /nine % 0x39 /colon % 0x3A /semicolon % 0x3B /less % 0x3C /equal % 0x3D /greater % 0x3E /question % 0x3F /at % 0x40 /A % 0x41 /B % 0x42 /C % 0x43 /D % 0x44 /E % 0x45 /F % 0x46 /G % 0x47 /H % 0x48 /I % 0x49 /J % 0x4A /K % 0x4B /L % 0x4C /M % 0x4D /N % 0x4E /O % 0x4F /P % 0x50 /Q % 0x51 /R % 0x52 /S % 0x53 /T % 0x54 /U % 0x55 /V % 0x56 /W % 0x57 /X % 0x58 /Y % 0x59 /Z % 0x5A /bracketleft % 0x5B /backslash % 0x5C /bracketright % 0x5D /asciicircum % 0x5E /underscore % 0x5F /quoteleft % 0x60 U+2018 /a % 0x61 /b % 0x62 /c % 0x63 /d % 0x64 /e % 0x65 /f % 0x66 /g % 0x67 /h % 0x68 /i % 0x69 /j % 0x6A /k % 0x6B /l % 0x6C /m % 0x6D /n % 0x6E /o % 0x6F /p % 0x70 /q % 0x71 /r % 0x72 /s % 0x73 /t % 0x74 /u % 0x75 /v % 0x76 /w % 0x77 /x % 0x78 /y % 0x79 /z % 0x7A /braceleft % 0x7B /bar % 0x7C /braceright % 0x7D /asciitilde % 0x7E /hyphen % 0x7F U+002D (explicit "hyphen char") /Abreve % 0x80 U+0102 /Aogonek % 0x81 U+0104 /Cacute % 0x82 U+0106 /Ccaron % 0x83 U+010C /Dcaron % 0x84 U+010E /Ecaron % 0x85 U+011A /Eogonek % 0x86 U+0118 /Gbreve % 0x87 U+011E /Lacute % 0x88 U+0139 /Lcaron % 0x89 U+013D /Lslash % 0x8A U+0141 /Nacute % 0x8B U+0143 /Ncaron % 0x8C U+0147 /Ng % 0x8D U+014A /Ohungarumlaut % 0x8E U+0150 /Racute % 0x8F U+0154 /Rcaron % 0x90 U+0158 /Sacute % 0x91 U+015A /Scaron % 0x92 U+0160 /Scedilla % 0x93 U+015E /Tcaron % 0x94 U+0164 /Tcedilla % 0x95 U+0162 /Uhungarumlaut % 0x96 U+0170 /Uring % 0x97 U+016E /Ydieresis % 0x98 U+0178 /Zacute % 0x99 U+0179 /Zcaron % 0x9A U+017D /Zdotaccent % 0x9B U+017B /IJ % 0x9C U+0132 /Idotaccent % 0x9D U+0130 /dbar % 0x9E U+0111 /section % 0x9F U+00A7 /abreve % 0xA0 U+0103 /aogonek % 0xA1 U+0105 /cacute % 0xA2 U+0107 /ccaron % 0xA3 U+010D /dcaron % 0xA4 U+010F /ecaron % 0xA5 U+011B /eogonek % 0xA6 U+0119 /gbreve % 0xA7 U+011F /lacute % 0xA8 U+013A /lcaron % 0xA9 U+013E /lslash % 0xAA U+0142 /nacute % 0xAB U+0144 /ncaron % 0xAC U+0148 /ng % 0xAD U+014B /ohungarumlaut % 0xAE U+0151 /racute % 0xAF U+0155 /rcaron % 0xB0 U+0159 /sacute % 0xB1 U+015B /scaron % 0xB2 U+0161 /scedilla % 0xB3 U+015F /tcaron % 0xB4 U+0165 /tcedilla % 0xB5 U+0163 /uhungarumlaut % 0xB6 U+0171 /uring % 0xB7 U+016F /ydieresis % 0xB8 U+00FF /zacute % 0xB9 U+017A /zcaron % 0xBA U+017E /zdotaccent % 0xBB U+017C /ij % 0xBC U+0133 /exclamdown % 0xBD U+00A1 /questiondown % 0xBE U+00BF /sterling % 0xBF U+00A3 /Agrave % 0xC0 /Aacute % 0xC1 /Acircumflex % 0xC2 /Atilde % 0xC3 /Adieresis % 0xC4 /Aring % 0xC5 /AE % 0xC6 /Ccedilla % 0xC7 /Egrave % 0xC8 /Eacute % 0xC9 /Ecircumflex % 0xCA /Edieresis % 0xCB /Igrave % 0xCC /Iacute % 0xCD /Icircumflex % 0xCE /Idieresis % 0xCF /Eth % 0xD0 /Ntilde % 0xD1 /Ograve % 0xD2 /Oacute % 0xD3 /Ocircumflex % 0xD4 /Otilde % 0xD5 /Odieresis % 0xD6 /OE % 0xD7 U+0152 /Oslash % 0xD8 /Ugrave % 0xD9 /Uacute % 0xDA /Ucircumflex % 0xDB /Udieresis % 0xDC /Yacute % 0xDD /Thorn % 0xDE /SS % 0xDF (U+1E9E, /S_S) /agrave % 0xE0 /aacute % 0xE1 /acircumflex % 0xE2 /atilde % 0xE3 /adieresis % 0xE4 /aring % 0xE5 /ae % 0xE6 /ccedilla % 0xE7 /egrave % 0xE8 /eacute % 0xE9 /ecircumflex % 0xEA /edieresis % 0xEB /igrave % 0xEC /iacute % 0xED /icircumflex % 0xEE /idieresis % 0xEF /eth % 0xF0 /ntilde % 0xF1 /ograve % 0xF2 /oacute % 0xF3 /ocircumflex % 0xF4 /otilde % 0xF5 /odieresis % 0xF6 /oe % 0xF7 U+0153 /oslash % 0xF8 /ugrave % 0xF9 /uacute % 0xFA /ucircumflex % 0xFB /udieresis % 0xFC /yacute % 0xFD /thorn % 0xFE /germandbls % 0xFF U+00DF ] def