% This is FCSFLIGT.MF 
% Version 1.3
% Date 6-OCT-1996
% 
% (c) 1992--1996 by J"org Knappen
% This file is part of the fc-package 
% See fc.rme for more information
%
% J"org Knappen
% Unternehmensberatung
% Barbarossaring 43
% D-55118 Mainz
% Allemagne

% knappen@vkpmzd.kph.uni-mainz.de

%
% Ligature Table for fc sans serif 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

numeric itc#; itc#=1.25u#;
ligtable
    "f":   "i"=:oct"034",
           "f"=:oct"033",
           "l"=:oct"035",
           "j"=:fj_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#;

ligtable long_f: esh: t_esh_lig:
          "'" 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 "k": "W" kern kk#, "V" kern kk#,  % kW, kV
             "v": "w": hooktop_k:
                   lig_a_table(-u#), lig_e_table(k#),
                   lig_o_table(k#), "c" kern k#, c_cedilla kern k#,
                   hooktop_c kern k#;

ligtable "y": ipa_gamma:
              lig_a_table(k#), lig_o_table(k#), lig_e_table(k#),
              "c" kern k#, c_cedilla kern k#, hooktop_c kern k#,
              hooktop_y: "." kern kk#, "," kern kk#;

ligtable "o": "p": "b": open_o: reversed_e: open_o_tilde: o_grave: o_dot:
             o_hat: o_tilde: o_umlaut: crossed_o: o_dotu: o_uline:
             o_bar: o_hachek: hooktop_p:
               lig_e_table(-k#), lig_o_table(-k#), "q" kern -k#, "c" kern -k#,
               c_cedilla kern -k#, hooktop_c kern -k#, "d" kern -k#, 
               crossed_d kern -k#, hooktop_d kern -k#, tailed_d kern -k#,
               "x" kern k#, "y" kern k#, hooktop_y kern k#, "v" kern k#,
               "w" kern k#, ipa_gamma kern k#, "r" kern k#;

ligtable "a": a_tilde:
               "v" kern k#, "w" kern k#, "y" kern k#, "r" kern k#,
               hooktop_y kern k#, ipa_gamma kern k#;

ligtable "t": esh=: t_esh_lig, 
           sami_t: hooktop_t: "y" kern k#;

ligtable "u": u_dotu: u_tilde: "w" kern k#;

ligtable "g": "j" kern -k#;

ligtable "e": "V" kern kk#; % eV

ligtable hooktop_d:
                    "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#; 

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

ligtable "P": hooktop_P:
                   "a" kern k#, "e" kern k#, open_e kern k#, 
                    reversed_e kern k#, 
                   "o" kern k#, open_o kern k#, 
                    ae_lig kern k#, oe_lig kern k#, 
                   "A" kern kk#, "." kern k#, 
                   "," kern k#;


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: latin_Iota:
                  "t" kern k#, sami_t kern k#, hooktop_t kern k#, "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":     "T" kern kk#, long_T kern kk#, "Y" kern kk#, 
                  hooktop_Y kern kk#, "V" kern kkk#, "W" kern kkk#;
                 
ligtable "I":    "I" kern -k#;

endinput;
