[comp.text.tex] PostScript ligatures

rokicki@neon.Stanford.EDU (Tomas G. Rokicki) (03/28/91)

I'm working on a new version of dvips (5.48) for release soon.  One of the
issues I'm trying to deal with is the automatic accent ligatures in PostScript
fonts.  Any comments would be appreciated.
 
Currently, when creating the virtual font for a PostScript font, if afm2tfm
notices that there is a character named `foo' and another named `Afoo', for
any single-character `A' and any `foo', it creates the ligature
 
   `A' `foo' -> `Afoo'
 
This gives you pretty ligures, when you use them.  For instance, in the current
virtual fonts ptmr and pcrr (and others), if you type
 
   \catcode`\^=11  ^A
 
you get the normal PostScript Ahat, instead of the accented A created out of
two symbols A and ^.  Of course, even now,
 
   \^A
 
still gives you the constructed symbol.  Unfortunately, these ligatures hurt
things; whenever the user tries to list the Pascal declaration
 
   foo: ^Arecord ;
 
using Courier he actually gets an accented A rather than the two separate
`^' and `A' characters.  This also happens in the other fonts.
 
What I propose doing is turning off these ligatures (by commenting out the
single call to `makeaccentligs()' in afm2tfm).  The reasoning is as follows.
 
The virtual fonts currently try and make the PostScript fonts look as close
to the standard Computer Modern fonts as possible, while still providing
access to the additional characters.  The `makeaccentligs()' parameter is
actually a step away from Computer Modern, though, in that
 
   \catcode`\^=11 {\font\norm=cmr10\norm ^A}
 
gives very different results from
 
   \catcode`\^=11 {\font\norm=ptmr\norm ^A}
 
This especially shows up in verbatim environments.
 
The advantage of leaving the makeaccentligs() in there is that it makes it
easier and more natural to access the accented characters, when they exist.
On the other hand, this last is an international character set problem that
has not yet been resolved, and the resolution of the character set problem
will probably have a different solution for ^A.
 
Any and all feedback would be appreciated.  I am currently in favor of making
this change (which would modify all the standard PostScript tfm and vf files),
but welcome comments as to why it should be left in.
 
Thank you for your time.