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

Re: Future of the `Karl Berry Font Naming Scheme'...



>Rebecca and Rowland <rebecca@astrid.u-net.com> write(s):
>
>>> Adobe has adopted a semi-consistent naming scheme for
>>> fount files on Macs ... It's called the `5+3+3' scheme,
>>> because you take the first 5 characters
>>> from the first element in the name, the first three from the next, and so
>>> on until you run out of name elements.
>
>I wrote a small test program in awk to process the output of
>
>	grep -h ^FullName *.afm
>
>It looks like this:
>
>/^FullName / {
>        name533 = substr($2,1,5) substr($3,1,3) substr($4,1,3)
>        if (name533 in used) collisions++
>        used[name533]++
>}
>
>END {
>  print collisions, "collisions"
>}
>
>For 1036 unique font names from Monotype and Bitstream fonts in my
>file tree, there are 292 collisions.  For a set of 97 unique font
>names in PostScript fonts collected from various UNIX vendor font
>sets, I found 37 collisions.  That is 28% and 38% respectively.
>
>I don't have a similar set of .afm files for Adobe fonts, so I cannot
>make the experiment for them, but at least for non-Adobe fonts, the
>5+3+3 algorithm is unusable.

Yes, but the Adobe scheme is actually 5+3+3+3+3...  until you get sick of it.

What's the result of trying *that* algorithm on a set of fount names?  As
far as I can see, it does produce unique names (except in the case of
different founts having the same name - how common is this?)

>What is wanted here is a perfect hashing algorithm that produces names
>that are short and guaranteed unique.  If it should also be generable
>by a human, then the only algorithm that suffices is to use the full
>name.  But that requirement conflicts with about 200M desktop
>computers that are stuck with 8+3 limits.  That is why font vendors
>have gone to arbitrary names like 1097a___.afm for Bitstream's
>"Venetian 301 Demi", and most PostScript software supports mapping
>files to convert long font names to short file names.

Yes, this much I understand.

>Adobe software, for example, uses the PSres.upr file, which contains
>entries like this:
>
>...
>FontAFM
>AGaramond-Bold=metrics/adobe/adobegar/afm/padb0.afm
>AGaramond-BoldItalic=metrics/adobe/adobegar/afm/padbi0.afm
>AGaramond-Italic=metrics/adobe/adobegar/afm/padri0.afm
>AGaramond-Regular=metrics/adobe/adobegar/afm/padr0.afm
>...
>
>and the mkpsres program (e.g., in the ps2pk15/PSres distribution) can
>build such a file given a top-level directory under which fonts are
>found.

Righto - what sort of software uses this file?  I've used some Adobe
software (ATM is on my Mac at the moment) and I've never met this file.

>I think Karl Berry did an excellent job in his font naming package,
>and we need to stick with it, though, by all means, let us also
>support name mapping files.

I agree with the basic idea that Karl did a good job, but his naming scheme
does have its problems.  It certainly doesn't meet the criteria of
producing unique names for all founts, but given the abominable 8+3 limit,
that's hardly surprising.

I wasn't suggesting the Adobe Mac scheme as a replacement, although if a
replacement *were* produced, I think something similar would be better than
Karl's `long' fontname scheme, which results in names which strike me as
far too long for anyone with a cli to want to touch.  (Come to think of it,
I've got a GUI and I don't want filenames that long).

Rowland.