% ligatures and kerns for italic fonts

ligtable
    "`":  "`"=:oct"020",
          oct"020" kern 2u#,
          "?" kern 2u#,
          "!" kern 2u#;

ligtable
    "'":  "'"=:oct"021",
          oct"021" kern 2u#,
          "?" kern 2u#,
          "!" kern 2u#;

ligtable
    "-":  "-" =: oct"025",
     oct"177" =: oct"177"; % <hyphen><hyphenchar> => <hyphenchar>

ligtable
    oct"025": "-"=:oct"026";  % "---"  => emdash

ligtable "<": "<" =: oct"023";     % "<<"
ligtable ">": ">" =: oct"024";     % ">>"
ligtable ",": "," =: oct"022";     % ",,"

k#:=-.5u#; ku#:=-1u#; kk#:=-1.5u#; kkk#:=-2u#; % four degrees of kerning

ligtable boundarychar:
   oct"020" kern -kk#, oct"021" kern -kk#, oct"022" kern -kk#,
   oct"055" kern -kk#, oct"140" kern -kk#, oct"047" kern -kk#;

ligtable oct"022":
   oct"015" kern 2u#, "," kern 2u#,
         oct"015":
   oct"022" kern 2u#,
   "v" kern kk#, "w" kern kk#, 
   "T" kern kk#, "V" kern kkk#, "W" kern kkk#,
   Y_fam(kern kk#,)  
   O_fam(kern k#,) lig_CGQ_table(k#),
   boundarychar kern -kk#;

ligtable oct"020":
   oct"140" kern 2u#, oct"020" kern 2u#, boundarychar kern -kk#;

ligtable oct"021":
   oct"047" kern 2u#, oct"021" kern 2u#, boundarychar kern -kk#;

ligtable oct"024": % ">>"
   "." kern kk#, "," kern kk#;

ligtable
        d_fam(:) "w": "l": 
                "l" kern +u#;
ligtable
        "F": "W": "V":    
                o_fam(kern kk#,)
                e_fam(kern kk#,) 
                u_fam(kern kk#,)
                "r" kern kk#, "n" kern kk#, "v" kern kk#,
                a_fam(kern kk#,) 
                A_fam(kern kkk#,)
        "X":    O_fam(kern k#,)
                lig_CGQ_table(k#);

ligtable 
       "K": "v" kern k#,
            "w" kern k#,
            O_fam(kern k#,)
            lig_CGQ_table(k#);

ligtable
        "T": 
                y_fam(kern kk#,)
        Y_fam(:) 
                e_fam(kern kk#,)
                o_fam(kern kk#,)
                "r" kern kk#,
                a_fam(kern kk#,)
                u_fam(kern kk#,)
        "P":   
                A_fam(kern kk#,)
                end_ligtable;
ligtable
        O_fam(:)
        D_fam(:) 
                "X" kern k#,
                "W" kern k#,
                A_fam(kern k#,)
                Y_fam(kern k#,)
                "V" kern k#;
ligtable
        A_fam(:)
                y_fam(kern k#,) 
        "R":
                "n" kern k#,
                "l" kern k#, 
                "r" kern k#,
                u_fam(kern k#,)
                "m" kern k#,
                "t" kern k#, 
                i_fam(kern k#,) 
                "h" kern k#,
                "b" kern k#,
                "k" kern k#,
                "v" kern k#,
                "w" kern k#,
                lig_CGQ_table(k#),
                O_fam(kern k#,)
                U_fam(kern k#,)
        "L":
                "T" kern kk#, 
                Y_fam(kern kk#,) 
                "V" kern kkk#,
                "W" kern kkk#,
        "b":
        "c": 
        e_fam(:)
        o_fam(:)
        "p":
        "r":    e_fam(kern -u#,)
                a_fam(kern -u#,)
                o_fam(kern -u#,)
                d_fam(kern -u#,)  
                "c" kern -u#,
                "g" kern -u#,  
                "q" kern -u#;
ligtable
        "n":    "'" kern kkk#;


endinput;
