% orkern.mf -- kerning table for Oriya metafont
% Copyright 1996, 1997, 1998, 1999 Jeroen Hellingman
%
% Note:
%   we can't use kerning tables to position the matra's correctly, as that
%   will shift all following characters as well, we can, however, use kerning
%   and ligatures to change or join matras to the characters -- making the
%   preprocessor much simpler. For this need to create various, differently
%   positioned, copies of of the matras, but that we will have to do anyway,
%   when we create a PostScript version of the font for use in applications
%   that assume all glyphs are on the same line.
%
% History:
%   20-JUN-1999 Added j+ja, j+jha (JH)
%   16-JUN-1999 Added s+tu
%   29-MAY-1999 Added k+tta, t+pa (JH)
%   31-MAY-1998 Added h+ma (JH)
%   30-MAY-1998 Added ni, n+ti, etc. (JH)
%   07-SEP-1997 Added d+ga (JH)
%   27-APR-1997 Added bhu combination (JH)
%   18-NOV-1996 Added centered matras under some letters (JH)
%   23-SEP-1996 Added flag to disable consonant-matra ligatures (JH)

% define macros for variants of the vowel signs.

def lowmatras =
 cs_u          |=: cs_u_low
, cs_uu         |=: cs_uu_low
, cs_ri         |=: cs_ri_low
, cs_ra         |=: cs_ra_low
, c_halant      |=: c_halant_low
enddef;

def verylowmatras =
 cs_u          |=: cs_u_verylow
, cs_uu         |=: cs_uu_verylow
, cs_ri         |=: cs_ri_verylow
, cs_ra         |=: cs_ra_low
, c_halant      |=: c_halant_low
enddef;

def centermatras =
 cs_u          |=: cs_u_center
, cs_uu         |=: cs_uu_center
, cs_ri         |=: cs_ri_center
enddef;

% kern values:

k#   := 1uw#;
kk#  := 2uw#;
kkk# := 3uw#;

% consonant-matra ligatures
% note that the ligatures for the aa vowel sign will also be used for the
% oo vowel sign. When noligs is true, no consonant-matra ligatures will
% be use, however, the lowered variants of some matras will still be
% needed.

if ligs:

ligtable c_ka   : cs_aa =: c_kaa
               , cs_i =: c_ki
               , cs_u =: c_ku
               , cs_uu =: c_kuu;
ligtable c_jha  : lowmatras;
ligtable c_ta   : cs_aa =: c_taa
               , cs_i =: c_ti
               , cs_u =: c_tu
               , cs_uu =: c_tuu;
ligtable c_tha  : cs_i |=: cs_i_var;
ligtable c_da   : cs_i =: c_di;
ligtable c_dha  : cs_i |=: cs_i_var;
ligtable c_na   : cs_aa =: c_naa
               , cs_i =: c_ni
               , cs_u |=: cs_u_var;
ligtable c_yya  : lowmatras;
ligtable c_la   : cs_aa =: c_laa
               , cs_u |=: cs_u_var
               , c_halant |=: c_halant_low;
ligtable c_ha   : cs_i =: c_hi
               , cs_u =: c_hu
               , cs_uu |=: cs_uu_low
               , cs_ri |=: cs_ri_low
               , cs_ra |=: cs_ra_low;
ligtable c_lla  : cs_aa =: c_llaa
               , cs_i =: c_lli
               , cs_u |=: cs_u_var;

% conjunct-matra combinations:

ligtable c_ng_ka    : cs_u |=: cs_u_var;
ligtable c_ny_ca    : cs_i |=: cs_i_var;
ligtable c_ny_jha   : cs_i |=: cs_i_var;
ligtable c_n_ta_var : cs_i =: c_n_ti_var
                   , cs_u |=: cs_u_low
                   , cs_uu |=: cs_uu_low
                   , cs_ri |=: cs_ri_low
                   , cs_ra |=: cs_ra_low
                   , c_halant |=: c_halant_low;

else:

ligtable c_yya  : lowmatras;
ligtable c_la   : lowmatras;
ligtable c_ha   : lowmatras;

ligtable c_n_ta_var : lowmatras;

fi;

ligtable c_k_ka         : verylowmatras;
ligtable c_k_tta        : verylowmatras;
ligtable c_k_ta         : lowmatras;
ligtable c_k_sa         : lowmatras;
ligtable c_k_ss_nna     : verylowmatras;
ligtable c_g_ga         : verylowmatras;
ligtable c_g_dha        : verylowmatras;
ligtable c_nga          : centermatras;
ligtable c_ca           : if ligs:
                           cs_aa =: c_caa
                       , fi centermatras;
ligtable c_cha          : centermatras;
ligtable c_j_ja         : verylowmatras;
ligtable c_j_jha                : verylowmatras;
ligtable c_tta          : centermatras
                       , c_ttha kern-kk#;
ligtable c_ttha         : centermatras;
ligtable c_dda          : if ligs:
                           cs_i =: c_ddi
                       , fi centermatras;
ligtable c_dd_ga        : lowmatras;
ligtable c_rr_ga        : lowmatras;
ligtable c_dd_dda       : lowmatras;
ligtable c_ddha         : if ligs:
                           cs_i =: c_ddhi
                       , fi centermatras;
ligtable c_nn_tta       : verylowmatras;
ligtable c_nn_ttha      : verylowmatras;
ligtable c_nn_dda       : lowmatras;
ligtable c_nn_ddha      : lowmatras;
ligtable c_nn_nna       : verylowmatras;
ligtable c_t_na         : lowmatras;
ligtable c_t_pa         : lowmatras;
ligtable c_t_ma         : lowmatras;
ligtable c_d_ga         : lowmatras;
ligtable c_n_ta         : lowmatras;
ligtable c_n_t_ra       : verylowmatras;
ligtable c_p_ta         : lowmatras;
ligtable c_p_sa         : verylowmatras;
ligtable c_b_dha        : verylowmatras;
ligtable c_m_ma         : lowmatras;
ligtable c_ra           : if ligs:
                           cs_aa =: c_raa
                       , fi centermatras;
ligtable c_l_ka         : verylowmatras;
ligtable c_l_pa         : verylowmatras;
ligtable c_l_pha        : verylowmatras;
ligtable c_l_la         : verylowmatras;
ligtable c_sh_ca        : verylowmatras;
ligtable c_ss_ka        : verylowmatras;
ligtable c_ss_tta       : verylowmatras;
ligtable c_ss_ttha      : verylowmatras;
ligtable c_ss_pa        : verylowmatras;
ligtable c_ss_pha       : verylowmatras;
ligtable c_s_ka         : verylowmatras;
ligtable c_s_ta         : cs_u           =: c_s_tu
                       , cs_uu         |=: cs_uu_low
                       , cs_ri         |=: cs_ri_low
                       , cs_ra         |=: cs_ra_low
                       , c_halant      |=: c_halant_low;
ligtable c_s_kha        : verylowmatras;
ligtable c_s_t_ra       : verylowmatras;
ligtable c_s_pa         : verylowmatras;
ligtable c_s_pha        : verylowmatras;
ligtable c_h_ba         : lowmatras;
ligtable c_h_ma         : verylowmatras;

ligtable c_dotted_circle: lowmatras;

% low matras after secondary consonants

ligtable cs_tha         : lowmatras;
ligtable cs_na          : verylowmatras;
ligtable cs_bha         : cs_u          =: cs_bhu
                       , cs_uu         |=: cs_uu_verylow
                       , cs_ri         |=: cs_ri_verylow
                       , cs_ra         |=: cs_ra_low
                       , c_halant      |=: c_halant_low;
ligtable cs_ma          : verylowmatras;
ligtable cs_ra          : lowmatras;
ligtable cs_ra_low      : verylowmatras;
ligtable cs_la          : verylowmatras;
ligtable cs_lla         : verylowmatras;
ligtable cs_va          : cs_u          =: cs_vu
                       , cs_uu         |=: cs_uu_verylow
                       , cs_ri         |=: cs_ri_verylow
                       , cs_ra         |=: cs_ra_low
                       , c_halant      |=: c_halant_low;

% matra-reph-candrabindu combinations:

ligtable cs_i                   : c_reph =: cs_i_reph
                               , c_candrabindu =: cs_i_candrabindu;
ligtable cs_i_reph              : c_candrabindu =: cs_i_reph_candrabindu;
ligtable cs_i_candrabindu       : c_reph =: cs_i_reph_candrabindu;
ligtable cs_ai                  : c_reph =: cs_ai_reph
                               , c_candrabindu =: cs_ai_candrabindu;
ligtable cs_ai_reph             : c_candrabindu =: cs_ai_reph_candrabindu;
ligtable cs_ai_candrabindu      : c_reph =: cs_ai_reph_candrabindu;
ligtable cs_au                  : c_candrabindu =: cs_au_candrabindu
                               , c_reph =: cs_au_reph;
ligtable cs_au_reph             : c_candrabindu =: cs_au_reph_candrabindu;
ligtable cs_au_candrabindu      : c_reph =: cs_au_reph_candrabindu;

% numerals:

ligtable c_one          : c_one kern-k#
                       , c_four kern-k#
                       , c_five kern-k#;
ligtable c_four         : c_two kern-kk#;
ligtable c_eight        : c_two kern-kkk#
                       , c_nine kern-kk#;

% punctuation:

ligtable c_danda        : c_danda |=: cs_aa;
ligtable c_openquote    : c_openquote kern-kk#;
ligtable c_closequote   : c_closequote kern-kk#;

ligtable c_dash         : c_dash =: c_endash;
ligtable c_endash       : c_dash =: c_emdash;

% end of orkern.mf