%(c) 1992 by Jo Grant
% Modifacations for Saxon Runes, 14.04.92 Jobst-Hartmut Lueddecke
% Ligature AA, 16.04.92, Jobst-Hartmut Lueddecke
% ===============================================================
%
mode_def testing=
         pixels_per_inch:=300*4;
         blacker:=.1;
         o_correction:=1;
         fillin:=.01;
         proofing:=2;
         fontmaking:=0;
         tracingtitles:=1;
enddef;
if unknown mode:
mode:=testing; fi
mode_setup;
turningcheck := 0;
 
if mode=testing: screenstrokes; fi
 
% parameters that control what a wedge looks like.
u#      = 1/384in#;
pw#    := 4u#;
runew# := 4pw#;
runeh# := 12pw#;
letter_fit# := 1.2pw#;
 
pen_thick# := .5pw#;
 
define_pixels(pw, runew, runeh, pen_thick, letter_fit)
 
def penoct = makepen((.866,.5)--(.5,.866)--(-.5,.866)--(-.866,.5)
    --(-.866,-.5)--(-.5,-.866)--(.5,-.866)--(.866,-.5)--cycle)
enddef;
 
def runepen = pickup penoct scaled pen_thick rotated 45; enddef;
 
def adjust_fit(expr left_adj, right_adj) =
    l := -hround(left_adj*hppp)-letter_fit;
    interim xoffset := -l;
    charwd := charwd+2letter_fit# + left_adj + right_adj;
    r := l+hround(charwd*hppp);
    w := r-hround(right_adj*hppp) - letter_fit;
enddef;
 
extra_beginchar := extra_beginchar & "runepen;adjust_fit(0,0);";
 
def makebox(text r) =
    r((-letter_fit,0), (w+letter_fit,0));
    r((-letter_fit,h), (w+letter_fit,h));
    r((-letter_fit,0), (-letter_fit,h));
    r((w+letter_fit,0), (w+letter_fit,h));
    r((0,0), (0,h));
    r((w,0), (w,h));
    if charic<>0:
       r((w+charic*hppp,h.o_),(w+charic*hppp,.5h.o_));
    fi
enddef;
 
input srunes;
 
% the ligatures
ligtable "E": "A" =: hex"0A",
              "E" =: hex"01",
              "O" =: hex"08",
              "a" =: hex"0A",
              "e" =: hex"01",
              "o" =: hex"08";
ligtable "e": "a" =: hex"0A",
              "e" =: hex"01",
              "o" =: hex"08";
ligtable "T": "H" =: hex"02",
              "h" =: hex"02";
ligtable "t": "h" =: hex"02";
ligtable "N": "G" =: hex"03",
              "g" =: hex"03";
ligtable "n": "g" =: hex"03";
ligtable "C": "K" =: hex"04";
ligtable "c": "k" =: hex"04";
ligtable "S": "T" =: hex"05",
              "t" =: hex"05";
ligtable "s": "t" =: hex"05";
ligtable "G": "G" =: hex"06";
ligtable "g": "g" =: hex"06";
ligtable "I": "O" =: hex"07",
              "o" =: hex"07";
ligtable "i": "o" =: hex"07";
ligtable "A": "E" =: hex"09",
              "e" =: hex"09",
              "A" =: hex"0B",
              "a" =: hex"0B";
ligtable "a": "e" =: hex"09",
              "a" =: hex"0B";
 
font_normal_space 2runew#;
font_normal_stretch 2runew#/3;
font_normal_shrink 4runew#/3;
 
end;
