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

Re: Font naming rears its ugly head again

I plan to propose this in TeXhax, since Tom Rokicki assures me that 
I have not misunderstood afm2tfm.  It should be relevant
to fontinst too

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

There remains the question of what to do about the various
Superfont layouts: Courier in its most prolific version has
352 simple characters and the Monotype TimesNewRomanSF Superfont
has 337 simple characters.  In the case of TimesNewRoman, the
excess is the result of combining the regular with the expert
font, and all that is needed is to code the expert part back
out into an expert raw TFM file.  Then there are only 11 pairs
of additional simple characters.  A similar approach can be taken
with Courier; many of the symbol characters, together with the
borders and dingbats do not belong in a tex encoding anyway.

%  -------------------------------------------------------------------------
%   This is ASEX encoding. (file ASEX.enc)
%   Adobe Standard Encoding Extended.
%   Creator: Pierre A. MacKay mackay@cs.washington.edu
%   Creation Date: Thu Aug 26 09:42:27 PDT 1993
%   This is an input coding file for use with Radical Eye Software's
%   afm2tfm.  Use with the -p flag.  This file should also be
%   used with ps2pk to create a complete set of bitmapped 
%   characters.
%   The sole purpose of this file is to ensure that all non-composite
%   characters in the font are made available in the raw TFM.  Therefore
%   there are no ligatures or any other refinements.  The raw TFM
%   file contains no ligatures or kernings---nothing but character 
%   metrics.  We retain Adobe Standard encoding for all mapped 
%   characters on the AFM file, and extend the list by adding
%   the unmapped simple characters into the empty code positions
%   from O 200 to O 240.  It is assumed that the output coding used
%   for the TeX tfm will be different from this ( -t flag in afm2tfm ).
%   The extended part of this  encoding is consistent with the general 
%   run of text fonts from Adobe, BitStream, DTC, Linotype, Monotype, 
%   URW and probably others as well.  For SuperFont characters, see below.
%   Usage:
%     afm2tfm <FontName>.afm -p ASEX.enc -t <XXX>.enc -v <vplname> <rawname>
/ASEXEncoding [          % now 256 chars follow
% 0x00  
  /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef 
  /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef 
% 0x10
  /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef 
  /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef 
% 0x20 % Keep the space, for use as \boundarychar (Zero width in vpl)
  /space /exclam /quotedb /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
% This is the Extension to Adobe Standard Encoding
% In as many of the next 32 positions as necessary, include
% all the unmapped simple (non-composite) characters.  The
% inclusion of Ccedilla and ccedilla is problematic.  These are
% composites in some schemes, simple in others.  Best to 
% include them here.  Characters are entered in alphabetical order
% by name.
% 0x80
  /Ccedilla /Eth /Thorn /brokenbar /ccedilla /copyright /degree /divide
  /eth /logicalnot /minus /mu /multiply /onehalf /onequarter /onesuperior
% 0x90 
  /plusminus /registered /thorn /threequarters
  /threesuperior /trademark /twosuperior /.notdef 
  /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef 
% From here on the order is again Adobe Standard Encoding
% 0xA0
  /.notdef /exclamdown /cent /sterling /fraction /yen /florin /section 
  /currency /quotesingle /quotedblleft /guillemotleft
  /guilsinglleft /guilsinglright /fi /fl
% 0xB0
  /.notdef /endash /dagger /daggerdbl /periodcentered /.notdef /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 /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef 
  /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef 
% 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
% The following may replace the characters from 0 to 32 in the raw encoding
% if you have access to a superfont.  There is reason to hope that this
% set will be as stable as the unmapped set in current text fonts
% 0x00
% /Aogonek /Iogonek /Kafii9170 /Lafii9170 /Lcaron /Nafii9170 /Rafii9170 /Safii9170
% /Scedilla /Tafii9170 /Uogonek /.notdef /.notdef /.notdef /.notdef /.notdef
% 0x10
% /aogonek /iogonek /kafii9170 /lafii9170 /lcaron /nafii9170 /rafii9170 /safii9170
% /scedilla /tafii9170 /uogonek /.notdef /.notdef /.notdef /.notdef /.notdef

Email concerned with UnixTeX distribution software should be sent primarily
to:	elisabet@u.washington.edu	        Elizabeth Tachikawa
otherwise to:  mackay@cs.washington.edu		Pierre A. MacKay
Smail:  Northwest Computing Support Center	Resident Druid for
	Thomson Hall, Mail Stop DR-10		Unix-flavored TeX
	University of Washington
	Seattle, WA 98195
	(206) 543-6259