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

kern pairs in CM fonts TFM




re: apparently conflicting kern pairs in CM TFM files.

Can anyone tell me where the apparently contradictory kern pairs come from in
CM TFM files?  There are a few cases where there are two occurences of a
particular kern pair with different kern amounts.  Now presumably TeX stops
looking after it finds the first one, so one of these values is always
shadowed.  But I am curious whether this is an `optimization' that METAFONT
does, or whether it is something the font author has control over.  Attached
find examples.

Regards, Berthold.

>From CMR10:

   (LABEL C k)
   (LABEL C v)
   (KRN C a R -0.055555)
   (LABEL C w)
   (KRN C e R -0.027779)
   (KRN C a R -0.027779)
   (KRN C o R -0.027779)
   (KRN C c R -0.027779)
   (STOP)

Which means that the kern programs for k and v drop through to the kern
program for w.  Hence there are two different kerns for the pairs `k a' 
and `v a,' of different size (-0.055555 and -0.027779).  
Presumably TeX will read the first one and ignore the second.

The same thing happens in all CMR* and CMBX* fonts (and some others).
But there are no other such duplicate kern pairs in CM TFM files AFAIK.

(There are a few other places where kern programs `drop through,'
but none where there are conflicting values for the kern amount).

>From CMMI10:

   (LABEL C N)
   (LABEL C X)
   (KRN O 75 R -0.083334)
   (LABEL C C)
   (LABEL C T)
   (KRN O 75 R -0.027779)
   (KRN O 73 R -0.055555)
   (KRN O 72 R -0.055555)
   (LABEL O 2)
   (LABEL O 4)
   (LABEL O 6)
   (LABEL O 10)
   (LABEL O 12)
   (LABEL O 14)
   (LABEL O 20)
   (LABEL O 22)
   (LABEL O 32)
   (LABEL O 36)
   (LABEL O 42)
   (LABEL O 43)
   (LABEL O 45)
   (LABEL O 46)
   (LABEL O 47)
   (LABEL O 100)
   (LABEL C B)
   (LABEL C E)
   (LABEL C G)
   (LABEL C O)
   (LABEL C Q)
   (LABEL C R)
   (LABEL C l)
   (LABEL C p)
   (LABEL C q)
   (LABEL C t)
   (LABEL C w)
   (LABEL O 174)
   (KRN O 177 R 0.083336)
   (STOP)

The tail end of this are just some bogus kern pairs used for accent
positioning in math.  The interesting part is the start, where the
kern programs for N and X drop through to those for C and T.
As a result there are two kern pairs for each of `N slash' and 
`X slash,' with different kern amounts.

The same thing happens in all CMMI* and CMMIB* fonts.