% 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