From: Howard S. Goodman <hsg@cs.bham.ac.uk>
Subject: Re: Postscript ligature tables and expert sets (or lack of)
Originator: hsg@fat-controller
Organization: School of Computer Science, University of Birmingham, England
Date: Thu, 12 Nov 1992 10:39:57 GMT

In article <BxJw95.M2J@cs.bham.ac.uk> I wrote:

> We have a problem here, in that when using AGaramond-Regular (which is
> resident in the printer) the system is automatically looking for
> AGaramondExp-Regular (the `expert set', which we don't have) for `ff', `ffi'
> and `ffl' ligatures.
>
> How can we tell TeX/dvips that those ligatures don't exist, and that it
> should make do with the `fi' and `fl' ligatures in AGaramond-Regular?
>
> (We are using version 5.47 of Radical Eye Software's dvips, if that helps.)

In article <ROLFL.92Nov11152923@ulrik.uio.no> rolfl@ulrik.uio.no replied:

> That last sentence did the trick.
> 
> The pre-bulit tfm files that came with the (now, in theory, obsolete)
> dvips 5.47 assumed the entire AGaramond font family. What you need to to
> is to rebuild the tfm and vpl files without explicit reference to the
> expert characters. To do this, say
> 
> 	afm2tfm AGaramond-Regular -v padr rpadr
> 	vptovf padr.vpl padr.vf padr.tfm
> 	cp *.tfm    .../tfm/.
> 	cp *.vf	    .../vf/.
> 
> 	likewise for
> 	
> 	AGaramond-Bold padb
> 	AGaramond-Italic padri
> 	AGaramond-BoldItalic padbi

Well, that is exactly what we did, and it worked fine, so thank you to Rolf
Lindgren.  Also thanks to Dave Howell (snark@wizards.com) of SnarkWorks
Typesetting & Book Design for the following information about editing .vpl
files.  Fortunately such a complicated approach wasn't necessary this time ...

> Hmm. As someone who DOES have AGaramondExp-Regular, I can assure you
> that it's a lot of work to get the "system" to use characters from
> the second set. The .vf (.vpl) file is the only place that such a
> reference can exist. Note that the .vpl file probably won't mention
> the expert set by name. What you're looking for would look like this:
> 
> (MAPFONT D 0
>    (FONTNAME rpadr)
>    (FONTCHECKSUM O 14417127371)
>    (FONTAT R 1.0)
>    (FONTDSIZE R 10.0)
>    )
> (MAPFONT D 1
>    (FONTNAME rpadrx)
>    (FONTCHECKSUM O 21730157366)
>    (FONTAT R 1.0)
>    (FONTDSIZE R 10.0)
>    )
> 
> Reference font D 1 is the expert set (rpadrx)
> That, by the way, is rougly Raw Postscript ADobe-garamond Roman
> eXpert.
> 
> Now, let's look at the lig tables for f.
> 
>    (LABEL C f)
>    (LIG C f O 322)
>    (LIG C l O 257)
>    (LIG C i O 256)
> 
> There aren't any ff ligs in the regular font. Let's look at the lig
> for O 322. (Your characters should vary, as I had to select the char
> positions myself, more or less at random.)
> 
>    (LABEL O 322)
>    (LIG C i O 323)
>    (LIG C l O 324)
>    (STOP)
> 
> Now, looking at characters 322, 323, and 324, which must be the
> ligatures ff, ffi, and ffl, we see:
> 
> (CHARACTER O 322
>    (CHARWD R 0.558)
>    (CHARHT R 0.71175)
>    (CHARDP R 0.006)
>    (CHARIC R 0.112)
>    (COMMENT
>       (LIG C i O 323)
>       (LIG C l O 324)
>       )
>    (MAP
>       (SELECTFONT D 1)
>       (SETCHAR C V)
>       )
>    )
> 
> OK, never mind 323 and 324, they're just more of the same.
> See there? MAP SELECTFONT D 1 is calling for a character from 
> set D 1, which is the expert set.
> 
> The quicky solution is to delete the ff entry from the small-f
> section of the lig table. If you're interested in a tidy .v file,
> then deleting both that and the font entry for rpadrx at the
> beginning is better. When you reconvert the .vpl file to .vf, you'll
> get a bunch of complaints about characters referencing font D 1 when
> there isn't any such font. You note the characters that generate
> messages, and delete them too. 

+--------------------+--------------------------------------------------------+
| howard s goodman   |  school of computer science - university of birmingham |
| hsg@cs.bham.ac.uk  |			     - BIRMINGHAM - B15 2TT - england |
+--------------------+--------------------------------------------------------+
Newsgroups: comp.text.tex