[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Font naming rears its ugly head again

Pierre MacKay writes:
> Over the course of a rich discussion of virtual fonts, I have
> finally come to understand and appreciate the full usefulness
> of Tom Rokicki's careful distinction between input encoding
> and output encoding in afm2tfm.  In a virtual font environment
> it answers the questions that have recently been raised about
> the proper encoding of a {\em raw} tfm file.  The raw tfm
> should contain references to every simple (non-composite)
> character in the actual list of glyphs, and it need not contain
> anything else.  Dozens of possible output encodings are
> possible, among which DC will of course be a major player,
> but all those reencodings will be easier and more portable
> if there is only one {\em raw} encoding.  The raw encoding should
> provide for {\em every} simple character in the font, including
> all the unmapped characters.  Fortunately, the list of
> unmapped characters is almost as consistent as Adobe Standard
> Encoding at least in text fonts.  I propose therefore
> the following ASEX.enc (Adobe Standard Coding Extended)
> to be used with the -p flag in afm2tfm.  What is used for
> the -t flag is wide open, but it can certainly include DC.enc

In your raw encoding you have left out all the accented letters.
There are two important reasons why I think they should be encoded
in the raw font:
1. In some high-quality fonts, which Adobe obviously put more work
   into than others, like Adobe Garamond and Adobe Caslon, the
   accented letters are not composite characters.  If you look at
   them you'll see that most of the accents have a different shape
   for upper and lower case letters.  These well-designed accented
   letters should not be replaced by much worse-looking composite
   characters created by dvips.
2. In fonts where the accented letters are composite characters,
   the accents are usually more accurately positioned, especially
   at low resolution, in the built-in ones than in the ones created
   by dvips.
Most of Adobe's fonts, regardless of whether the accented letters
are composite characters, have the same set of 228 glyphs.  I have
created a true superset of Adobe's StandardEncoding, which has the
following properties:
1. All the glyphs in Adobe's StandardEncoding are present and have
   the same position in the encoding.
2. All the other glyphs from that ``standard'' set of 228 are put
   into unused positions in Adobe's StandardEncoding.  I've tried
   to keep ``similar'' characters together, so my encoding isn't
   completely arbitrary.
Here it is:

%   This is adobe228, a superset of Adobe's StandardEncoding which maps all
%   the 228 glyphs which are included in most of Adobe's fonts.
%   Created by Jan Michael Rynning <jmr@nada.kth.se> 1992-09-12.
/adobe228 [ % now 256 chars follow
% 0x00
  /Aacute /Acircumflex /Adieresis /Agrave /Aring /Atilde /Ccedilla /Eacute
  /Ecircumflex /Edieresis /Egrave /Eth /Iacute /Icircumflex /Idieresis /Igrave
% 0x10
  /Ntilde /Oacute /Ocircumflex /Odieresis /Ograve /Otilde /Scaron /Thorn
  /Uacute /Ucircumflex /Udieresis /Ugrave /Yacute /Ydieresis /Zcaron /.notdef
% 0x20
  /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright
  /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash
% 0x30
  /zero /one /two /three /four /five /six /seven
  /eight /nine /colon /semicolon /less /equal /greater /question
% 0x40
  /at /A /B /C /D /E /F /G
  /H /I /J /K /L /M /N /O
% 0x50
  /P /Q /R /S /T /U /V /W
  /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore
% 0x60
  /quoteleft /a /b /c /d /e /f /g
  /h /i /j /k /l /m /n /o
% 0x70
  /p /q /r /s /t /u /v /w
  /x /y /z /braceleft /bar /braceright /asciitilde /.notdef
% 0x80
  /aacute /acircumflex /adieresis /agrave /aring /atilde /ccedilla /eacute
  /ecircumflex /edieresis /egrave /eth /iacute /icircumflex /idieresis /igrave
% 0x90
  /ntilde /oacute /ocircumflex /odieresis /ograve /otilde /scaron /thorn
  /uacute /ucircumflex /udieresis /ugrave /yacute /ydieresis /zcaron /.notdef
% 0xA0
  /.notdef /exclamdown /cent /sterling /fraction /yen /florin /section
  /currency /quotesingle /quotedblleft /guillemotleft
  /guilsinglleft /guilsinglright /fi /fl
% 0xB0
  /brokenbar /endash /dagger /daggerdbl
  /periodcentered /degree /paragraph /bullet
  /quotesinglbase /quotedblbase /quotedblright /guillemotright
  /ellipsis /perthousand /.notdef /questiondown
% 0xC0
  /.notdef /grave /acute /circumflex /tilde /macron /breve /dotaccent
  /dieresis /.notdef /ring /cedilla /.notdef /hungarumlaut /ogonek /caron
% 0xD0
  /emdash /onesuperior /twosuperior /threesuperior
  /onequarter /onehalf /threequarters /logicalnot
  /plusminus /minus /multiply /divide
  /copyright /registered /trademark /mu
% 0xE0
  /.notdef /AE /.notdef /ordfeminine /.notdef /.notdef /.notdef /.notdef
  /Lslash /Oslash /OE /ordmasculine /.notdef /.notdef /.notdef /.notdef
% 0xF0
  /.notdef /ae /.notdef /.notdef /.notdef /dotlessi /.notdef /.notdef
  /lslash /oslash /oe /germandbls /.notdef /.notdef /.notdef /.notdef
] def

Jan Michael Rynning			Email: jmr@nada.kth.se
Department of Numerical Analysis
  and Computing Science			Voice: +46-8-7906288
Royal Institute of Technology		Fax: +46-8-7900930
S-100 44 Stockholm
Sweden					Normal host: jmr.nada.kth.se