% File: MF Inputs ibylig.mf % Author: Pierre A. MacKay % Internet: mackay@cs.washington.edu % Date: Friday, 06 May 1994 % Copyright 1994 by Pierre A. MacKay % The contents of this file are licensed free for % use and redistribution under the terms of the % GNU General Public License. For the terms of % this license see any publication of the Free % Software Foundation or any software packages % distributed by the Free Software Foundation. % ligtable "-": "-" =: en_dash; % en-dash ligtable en_dash: "-" =: em_dash; % em-dash k#:=-.5u#; kk#:=-1.5u#; kkk#:=-2u#; % three degrees of back kerning i#:=.5u#; ii#:=1.5u#; iii#:=2u#; % three degrees of forward kerning ligtable sp_asper: "(" =: ASCII"(", peri_spomenon =: asper_peri, oxy_tone =: asper_oxy, bary_tone =: asper_bary, "A" =:| asper_glyph, "E" =:| asper_glyph, "H" =:| asper_glyph, "O" =:| asper_glyph, "W" =:| asper_glyph, "I" =:| asper_glyph, "U" =:| asper_glyph, "R" =:| asper_glyph; ligtable sp_lenis: ")" =: ASCII")", peri_spomenon =: lenis_peri, oxy_tone =: lenis_oxy, bary_tone =: lenis_bary, "A" =:| lenis_glyph, "E" =:| lenis_glyph, "H" =:| lenis_glyph, "O" =:| lenis_glyph, "W" =:| lenis_glyph, "I" =:| lenis_glyph, "U" =:| lenis_glyph, "R" =:| lenis_glyph; % % the glyphs for the breathings (spiritus) are not in the same code % location as the digraph input characters, owing to the change from % Silvio Levy's mapping to modified TLG Betacode. % ligtable asper_glyph: "<" =: guillemotleft, "A" kern -2.5u#, "E" kern kk#, "H" kern kk#, "R" kern kk#, "O" kern kk#, "W" kern kk#, "I" kern kk#, "U" kern kk#; ligtable lenis_glyph: ">" =: guillemotright, "A" kern kkk#, "E" kern k#, "H" kern k#, "R" kern k#, "O" kern k#, "W" kern k#, "I" kern k#, "U" kern k#; ligtable asper_oxy: lenis_oxy: "A" kern kkk#, "E" kern k#, "H" kern k#, "R" kern k#, "O" kern k#, "W" kern k#, "I" kern k#, "U" kern k#; ligtable asper_bary: lenis_bary: "A" kern kkk#, "E" kern k#, "H" kern k#, "R" kern k#, "O" kern k#, "W" kern k#, "I" kern k#, "U" kern k#; ligtable "a": bary_tone =: a_bary, oxy_tone =: a_oxy, peri_spomenon =: a_peri, iotasub =: a_isub, "(" =: a_aspr, ")" =: a_len, "i" kern i#; % Post-positive breathings ligtable "h": bary_tone =: h_bary, oxy_tone =: h_oxy, peri_spomenon =: h_peri, iotasub =: h_isub, "(" =: h_aspr, ")" =: h_len, "i" kern ii#, i_bary kern ii#, i_oxy kern ii#, i_peri kern ii#, i_asproxy kern ii#, i_asprbary kern ii#, i_asprperi kern ii#, i_lenoxy kern ii#, i_lenbary kern ii#, i_lenperi kern ii#; ligtable "w": bary_tone =: w_bary, oxy_tone =: w_oxy, peri_spomenon =: w_peri, iotasub =: w_isub, "(" =: w_aspr, ")" =: w_len, "i" kern i#, "n" kern k#; ligtable "e": bary_tone =: e_bary, oxy_tone =: e_oxy, "(" =: e_aspr, ")" =: e_len, "i" kern i#; ligtable "o": bary_tone =: o_bary, oxy_tone =: o_oxy, "(" =: o_aspr, ")" =: o_len, "n" kern k#, "h" kern k#, "l" kern k#; ligtable "i": bary_tone =: i_bary, oxy_tone =: i_oxy, peri_spomenon =: i_peri, "(" =: i_aspr, ")" =: i_len, diaer =: i_diaer, "c" kern k#, "d" kern k#, "f" kern k#, "g" kern kk#, "h" kern kk#, "k" kern k#, "l" kern k#, "n" kern kk#, "o" kern k#, "p" kern kk#, "q" kern k#, "s" kern k#, "t" kern kk#, "u" kern kk#, "w" kern k#, "x" kern k#, "y" kern k#; ligtable "u": bary_tone =: u_bary, oxy_tone =: u_oxy, peri_spomenon =: u_peri, "(" =: u_aspr, ")" =: u_len, diaer =: u_diaer, "i" kern i#; ligtable "r": "(" =: r_aspr, ")" =: r_len, "i" kern i#; ligtable a_aspr: oxy_tone =: a_asproxy, bary_tone =: a_asprbary, peri_spomenon =: a_asprperi, iotasub =: a_asprisub, "i" kern i#; ligtable h_aspr: oxy_tone =: h_asproxy, bary_tone =: h_asprbary, peri_spomenon =: h_asprperi, iotasub =: h_asprisub, "i" kern ii#; ligtable w_aspr: oxy_tone =: w_asproxy, bary_tone =: w_asprbary, peri_spomenon =: w_asprperi, iotasub =: w_asprisub, "n" kern k#; ligtable e_aspr: oxy_tone =: e_asproxy, bary_tone =: e_lenbary; ligtable o_aspr: oxy_tone =: o_asproxy, bary_tone =: o_asprbary, "n" kern k#, "h" kern k#; ligtable i_aspr: oxy_tone =: i_asproxy, bary_tone =: i_asprbary, peri_spomenon =: i_asprperi; ligtable u_aspr: oxy_tone =: u_asproxy, bary_tone =: u_asprbary, peri_spomenon =: u_asprperi; ligtable r_aspr: "i" kern i#; ligtable a_len: oxy_tone =: a_lenoxy, bary_tone =: a_lenbary, peri_spomenon =: a_lenperi, iotasub =: a_lenisub; ligtable h_len: oxy_tone =: h_lenoxy, bary_tone =: h_lenbary, peri_spomenon =: h_lenperi, iotasub =: h_lenisub, "i" kern ii#; ligtable w_len: oxy_tone =: w_lenoxy, bary_tone =: w_lenbary, peri_spomenon =: w_lenperi, iotasub =: w_lenisub, "n" kern k#; ligtable e_len: oxy_tone =: e_lenoxy, bary_tone =: e_asprbary; ligtable o_len: oxy_tone =: o_lenoxy, bary_tone =: o_lenbary, "n" kern k#, "h" kern k#; ligtable i_len: oxy_tone =: i_lenoxy, bary_tone =: i_lenbary, peri_spomenon =: i_lenperi; ligtable u_len: oxy_tone =: u_lenoxy, bary_tone =: u_lenbary, peri_spomenon =: u_lenperi; ligtable r_len: "i" kern i#; ligtable "K": "+" =: Koppa; % Uppercase Koppa % The curve of o and the hook at the top of h make kerns with % m desirable ligtable "m": "o" kern k#, o_oxy kern k#, o_bary kern k#, "h" kern k#, h_oxy kern k#, h_bary kern k#, h_peri kern k#, h_isub kern k#, h_oxyisub kern k#, h_baryisub kern k#, h_periisub kern k#; % backward kerns for letters following accented iota ligtable i_bary: diaer=: i_barydiaer, i_oxy: diaer=:i_oxydiaer, i_peri: i_asproxy: i_asprbary: i_asprperi: i_lenoxy: i_lenbary: i_lenperi: "c" kern k#, "d" kern k#, "f" kern k#, "g" kern kk#, "h" kern kk#, "k" kern k#, "l" kern k#, "n" kern kk#, "o" kern k#, "p" kern kk#, "q" kern k#, "s" kern k#, "t" kern kk#, "u" kern kk#, "w" kern k#, "x" kern k#, "y" kern k#; % all needed forward kerns except for vowels, rho and sigma % also a back kern for dh, but only when h is unaccented. ligtable "k": "+" =: koppa, "i" kern i#; % lowercase koppa (also kern) ligtable "A": "E": "W": "f": "n": "p": "q": "t": "y": h_asprisub: h_lenisub: "i" kern i#; ligtable "d": "i" kern i#, "h" kern k#, h_isub kern k#; ligtable "b": "i" kern ii#; % forward kerns for accented upsilon and epsilon ligtable o_oxy: o_bary: "h" kern k#, "l" kern k#, "n" kern k#; ligtable u_oxy: diaer =: u_oxydiaer, u_asprbary: u_asproxy: u_lenoxy: u_lenbary: u_peri: u_asprperi: u_lenperi: e_bary: e_lenbary: e_oxy: e_asproxy: e_lenoxy: e_asprbary: "i" kern i#; % iota subscripts and forward kerns for alpha, eta and omega ligtable a_bary: iotasub =: a_baryisub; % iota after simple barytone not used % so no kern needed. ligtable a_oxy: iotasub =: a_oxyisub, "i" kern i#; ligtable a_asproxy: iotasub =: a_asproxyisub, "i" kern i#; ligtable a_lenoxy: iotasub =: a_lenoxyisub, "i" kern i#; ligtable a_asprbary: iotasub =: a_asprbaryisub, "i" kern i#; ligtable a_peri: iotasub =: a_periisub, "i" kern i#; ligtable a_asprperi: iotasub =: a_asprperiisub, "i" kern i#; ligtable a_lenperi: iotasub =: a_lenperiisub, "i" kern i#; ligtable a_lenbary: iotasub =: a_lenbaryisub, "i" kern i#; ligtable h_bary: iotasub =: h_baryisub; ligtable h_asprbary: iotasub =: h_asprbaryisub, "i" kern i#; ligtable h_oxy: iotasub =: h_oxyisub, "i" kern i#; ligtable h_asproxy: iotasub =: h_asproxyisub, "i" kern i#; ligtable h_lenoxy: iotasub =: h_lenoxyisub, "i" kern i#; ligtable h_lenbary: iotasub =: h_lenbaryisub, "i" kern i#; ligtable h_peri: iotasub =: h_periisub, "i" kern i#; ligtable h_asprperi: iotasub =: h_asprperiisub, "i" kern i#; ligtable h_lenperi: iotasub =: h_lenperiisub, "i" kern i#; ligtable w_bary: iotasub =: w_baryisub, "n" kern k#; ligtable w_asprbary: iotasub =: w_asprbaryisub, "n" kern k#; ligtable w_oxy: iotasub =: w_oxyisub, "i" kern i#, "n" kern k#; ligtable w_asproxy: iotasub =: w_asproxyisub, "i" kern i#, "n" kern k#; ligtable w_lenoxy: iotasub =: w_lenoxyisub, "i" kern i#, "n" kern k#; ligtable w_lenbary: iotasub =: w_lenbaryisub, "n" kern k#; ligtable w_peri: iotasub =: w_periisub, "i" kern i#, "n" kern k#; ligtable w_asprperi: iotasub =: w_asprperiisub, "i" kern i#, "n" kern k#; ligtable w_lenperi: iotasub =: w_lenperiisub, "i" kern i#, "n" kern k#; ligtable diaer: oxy_tone =: diaeroxy, bary_tone =: diaerbary; ligtable i_diaer: oxy_tone =: i_oxydiaer, bary_tone =: i_barydiaer; ligtable u_bary: diaer =: u_oxydiaer; ligtable u_diaer: oxy_tone =: u_oxydiaer, bary_tone =: u_barydiaer; ligtable asper_peri: "A" kern kkk#; % asper_peri + A % % `` and '' can be used for ` and ' % ligtable bary_tone: diaer =: diaerbary, bary_tone =: quoteleft, "A" kern kkk#; ligtable oxy_tone: diaer =: diaeroxy, oxy_tone =: quoteright; ligtable "C": "+" =: lunate_Cigma; ligtable "c": "+" =: lunate_cigma; % One ligature for (lowercase only) sampi, one kern with lowercase iota % and all practicable arrangements for final sigma. % THe last ligature s| is the way to force medial sigma at word end. % Note that final sigma can be forced by using the letter "j" ligtable "s": "+" =: sampi, "i" kern i#, boundarychar =: final_sigma, "." =:| final_sigma, "," =:| final_sigma, "?" =:| final_sigma, ":" =:| final_sigma, ";" =:| final_sigma, "(" =:| final_sigma, ")" =:| final_sigma, "*" =:| final_sigma, "!" =:| final_sigma, "%" =:| final_sigma, "<" =:| final_sigma, ">" =:| final_sigma, "[" =:| final_sigma, "]" =:| final_sigma, "{" =:| final_sigma, "}" =:| final_sigma, "|" |=: null_space;