% Version 4.3. 7 July, 1998. Response to a bug report. The wrong % angle was in the line for ligtable angleright: ">" =: guillemotright; % All tfm files corrected to reflect this change. % Version 4.2. 18 July, 1997. Small adjustments to the space between % accent clusters and Uppercase H and I. A little more space after % accented iota and before taller consonants. % Version 4.1. 28 April, 1996. Sevaral kerns for iota changed % before p t and u to avoid crowding. Medial sigma is default % before <> [] and other non standard symbols. (Final % at word end, sentence punctuation, and parentheses). % % Ligature table for ibycus4 Version 4.0 using the \bang % character as the postpositive indication of a dot under % any letter or letter-and-accent combination except for % iota subscript composites. % CAUTION: With this arrangement the exclamation point must % set with \sfcode`\!=1000 or you get very odd spacing. % This setting is supplied in ibycus4.tex ligtable "-": "-" =: endash; % en-dash ligtable endash: "-" =: emdash; % em-dash ligtable quotesnglleft: quotesnglleft =: quotedblleft; ligtable quotesnglright: quotesnglright =: quotedblright; % The Adobe names guillemotleft and guillemotright (\it sic}) % are retained. ligtable angleleft: "<" =: guillemotleft; ligtable angleright: ">" =: guillemotright; k#:=-.5u#; kk#:=-1.5u#; kkk#:=-2u#; % three degrees of back kerning i#:=.5u#; ii#:=1.5u#; iii#:=2u#; % three degrees of forward kerning % % the glyphs for the breathings (spiritus) and the acute and % grave accents are not in the same code location as the digraph % input characters "'" "`" "=" ")" "(", and "`" "'" are pretty % well available for normal use when not immediately contiguous to % accentable characters. This is achieved by a change from % Silvio Levy's mapping to modified TLG Betacode. % ligtable "(": "(" =: ASCII"(", peri_spomenon =: asper_peri, quotesnglright =: asper_oxy, quotesnglleft =: 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 ")": ")" =: ASCII")", peri_spomenon =: lenis_peri, quotesnglright =: lenis_oxy, quotesnglleft =: 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; % ligtable asper_glyph: "A" kern -7u#, "E" kern -3u#, "H" kern -3u#, "R" kern -3u#, "O" kern -3.5u#, "W" kern -2.5u#, "I" kern -3u#, "U" kern -3u#; ligtable lenis_glyph: "A" kern -6u#, "E" kern kkk#, "H" kern kkk#, "R" kern kkk#, "O" kern -2.5u#, "W" kern kkk#, "I" kern kkk#, "U" kern kkk#; ligtable asper_oxy: lenis_oxy: "A" kern -6u#, "E" kern -1u#, "H" kern -1u#, "O" kern -2.5u#, "W" kern kk#, "I" kern -1u#, "U" kern kk#; ligtable asper_bary: lenis_bary: "A" kern -5u#, "E" kern kk#, "H" kern kk#, "O" kern kkk#, "W" kern -1u#, "I" kern kkk#, "U" kern -1u#; ligtable asper_peri: "A" kern -6.5u#, "E" kern kkk#, "H" kern kkk#, "I" kern kkk#, "O" kern -3u#, "W" kern -3u#, "U" kern kkk#; ligtable lenis_peri: "A" kern -6.5u#, "E" kern kkk#, "H" kern kkk#, "I" kern kkk#, "O" kern -3u#, "W" kern -2.5u#, "U" kern kkk#; ligtable "a": quotesnglleft =: a_bary, quotesnglright =: a_oxy, peri_spomenon =: a_peri, iotasubscript |=: a_isub, dubious |=: dotCEVaw, "(" =: a_aspr, ")" =: a_len, "i" kern i#; % Post-positive breathings ligtable "h": "+" =: aspirate, quotesnglleft =: h_bary, quotesnglright =: h_oxy, peri_spomenon =: h_peri, iotasubscript |=: h_isub, dubious |=: dotchjz, "(" =: 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": quotesnglleft =: w_bary, quotesnglright =: w_oxy, peri_spomenon =: w_peri, iotasubscript |=: w_isub, dubious |=: dotCEVaw, "(" =: w_aspr, ")" =: w_len, "i" kern i#, "n" kern k#; ligtable "e": quotesnglleft =: e_bary, quotesnglright =: e_oxy, peri_spomenon =: e_peri, "(" =: e_aspr, ")" =: e_len, dubious |=: dote, "i" kern i#; ligtable "o": quotesnglleft =: o_bary, quotesnglright =: o_oxy, peri_spomenon =: o_peri, "(" =: o_aspr, ")" =: o_len, dubious |=: dotkos, "n" kern k#, "h" kern k#, "l" kern k#; ligtable "i": quotesnglleft =: i_bary, quotesnglright =: i_oxy, peri_spomenon =: i_peri, dubious |=: doti, "(" =: i_aspr, ")" =: i_len, dieresis =: i_diaer, "c" kern k#, "d" kern k#, "f" kern k#, "g" kern -1u#, "h" kern k#, "k" kern k#, "l" kern k#, "n" kern kk#, "o" kern k#, "p" kern k#, "q" kern k#, "s" kern k#, "t" kern -1u#, "u" kern -1u#, "w" kern k#, "x" kern k#, "y" kern k#; ligtable "u": quotesnglleft =: u_bary, quotesnglright =: u_oxy, peri_spomenon =: u_peri, dubious |=: dotJdlmnpqu, "(" =: u_aspr, ")" =: u_len, dieresis =: u_diaer, "i" kern i#; ligtable "r": "(" =: r_aspr, ")" =: r_len, r_aspr: r_len: dubious |=: dotr, "i" kern i#; ligtable a_aspr: quotesnglright =: a_asproxy, quotesnglleft =: a_asprbary, peri_spomenon =: a_asprperi, iotasubscript |=: a_isub, dubious |=: dotCEVaw, "i" kern i#; ligtable h_aspr: quotesnglright =: h_asproxy, quotesnglleft =: h_asprbary, peri_spomenon =: h_asprperi, iotasubscript |=: h_isub, dubious |=: dotchjz, "i" kern ii#; ligtable w_aspr: quotesnglright =: w_asproxy, quotesnglleft =: w_asprbary, peri_spomenon =: w_asprperi, iotasubscript |=: w_isub, dubious |=: dotCEVaw, "n" kern k#; ligtable e_aspr: quotesnglright =: e_asproxy, quotesnglleft =: e_asprbary, peri_spomenon =: e_asprperi, dubious |=: dote; ligtable o_aspr: quotesnglright =: o_asproxy, quotesnglleft =: o_asprbary, peri_spomenon =: o_asprperi, dubious |=: dotkos, "n" kern k#, "h" kern k#; ligtable i_aspr: quotesnglright =: i_asproxy, quotesnglleft =: i_asprbary, peri_spomenon =: i_asprperi, dubious |=: doti, "c" kern k#, "d" kern k#, "f" kern k#, "g" kern -1u#, "h" kern k#, "k" kern k#, "l" kern k#, "n" kern kk#, "o" kern k#, "p" kern k#, "q" kern k#, "s" kern k#, "t" kern -1u#, "u" kern -1u#, "w" kern k#, "x" kern k#, "y" kern k#; ligtable u_aspr: quotesnglright =: u_asproxy, quotesnglleft =: u_asprbary, peri_spomenon =: u_asprperi, dubious |=: dotJdlmnpqu; ligtable a_len: quotesnglright =: a_lenoxy, quotesnglleft =: a_lenbary, dubious |=: dotCEVaw, peri_spomenon =: a_lenperi, iotasubscript |=: a_isub; ligtable h_len: quotesnglright =: h_lenoxy, quotesnglleft =: h_lenbary, dubious |=: dotchjz, peri_spomenon =: h_lenperi, iotasubscript |=: h_isub, "i" kern ii#; ligtable w_len: quotesnglright =: w_lenoxy, quotesnglleft =: w_lenbary, dubious |=: dotCEVaw, peri_spomenon =: w_lenperi, iotasubscript |=: w_isub, "n" kern k#; ligtable e_len: quotesnglright =: e_lenoxy, quotesnglleft =: e_lenbary, peri_spomenon =: e_lenperi, dubious |=: dote; ligtable o_len: quotesnglright =: o_lenoxy, quotesnglleft =: o_lenbary, peri_spomenon =: o_lenperi, dubious |=: dotkos, "n" kern k#, "h" kern k#; ligtable i_len: quotesnglright =: i_lenoxy, quotesnglleft =: i_lenbary, peri_spomenon =: i_lenperi, dubious |=: doti, "c" kern k#, "d" kern k#, "f" kern k#, "g" kern -1u#, "h" kern k#, "k" kern k#, "l" kern k#, "n" kern kk#, "o" kern k#, "p" kern k#, "q" kern k#, "s" kern k#, "t" kern -1u#, "u" kern -1u#, "w" kern k#, "x" kern k#, "y" kern k#; ligtable u_len: quotesnglright =: u_lenoxy, quotesnglleft =: u_lenbary, peri_spomenon =: u_lenperi, dubious |=: dotJdlmnpqu; ligtable "K": "+" =: Koppa, dubious |=: dotDK; % Uppercase Koppa ligtable Koppa: dubious |=: dotGZ; % The curve of o and the hook at the top of h make kerns with % m desirable ligtable "m": dubious |=: dotJdlmnpqu, "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#; % backward kerns for letters following accented iota ligtable dieresis: quotesnglright =: diaeroxy, quotesnglleft =: diaerbary; ligtable i_diaer: quotesnglright =: i_diaeroxy, quotesnglleft =: i_diaerbary; ligtable i_bary: dieresis=: i_diaerbary, i_oxy: dieresis=:i_diaeroxy, dubious |=: doti, "c" kern k#, "d" kern k#, "f" kern k#, "g" kern -1u#, "h" kern k#, "k" kern k#, "l" kern k#, "n" kern kk#, "o" kern k#, "p" kern k#, "q" kern k#, "s" kern k#, "t" kern -1u#, "u" kern -1u#, "w" kern k#, "x" kern k#, "y" kern k#; % The widely spaced accent clusters on iota need more space before many % consonants. Particularly lambda and ksi. ligtable i_peri: i_asproxy: i_asprbary: i_asprperi: i_lenoxy: i_lenbary: i_lenperi: i_diaerbary: i_diaeroxy: dubious |=: doti, "d" kern k#, "f" kern k#, "g" kern -1u#, "h" kern k#, "n" kern kk#, "o" kern k#, "p" kern k#, "q" kern k#, "s" kern k#, "t" kern k#, "u" kern -1u#, "w" kern k#, "x" 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, dubious |=: dotkos, "i" kern i#; ligtable "A": dubious |=: dotAOQUXY, "E": dubious |=: dotCEVaw, "W": dubious |=: dotBFLNPRSTW, "i" kern i#; ligtable "n": "p": "q": dubious |=: dotJdlmnpqu, "t": dubious |=: dotbt, "f": "y": dubious |=: dotfy, h_isub: "i" kern i#; ligtable "d": dubious |=: dotJdlmnpqu, "i" kern i#, "h" kern k#; ligtable "b": dubious |=: dotbt, "i" kern ii#; ligtable dotbt: "i" kern i#; % forward kerns for accented upsilon and epsilon ligtable o_oxy: o_bary: "h" kern k#, "l" kern k#, "n" kern k#, o_asproxy: o_lenoxy: o_asprbary: o_lenbary: o_asprperi: o_lenperi: dubious |=: dotkos; ligtable u_diaer: quotesnglright =: u_diaeroxy, quotesnglleft =: u_diaerbary; ligtable u_bary: dieresis =: u_diaerbary; ligtable u_oxy: dieresis =: u_diaeroxy, u_asprbary: u_asproxy: u_lenoxy: u_lenbary: u_peri: u_asprperi: u_lenperi: u_diaeroxy: u_diaerbary: dubious |=: dotJdlmnpqu, e_oxy: e_asproxy: e_lenoxy: e_bary: e_lenbary: e_asprbary: e_peri: e_asprperi: e_lenperi: dubious |=: dote, "i" kern i#; % iota subscripts and forward kerns for alpha, eta and omega ligtable a_bary: iotasubscript |=: a_isub, dubious |=: dotCEVaw, "i" kern i#; % iota after simple barytone unused nught be iota adscript. ligtable a_oxy: a_asproxy: a_lenoxy: a_asprbary: a_peri: a_asprperi: a_lenperi: a_lenbary: iotasubscript |=: a_isub, dubious |=: dotCEVaw, "i" kern i#; ligtable h_bary: h_asprbary: h_oxy: h_asproxy: h_lenoxy: h_lenbary: h_peri: h_asprperi: h_lenperi: iotasubscript |=: h_isub, dubious |=: dotchjz, "i" kern i#; ligtable w_bary: w_asprbary: w_oxy: w_asproxy: w_lenoxy: w_lenbary: w_peri: w_asprperi: w_lenperi: iotasubscript |=: w_isub, dubious |=: dotCEVaw, "i" kern i#, "n" kern k#; ligtable "C": "+" =: Cigmalunate, Cigmalunate: dubious |=: dotCEVaw; ligtable "c": "+" =: cigmalunate, cigmalunate: "z": dubious |=: dotchjz; ligtable sigmafinal: dubious |=: dotchjz; % One ligature for (lowercase only) sampi, one kern with lowercase iota % and all practicable arrangements for final sigma. % It is assumed that sigma before a punctuation mark such as . , ; ? % and probably ) should be final but before > ] } it is more likely % to be medial. The treatment of ( matches ) and of { [ < matches % > ] } (anything elxe would be more confusing. % Final sigma can always be forced by using the letter "j" % The last ligature s| is the way to force medial sigma at word end. % Note the trick at the end which allows a dot under a forced medial % sigma. ligtable "s": "+" =: sampi, "i" kern i#, boundarychar =: sigmafinal, "." =:| sigmafinal, "," =:| sigmafinal, "?" =:| sigmafinal, ":" =:| sigmafinal, ";" =:| sigmafinal, "(" =:| sigmafinal, ")" =:| sigmafinal, "|" |=: null_space, null_space: dubious |=: dotkos; ligtable "l": dubious |=: dotJdlmnpqu; ligtable "g": "x": dubious |=: dotgx; ligtable "v": dubious |=: doti; ligtable koppa: dubious |=: dotkoppa; ligtable "I": dubious |=: dotI; ligtable "G": "Z": dubious |=: dotGZ; ligtable "V": dubious |=: dotCEVaw; ligtable "B": "F": "L": "N": "P": "R": "S": "T": dubious |=: dotBFLNPRSTW; ligtable "H": dubious |=: dotH; ligtable "O": "Q": "U": "X": "Y": dubious |=: dotAOQUXY; ligtable "D": dubious |=: dotDK; ligtable "M": dubious |=: dotM;