% This is FCITLIGT.MF 
% Version 1.3a
% Date 25-NOV-1994
% 
% (c) 1992, 1994 by J"org Knappen
% This file is part of the fc-package 
% See fc.rme for more information
%
% J"org Knappen
% Institut f"ur Kernphysik
% Postfach 39 80
% D-W 55099 Mainz
% knappen@vkpmzd.kph.uni-mainz.de

%
% Ligature Table for fc italic fonts
%

ligtable ">":">" =: oct"023"; % Guillemets
ligtable "<":"<" =: oct"024";
ligtable "`":"`" =: oct"020"; % Quotation marks
ligtable "'":"'" =: oct"021";
ligtable ",":"," =: oct"022";
ligtable "!":"`" =: spanish_shriek; % Spanish punctuation
ligtable "?":"`" =: spanish_query;
ligtable "-":"-" =: oct"025", % n-dash
             127 =: 127;      % "-" "hyphenchar" -> "hyphenchar"
ligtable oct"025":"-" =: oct"026"; % m-dash

% Ligatures fl, fi, ff etc not yet implemented

numeric itc#; itc#=(asc_height#-x_height#)*slant+1/4u#;

ligtable "f":    "i"=:oct"034",
                 "f"=:oct"033",
                 "l"=:oct"035",
                 "j"=:fj_lig,
long_f: esh: t_esh_lig:
    "'" kern itc#, "?" kern itc#, "!" kern itc#,
    ")" kern itc#, "]" kern itc#; 

ligtable oct"033":   % ff
          "i"=:oct"036",
          "l"=:oct"037",
          "'" kern itc#,
          "?" kern itc#,
          "!" kern itc#,
          ")" kern itc#,
          "]" kern itc#;


def lig_o_table (expr k) =
             "o" kern k,  open_o kern k, open_o_tilde kern k,
                          o_grave kern k, o_dot kern k, o_hat kern k,
                          o_tilde kern k, o_umlaut kern k, oe_lig kern k,
                          crossed_o kern k, o_dotu kern k, o_uline kern k,
                          o_bar kern k, o_hachek kern k
enddef;
%
def lig_a_table (expr k) =
           "a" kern k,    a_tilde kern k, ae_lig kern k
enddef;
%
def lig_i_table (expr k) = 
           "i" kern k, oct"031" kern k, i_tilde kern k, latin_iota kern k,
                       i_dotu kern k
enddef;
def lig_e_table (expr k)=
             "e" kern k, e_hachek kern k, e_dot kern k, open_e kern k,
                         reversed_e kern k, e_dotu kern k, open_e_tilde kern k,
                         e_grave kern k, e_acute kern k, e_hat kern k,
                         e_umlaut kern k, e_uline kern k, e_bar kern k,
                         e_tilde kern k
enddef;
%
def lig_u_table (expr k)=
             "u" kern k, u_dotu kern k, u_tilde kern k, var_u kern k
enddef;
%
def lig_O_table (expr k) =
             "O" kern k,  open_o kern k, open_O_tilde kern k,
                          O_grave kern k, O_dot kern k, O_hat kern k,
                          O_tilde kern k, O_umlaut kern k, OE_lig kern k,
                          crossed_O kern k, O_dotu kern k, O_uline kern k,
                          O_bar kern k, O_hachek kern k
enddef;
%
%
%
k#:=-.5u#; kk#:=-1.5u#; kkk#:=-2u#; % three degrees of kerning


ligtable "F": long_F: "V": "W": "T": hooktop_T: "Y":
                   "a" kern kk#, "e" kern kk#, open_e kern kk#, 
                    reversed_e kern kk#, oct"031" kern kk#, latin_iota kern kk#,
                   "o" kern kk#, open_o kern kk#, "u" kern kk#, var_u kern kk#,
                    ae_lig kern kk#, oe_lig kern kk#, "r" kern kk#, 
                   "y" kern kk#,
                   "A" kern kk#, "." kern kk#, 
                   "," kern kk#;

ligtable "P": hooktop_P:
                   "A" kern kk#, "." kern kk#, 
                   "," kern kk#;


ligtable "K": "X": ipa_Gamma:
                   lig_O_table(k#), "C" kern k#, "G" kern k#, "Q" kern k#,
                   hooktop_C kern k#, C_cedilla kern k#;

ligtable "O": "D": Edh: hooktop_D: open_O: open_O_tilde: O_grave: O_dot:
             O_hat: O_tilde: O_umlaut: crossed_O: O_dotu: O_bar: O_hachek:
                  "X" kern k#, ipa_Gamma kern k#, "W" kern k#, "V" kern k#,
                  "Y" kern k#, hooktop_Y kern k#, "A" kern k#, A_tilde kern k#,
                   AE_lig kern k#;

ligtable "A": A_tilde: "R": latin_Iota:
                  "t" kern k#, sami_t kern k#, hooktop_t kern k#, 
                   "n" kern k#, "m" kern k#, enj kern k#, eng kern k#, 
                   n_tilde kern k#, n_acute kern k#, n_dot kern k#, 
                   n_uline kern k#, m_acute kern k#,
                   "l" kern k#, "r" kern k#, lig_u_table(k#), lig_i_table(k#), 
                   "h" kern k#, crossed_h kern k#, "b" kern k#, 
                   hooktop_b kern k#, "k" kern k#, hooktop_k kern k#, 
                   "v" kern k#, "w" kern k#,
                   lig_e_table(-u#), lig_a_table(-u#), lig_o_table(-u#),
                   "d" kern -u#, hooktop_d kern -u#, crossed_d kern -u#,
                   tailed_d kern -u#, "c" kern -u#, hooktop_c kern -u#,
                   c_cedilla kern -u#, "g" kern -u#, "q" kern -u#,
                   "C" kern k#,
                   hooktop_C kern k#, C_cedilla kern k#, "G" kern k#, 
                   lig_O_table(k#), "Q" kern k#, "U" kern k#, var_U kern k#,
                   "T" kern kk#, long_T kern kk#, "Y" kern kk#, 
                   hooktop_Y kern kk#, "V" kern kkk#, "W" kern kkk#;
                 
ligtable "L":      lig_e_table(-u#), lig_a_table(-u#), lig_o_table(-u#),
                   "d" kern -u#, hooktop_d kern -u#, crossed_d kern -u#,
                   tailed_d kern -u#, "c" kern -u#, hooktop_c kern -u#,
                   c_cedilla kern -u#, "g" kern -u#, "q" kern -u#,
                   "T" kern kk#, long_T kern kk#, "Y" kern kk#, 
                  hooktop_Y kern kk#, "V" kern kkk#, "W" kern kkk#;

ligtable "l":     "l" kern u#;

ligtable "b": hooktop_b: "c": hooktop_c: c_cedilla: 
         "e": e_hachek: e_dot: open_e: reversed_e: e_dotu: open_e_tilde:
          e_grave: e_acute: e_hat: e_umlaut: e_uline: e_bar: e_tilde:
         "o":  open_o: open_o_tilde: o_grave: o_dot: o_hat:
          o_tilde: o_umlaut: oe_lig: crossed_o: o_dotu: o_uline:
          o_bar: o_hachek: "p": hooktop_p: "r":
                   lig_e_table(-u#), lig_a_table(-u#), lig_o_table(-u#),
                   "d" kern -u#, hooktop_d kern -u#, crossed_d kern -u#,
                   tailed_d kern -u#, "c" kern -u#, hooktop_c kern -u#,
                   c_cedilla kern -u#, "g" kern -u#, "q" kern -u#;
ligtable "n":      "'" kern kkk#;
                    
ligtable hooktop_d:                 % t_esh_lig:
                    "a" kern k#, "e" kern k#, latin_iota kern k#, 
                    oct"031" kern k#, open_e kern k#, reversed_e kern k#,
                    "o" kern k#, open_o kern k#, "u" kern k#, var_u kern k#,
                    ae_lig kern k#, oe_lig kern k#,
                    "." kern kk#, "," kern kk#;

ligtable tailed_d: lig_a_table(k#), lig_e_table(k#), lig_i_table(k#),
                   lig_o_table(k#), lig_u_table(k#), "." kern kk#; 

endinput;
