summaryrefslogtreecommitdiff
path: root/fonts/elvish/cirth.mf
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /fonts/elvish/cirth.mf
Initial commit
Diffstat (limited to 'fonts/elvish/cirth.mf')
-rw-r--r--fonts/elvish/cirth.mf779
1 files changed, 779 insertions, 0 deletions
diff --git a/fonts/elvish/cirth.mf b/fonts/elvish/cirth.mf
new file mode 100644
index 0000000000..790da12fe0
--- /dev/null
+++ b/fonts/elvish/cirth.mf
@@ -0,0 +1,779 @@
+designsize:=10pt# ;
+autorounding := 1 ;
+mode_setup;
+em#:=10pt#; ; desc#:=10/3pt#; ex#:=8pt#; o#:=1/8pt#;
+% parameters
+
+font_normal_space(0.4em#) ; font_x_height(ex#) ;
+font_quad(em#) ; font_normal_stretch(0.2em#) ;
+font_normal_shrink(0.1em#) ;
+
+penangle := 30 ;
+penwidth# := 1/12em# ; penthickness# := 1/50em# ;
+define_pixels(em,desc,ex);
+define_blacker_pixels(penwidth,penthickness) ;
+tehta_penwidth# = 0.8penwidth# ;
+define_blacker_pixels(tehta_penwidth) ;
+define_corrected_pixels(o);
+straight_sidebar# = 1/12em#; curve_sidebar# = 1/18em#;
+define_whole_pixels(straight_sidebar,curve_sidebar) ;
+
+fudge := 0.05 ex ; % fudge for lowering calma luva
+u# := em#/18 ;
+define_pixels(u) ;
+tailjut# := 12u# - 10u# ;
+define_whole_pixels(tailjut) ;
+luva_width# = 0.5em# ; define_pixels(luva_width) ;
+pickup pencircle xscaled penwidth yscaled penthickness rotated penangle;
+main_nib := savepen ;
+pickup pencircle xscaled tehta_penwidth yscaled penthickness rotated penangle;
+tehta_nib := savepen ;
+
+
+
+def draw_stem(suffix i,j)(expr serifs) = % serifs = t,b,tb for Top & Bottom
+ z.i.$ = z.i + 0.05em * dir(penangle+180) ;
+ z.i.$$ = z.i + 0.1em * down ;
+ z.j.$ = z.j + 0.05em * dir(penangle) ;
+ z.j.$$ = z.j + 0.1em * up ;
+ draw z.i .. z.j ;
+ if (serifs = "t") or (serifs = "tb"):
+ filldraw z.i -- z.i.${dir(penangle-90)}
+ .. {down}z.i.$$ & z.i.$$ .. z.i & cycle ; fi
+ if (serifs = "b") or (serifs = "tb"):
+ filldraw z.j -- z.j.${dir(penangle+90)}
+ .. {up}z.j.$$ & z.j.$$ .. z.j & cycle ; fi
+ labels(i,j)
+ enddef ;
+
+def diag(suffix i,j) = % diag from i to j with serif at j
+ draw z.i -- z.j ;
+ theta :=
+ if x.j > x.i:
+ if y.j > y.i: penangle - 90 else: penangle fi
+ else:
+ if y.j > y.i: -penangle else: penangle + 90 fi fi ;
+ draw z.j -- (z.j + 0.05em*dir theta) ;
+enddef ;
+
+beginchar("p",10u#,ex#,0) ; "The rune p" ;
+ pickup main_nib ;
+ top y1 = h ; bot y2 = 0 ; lft x1 = lft x2 = straight_sidebar ;
+ draw_stem(1,2,"tb") ;
+ bot z4 = 0.4[z2,z1] ;
+ rt x3 = w - curve_sidebar ; y3 = 1/2[y4,y1] ;
+ draw z1 -- z3 -- z4 ;
+endchar ;
+
+beginchar("b",12u#,ex#,0) ; "The rune b" ;
+ pickup main_nib ;
+ top y1 = h ; bot y2 = 0 ; lft x1 = lft x2 = straight_sidebar ;
+ draw_stem(1,2,"tb") ;
+ bot z4 = 0.4[z2,z1] ;
+ rt x3 = w - curve_sidebar - tailjut ; y3 = 1/2[y4,y1] ;
+ draw z1 -- z3 -- z4 ;
+ y5 = y2 ; rt x5 = w - curve_sidebar ;
+ bot y4' = round y4 ; x4 = x4' ;
+ diag(4',5) ;
+endchar ;
+
+beginchar("f",10u#,ex#,0) ; "The rune f" ;
+ pickup main_nib ;
+ top y1 = h ; bot y2 = 0 ; rt x1 = rt x2 = w - straight_sidebar ;
+ draw_stem(1,2,"b") ;
+ bot z4 = 0.4[z2,z1] ;
+ lft x3 = curve_sidebar ; y3 = 1/2[y4,y1] ;
+ draw z1 -- z3 -- z4 ;
+endchar ;
+
+beginchar("v",12u#,ex#,0) ; "The rune v" ;
+ pickup main_nib ;
+ top y1 = h ; bot y2 = 0 ; rt x1 = rt x2 = w - straight_sidebar ;
+ draw_stem(1,2,"b") ;
+ bot z4 = 0.45[z2,z1] ;
+ lft x3 = curve_sidebar+tailjut ; y3 = 1/2[y4,y1] ;
+ draw z1 -- z3 -- z4 ;
+ y5 = y2 ; lft x5 = curve_sidebar ;
+ diag(4,5) ;
+endchar ;
+
+beginchar("W",19u#,ex#,0) ; "The rune hw" ;
+ pickup main_nib ;
+ top y1 = h ; bot y2 = 0 ; x1 = x2 = good.x 0.5w ;
+ draw_stem(1,2,"b") ;
+ bot z4 = 0.4[z2,z1] ;
+ rt x3 = w - curve_sidebar ; y3 = 1/2[y4,y1] ;
+ draw z1 -- z3 -- z4 ;
+ lft x5 = curve_sidebar ; y5 = y3 ;
+ draw z1 -- z5 -- z4 ;
+endchar ;
+
+beginchar("m",10u#,ex#,0) ; "The rune m" ;
+ pickup main_nib ;
+ top y1 = h ; bot y2 = 0 ; lft x1 = lft x2 = straight_sidebar ;
+ draw_stem(1,2,"b") ;
+ top z4 = 0.55[z2,z1] ;
+ rt x3 = w - curve_sidebar ; y3 = 1/2[y4,y1] ;
+ draw z1 -- z3 -- z4 ;
+ y5 = 1/2[y4,y2] ;
+ rt x5 = w - 1/2curve_sidebar ;
+ draw z4 -- z5 -- z2 ;
+endchar ;
+
+beginchar("M",10u#,ex#,0); "The rune mb" ;
+ pickup main_nib ;
+ top y1 = h ; bot y2 = 0 ; rt x1 = rt x2 = w- straight_sidebar ;
+ draw_stem(1,2,"b") ;
+ top z4 = 0.55[z2,z1] ;
+ lft x3 = curve_sidebar ; y3 = 1/2[y4,y1] ;
+ draw z1 -- z3 -- z4 ;
+ y5 = 1/2[y4,y2] ;
+ lft x5 = 1/2curve_sidebar ;
+ draw z4 -- z5 -- z2 ;
+endchar ;
+
+beginchar("t",10u#,ex#,0) ; "The rune t" ;
+ pickup main_nib ;
+ top y1 = h ; bot y2 = 0 ; lft x1 = lft x2 = straight_sidebar ;
+ draw_stem(1,2,"tb") ;
+ rt x3 = w - curve_sidebar ; y3 = .7[y2,y1] ;
+ diag(1,3) ;
+endchar ;
+
+beginchar("d",10u#,ex#,0) ; "The rune d" ;
+ pickup main_nib ;
+ top y1 = h ; bot y2 = 0 ; lft x1 = lft x2 = straight_sidebar ;
+ draw_stem(1,2,"tb") ;
+ rt x3 = w - curve_sidebar ; y3 = .7[y2,y1] ;
+ diag(1,3) ;
+ x4 = x1 ; x5 = x3 ; bot y4 = round (.5[y1,y2]) ; y4 - y1 = y5 - y3 ;
+ diag(4,5) ;
+endchar ;
+
+beginchar("T",10u#,ex#,0) ; "The rune th" ;
+ pickup main_nib ;
+ top y1 = h ; bot y2 = 0 ; rt x1 = rt x2 = w - straight_sidebar ;
+ draw_stem(1,2,"b") ;
+ lft x3 = curve_sidebar ; y3 = .7[y2,y1] ;
+ diag(1,3) ;
+endchar ;
+
+beginchar("D",10u#,ex#,0) ; "The rune dh" ;
+ pickup main_nib ;
+ top y1 = h ; bot y2 = 0 ; rt x1 = rt x2 = w - straight_sidebar ;
+ draw_stem(1,2,"b") ;
+ lft x3 = curve_sidebar ; y3 = .7[y2,y1] ;
+ diag(1,3) ;
+ x4 = x1 ; x5 = x3 ; bot y4 = round(.5[y1,y2]) ; y4 - y1 = y5 - y3 ;
+ diag(4,5) ;
+endchar ;
+
+beginchar("n",17u#,ex#,0) ; "The rune n" ;
+ pickup main_nib ;
+ top y1 = h ; bot y2 = 0 ; x1 = x2 = good.x .5w ;
+ draw_stem(1,2,"b") ;
+ lft x3 = curve_sidebar = w - rt x4 ; y3 = y4 = .7[y2,y1] ;
+ diag(1,3) ; diag(1,4) ;
+endchar ;
+
+beginchar("c",12u#,ex#,0) ; "The rune ch" ;
+ pickup main_nib ;
+ top y1 = h ; bot y2 = 0 ; lft x1 = lft x2 = straight_sidebar ;
+ bot y3 = .45[y1,y2] ; x3 = x1 ;
+ rt x4 = w - curve_sidebar ; y4 = y2 ;
+ draw_stem(1,2,"tb") ;
+ diag(3,4) ;
+endchar ;
+
+beginchar("j",13u#,ex#,0) ; "The rune j" ;
+ pickup main_nib ;
+ top y1 = h ; bot y2 = 0 ; lft x1 = lft x2 = straight_sidebar ;
+ bot y3 = .4[y1,y2] ; x3 = x1 ;
+ rt x4 = w - curve_sidebar ; y4 = y2 ;
+ draw_stem(1,2,"tb") ;
+ diag(3,4) ;
+ y5 = .5[y2,y3] ; x5 = x1 ; y6 = y4 ; z6 - z5 = whatever*(z4 - z3) ;
+ diag(5,6) ;
+endchar ;
+
+beginchar("C",11u#,ex#,0) ; "The rune sh" ;
+ pickup main_nib ;
+ top y1 = h ; bot y2 = 0 ; rt x1 = rt x2 = w - straight_sidebar ;
+ bot y3 = .45[y1,y2] ; x3 = x1 ;
+ lft x4 = curve_sidebar ; y4 = y2 ;
+ draw_stem(1,2,"tb") ;
+ diag(3,4) ;
+endchar ;
+
+beginchar("J",12u#,ex#,0) ; "The rune zh" ;
+ pickup main_nib ;
+ top y1 = h ; bot y2 = 0 ; rt x1 = rt x2 = w - straight_sidebar ;
+ bot y3 = .4[y1,y2] ; x3 = x1 ;
+ lft x4 = curve_sidebar ; y4 = y2 ;
+ draw_stem(1,2,"tb") ;
+ diag(3,4) ;
+ y5 = .5[y2,y3] ; x5 = x1 ; y6 = y4 ; z6 - z5 = whatever*(z4 - z3) ;
+ diag(5,6) ;
+endchar ;
+
+beginchar("Y",18u#,ex#,0) ; "The rune nj" ;
+ pickup main_nib ;
+ top y1 = h ; bot y2 = 0 ; x1 = x2 = good.x .5w ;
+ bot y3 = .45[y1,y2] ; x3 = x1 ;
+ y4 = y5 = y2 ; x4 = curve_sidebar = w - x5 ;
+ draw_stem(1,2,"tb") ;
+ diag(3,4) ; diag(3,5) ;
+endchar ;
+
+beginchar("k",11u#,ex#,0) ; "The rune k" ;
+ pickup main_nib ;
+ top y1 = h ; bot y2 = 0 ; lft x1 = lft x2 = straight_sidebar ;
+ top y3 = .55[y1,y2] ; x3 = x1 ;
+ y4 = y1 ; rt x4 = w - curve_sidebar ;
+ draw_stem(1,2,"tb") ;
+ draw z3{dir 35} .. tension 1 .. {dir 80}z4 -- z4 + 0.03em*left ;
+endchar ;
+
+beginchar("g",12u#,ex#,0) ; "The rune g" ;
+ pickup main_nib ;
+ top y1 = h ; bot y2 = 0 ; lft x1 = lft x2 = straight_sidebar ;
+ top y3 = .6[y1,y2] ; x3 = x1 ;
+ y4 = y1 ; rt x4 = w - curve_sidebar ;
+ draw_stem(1,2,"tb") ;
+ draw z3{dir 35} .. tension 1 .. {dir 80}z4 -- z4 + 0.03em*left ;
+ z5 = .55[z1,z3] ; z6 = .5[z1,z4] ;
+ draw z5{dir 40} .. tension 2 .. z6 -- z6 + 0.03em*left ;
+endchar ;
+
+beginchar("K",11u#,ex#,0) ; "The rune kh" ;
+ pickup main_nib ;
+ top y1 = h ; bot y2 = 0 ; rt x1 = rt x2 = w - straight_sidebar ;
+ top y3 = .55[y1,y2] ; x3 = x1 ;
+ y4 = y1 ; lft x4 = curve_sidebar ;
+ draw_stem(1,2,"tb") ;
+ draw z3{dir 135} .. tension 1 .. {dir 100}z4 -- z4 + 0.03em*left ;
+endchar ;
+
+beginchar("G",12u#,ex#,0) ; "The rune gh" ;
+ pickup main_nib ;
+ top y1 = h ; bot y2 = 0 ; rt x1 = rt x2 = w - straight_sidebar ;
+ top y3 = .6[y1,y2] ; x3 = x1 ;
+ y4 = y1 ; lft x4 = curve_sidebar ;
+ draw_stem(1,2,"tb") ;
+ draw z3{dir 145} .. tension 1 .. {dir 100}z4 -- z4 + 0.03em*left ;
+ z5 = .55[z1,z3] ; z6 = .5[z1,z4] ;
+ draw z5{dir 145} .. tension 1 .. {dir 100}z6 -- z6 + 0.03em*left ;
+endchar ;
+
+beginchar("N",16u#,ex#,0) ; "The rune ng" ;
+ pickup main_nib ;
+ top y1 = h ; bot y2 = 0 ; x1 = x2 = good.x .5w ;
+ top y3 = .55[y1,y2] ; x3 = x1 ;
+ y4 = y1 ; lft x4 = curve_sidebar ;
+ draw_stem(1,2,"tb") ;
+ draw z3{dir 145} .. tension 1 .. {dir 100}z4 -- z4 + 0.03em*left ;
+ y5 = y4 ; x5 = w - x4 ;
+ draw z3{dir 35} .. tension 1 .. {dir 80}z5 -- z5 + 0.03em*left ;
+endchar ;
+
+beginchar(43,13u#,ex#,0) ; "The rune kw" ;
+ pickup main_nib ;
+ top y1 = h ; bot y2 = 0 ; lft x1 = lft x2 = straight_sidebar ;
+ draw_stem(1,2,"tb") ;
+ rt x4 = w - curve_sidebar ; x3 = .5[x1,x4] ; y4 = y1 ; y3 = .7[y2,y1] ;
+ draw z1 -- z3 ; diag(3,4) ;
+endchar ;
+
+beginchar(39,13u#,ex#,0) ; "The rune gw" ;
+ pickup main_nib ;
+ top y1 = h ; bot y2 = 0 ; lft x1 = lft x2 = straight_sidebar ;
+ draw_stem(1,2,"tb") ;
+ rt x4 = w - curve_sidebar ; x3 = .5[x1,x4] ; y4 = y1 ; y3 = .7[y2,y1] ;
+ draw z1 -- z3 ; diag(3,4) ;
+ x5 = x1 ; top y5 = .6[y2,y1] ; z5 - z1 = z6 - z3 = z7 - z4 ;
+ draw z5 -- z6 ; diag(6,7) ;
+endchar ;
+
+beginchar(11,13u#,ex#,0) ; "The rune khw" ;
+ pickup main_nib ;
+ top y1 = h ; bot y2 = 0 ; rt x1 = rt x2 = w - straight_sidebar ;
+ draw_stem(1,2,"b") ;
+ lft x4 = curve_sidebar ; x3 = .5[x1,x4] ; y4 = y1 ; y3 = .7[y2,y1] ;
+ draw z1 -- z3 ; diag(3,4) ;
+endchar ;
+
+beginchar(7,13u#,ex#,0) ; "The rune ghw" ;
+ pickup main_nib ;
+ top y1 = h ; bot y2 = 0 ; rt x1 = rt x2 = w - straight_sidebar ;
+ draw_stem(1,2,"b") ;
+ lft x4 = curve_sidebar ; x3 = .5[x1,x4] ; y4 = y1 ; y3 = .7[y2,y1] ;
+ draw z1 -- z3 ; diag(3,4) ;
+ x5 = x1 ; top y5 = .6[y2,y1] ; z5 - z1 = z6 - z3 = z7 - z4 ;
+ draw z5 -- z6 ; diag(6,7) ;
+endchar ;
+
+beginchar(14,22u#,ex#,0) ; "The rune ngw" ;
+ pickup main_nib ;
+ top y1 = h ; bot y2 = 0 ; x1 = x2 = good.x .5w ;
+ draw_stem(1,2,"b") ;
+ lft x4 = curve_sidebar ; x3 = .5[x1,x4] ; y4 = y1 ; y3 = .7[y2,y1] ;
+ draw z1 -- z3 ; diag(3,4) ;
+ x6 = w - x4 ; y6 = y4 ; y5 = y3 ; x5 = w - x3 ;
+ draw z1 -- z5 ; diag(5,6) ;
+endchar ;
+
+beginchar(46,13u#,ex#,0) ; "The rune nw" ;
+ pickup main_nib ;
+ top y1 = h ; bot y2 = 0 ; lft x1 = lft x2 = straight_sidebar ;
+ draw_stem(1,2,"") ;
+ rt x4 = w - curve_sidebar ; x3 = .5[x1,x4] ; y4 = y1 ; y3 = .7[y2,y1] ;
+ draw z1 -- z3 ; diag(3,4) ;
+ x6 = x4 ; y6 = h - y4 ; y5 = h - y3 ; rt x5 = round x3 ;
+ draw z2 -- z5 ; diag(5,6) ;
+endchar ;
+
+beginchar("r",10u#,ex#,0) ; "The rune r" ;
+ pickup main_nib ;
+ top y1 = h ; bot y2 = 0 ; lft x1 = lft x2 = straight_sidebar ;
+ y3 = .5[y1,y2] ; x3 = x1 ;
+ y4 = y1 ; rt x4 = w - curve_sidebar ;
+ draw_stem(1,2,"tb") ;
+ draw z3{dir 45} .. tension 2 .. {dir 80}z4 -- z4 + 0.03em*left ;
+ y5 = y2 ; x5 = x4 ;
+ draw z3{dir -20} .. z5{dir -80} ;
+endchar ;
+
+beginchar("R",10u#,ex#,0) ; "The rune rh" ;
+ pickup main_nib ;
+ top y1 = h ; bot y2 = 0 ; rt x1 = rt x2 = w - straight_sidebar ;
+ y3 = .5[y1,y2] ; x3 = x1 ;
+ y4 = y1 ; lft x4 = curve_sidebar ;
+ draw_stem(1,2,"tb") ;
+ draw z3{dir 135} .. tension 2 .. {dir 100}z4 -- z4 + 0.03em*left ;
+ y5 = y2 ; x5 = x4 ;
+ draw z3{dir 200} .. z5{dir -100} ;
+endchar ;
+
+beginchar("l",12u#,ex#,0) ; "The rune l" ;
+ pickup main_nib ;
+ top y1 = h ; bot y2 = 0 ; x1 = x2 = good.x .5w ;
+ top y3 = round .85h ; rt x3 = w - curve_sidebar ;
+ x4 = w - x3 ; y4 = h - y3 ;
+ draw_stem(1,2,"tb") ;
+ draw z3{dir -100} .. {dir -100}z4 .. z4 + 0.03em*dir -70 ;
+endchar ;
+
+beginchar("L",12u#,ex#,0) ; "The rune lh" ;
+ pickup main_nib ;
+ top y1 = h ; bot y2 = 0 ; x1 = x2 = good.x .5w ;
+ top y3 = round .85h ; lft x3 = curve_sidebar ;
+ x4 = w - x3 ; y4 = h - y3 ;
+ draw_stem(1,2,"tb") ;
+ draw z3 + 0.03em*dir70 .. z3{dir -80} .. {dir -100}z4 .. z4 + 0.03em*dir -110 ;
+endchar ;
+
+beginchar(1,12u#,ex#,0) ; "The rune ng--nd" ;
+ pickup main_nib ;
+ top y1 = h ; bot y2 = 0 ; x1 = x2 = good.x .5w ;
+ top y3 = round .85h ; lft x3 = curve_sidebar ;
+ x4 = w - x3 ; y4 = h - y3 ;
+ draw_stem(1,2,"tb") ;
+ draw z3 + 0.03em*dir70 .. z3{dir -80} .. {dir -100}z4 .. z4 + 0.03em*dir -110 ;
+ top y5 = round .85h ; rt x5 = w - curve_sidebar ;
+ x6 = w - x5 ; y6 = h - y5 ;
+ draw z5{dir -100} .. {dir -100}z6 .. z6 + 0.03em*dir -70 ;
+endchar ;
+
+beginchar("s",10u#,ex#,0) ; "The rune s" ;
+ pickup main_nib ;
+ lft x1 = lft x3 = curve_sidebar = w - rt x2 ;
+ top y1 = h = h - bot y3 ; y2 = .5[y1,y3] ;
+ diag(2,1) ; diag(2,3) ;
+endchar ;
+
+beginchar("S",10u#,ex#,0) ; "The rune s---variant" ;
+ pickup main_nib ;
+ rt x1 = rt x3 = w - curve_sidebar = w - lft x2 ;
+ top y1 = h = h - bot y3 ; y2 = .5[y1,y3] ;
+ diag(2,1) ; diag(2,3) ;
+endchar ;
+
+beginchar("z",14u#,ex#,0) ; "The rune z" ;
+ pickup main_nib ;
+ lft x1 = curve_sidebar = w - rt x2 = w - rt x4 = lft x3 ;
+ top y1 = top y2 = h = h - bot y3 = h - bot y4 ;
+ z5 = .5[z1,z4] ;
+ diag(5,1) ; diag(5,2) ; diag(5,3) ; diag(5,4) ;
+endchar ;
+
+beginchar(2,14u#,ex#,0) ; "The rune ng---variant" ;
+ pickup main_nib ;
+ lft x1 = curve_sidebar = w - rt x2 = w - rt x4 = lft x3 ;
+ top y1 = top y2 = h = h - bot y3 = h - bot y4 ;
+ z5 = .5[z1,z4] ;
+ diag(5,1) ; diag(5,2) ; diag(5,3) ; diag(5,4) ;
+ x1' = x4' = x5 ; y2' = y3' = y5 ;
+ top y1' = round .85h = h - bot y4' ;
+ z2' - z1' = z4' - z3' = whatever*(z4 - z1) ;
+ draw z1' -- z2' -- z4' -- z3' -- cycle ;
+endchar ;
+
+beginchar(3,15u#,ex#,0) ; "The rune nd" ;
+ pickup main_nib ;
+ lft x1 = lft x3 = w - rt x2 = w - rt x4 = straight_sidebar ;
+ top y1 = top y2 = h - bot y3 = h - bot y4 = h ;
+ draw z1 -- z4 -- z2 -- z3 -- cycle ;
+endchar ;
+
+beginchar(4,14u#,ex#,0) ; "The rune nd---variant" ;
+ pickup main_nib ;
+ lft x1 = lft x3 = w - rt x2 = w - rt x4 = straight_sidebar ;
+ top y1 = top y2 = h - bot y3 = h - bot y4 = h ;
+ draw_stem(1,3,"b") ; draw_stem(2,4,"b") ;
+ x5 = x1 ; x6 = x2 ; y5 = y6 = .45[y1,y3] ;
+ draw z1 -- z6 ; draw z2 -- z5 ;
+endchar ;
+
+beginchar("i",4u#,ex#,0) ; "The rune i" ;
+ pickup main_nib ;
+ x1 = x2 = good.x .5w ;
+ top y1 = h ; bot y2 = 0 ;
+ draw_stem(1,2,"tb") ;
+endchar ;
+
+beginchar("y", 9u#,ex#,0) ; "The rune y" ;
+ pickup main_nib ;
+ lft x1 = lft x2 = straight_sidebar = w - rt x3 = w - rt x4 ;
+ top y1 = h ; bot y4 = 0 ;
+ y2 = good.y .25h ; y3 = good.y .75h ;
+ draw_stem(1,2,"t") ; draw_stem(3,4,"b") ; draw z2 -- z3 ;
+endchar ;
+
+beginchar("H", 9u#,ex#,0) ; "The rune y" ;
+ pickup main_nib ;
+ lft x1 = lft x2 = straight_sidebar = w - rt x3 = w - rt x4 ;
+ bot y1 = 0 ; top y4 = h ;
+ y2 = good.y .75h ; y3 = good.y .25h ;
+ draw_stem(2,1,"b") ; draw_stem(4,3,"t") ; draw z2 -- z3 ;
+endchar ;
+
+beginchar("u",14u#,ex#,0) ; "The rune u" ;
+ pickup main_nib ;
+ lft x4 = curve_sidebar = w - rt x2 ;
+ x3 = good.x .5w ;
+ x1 = good.x .3[x4,x3] = w - x5 ;
+ top y3 = h ;
+ bot y1 = bot y5 = 0 ;
+ y2 = y4 = good.y .6h ;
+ diag(2,1) ; diag(4,5) ; draw z2 -- z3 -- z4 ;
+endchar ;
+
+beginchar("U",10u#,ex#,0) ; "The rune long u" ;
+ pickup main_nib ;
+ lft x1 = lft x3 = curve_sidebar = w - rt x2 ;
+ top y1 = h = h - bot y3 ; y2 = .5[y1,y3] ;
+ diag(2,1) ; diag(2,3) ;
+ x5 = x1 ; y5 = y2 ; x4 = x6 = x2 ; y4 = y1 ; y6 = y3 ;
+ diag(5,4) ; diag(5,6) ;
+endchar ;
+
+beginchar("w",12u#,ex#,0) ; "The rune w" ;
+ pickup main_nib ;
+ lft x1 = curve_sidebar = w - rt x3 ;
+ x2 = x4 = x5 = good.x .5w ;
+ top y2 = h ; bot y5 = 0 ; y4 = good.y .35h ; y1 = y3 = .5[y2,y4] ;
+ draw_stem(4,5,"b") ; draw z1 -- z2 -- z3 -- z4 -- cycle ;
+endchar ;
+
+beginchar(21,12u#,ex#,0) ; "The rune ue" ;
+ pickup main_nib ;
+ lft x4 = curve_sidebar = w - rt x2 ;
+ x3 = good.x .5w ;
+ x1 = good.x .3[x4,x3] = w - x5 ;
+ top y3 = h ;
+ y1 = y5 = good.y .3h ;
+ y2 = y4 = good.y .6[y1,y3] ;
+ diag(2,1) ; diag(4,5) ; draw z2 -- z3 -- z4 ;
+ z6 = (z2 -- z1) intersectionpoint (z4--z5) ;
+ x7 = x6 ; bot y7 = 0 ; draw_stem(6,7,"b") ;
+endchar ;
+
+beginchar(53,12u#,ex#,0) ; "The rune ue---variant" ;
+ pickup main_nib ;
+ lft x4 = curve_sidebar = w - rt x2 ;
+ x3 = good.x .5w ;
+ x1 = good.x .3[x4,x3] = w - x5 ;
+ top y3 = h ;
+ y1 = y5 = good.y .3h ;
+ y2 = y4 = good.y .6[y1,y3] ;
+ diag(2,1) ; diag(4,5) ; draw z2 -- z3 -- z4 ;
+ z6 = (z2 -- z1) intersectionpoint (z4--z5) ;
+ x7 = x6 ; bot y7 = 0 ; draw_stem(3,7,"b") ;
+endchar ;
+
+beginchar("e",10u#,ex#,0) ; "The rune e" ;
+ pickup main_nib ;
+ lft x1 = lft x2 = straight_sidebar = w - rt x3 = w - rt x4 ;
+ top y1 = top y3 = h ; bot y2 = bot y4 = 0 ;
+ draw_stem(1,2,"tb") ; draw_stem(3,4,"tb") ;
+ x5 = x1 ; x6 = x3 ; .5[y5,y6] = vround .52h ;
+ top y5 = vround .67h ; draw z5 -- z6 ;
+endchar ;
+
+beginchar("E",10u#,ex#,0) ; "The rune long e" ;
+ pickup main_nib ;
+ lft x1 = lft x2 = straight_sidebar = w - rt x3 = w - rt x4 ;
+ top y1 = top y3 = h ; bot y2 = bot y4 = 0 ;
+ draw_stem(1,2,"tb") ; draw_stem(3,4,"tb") ;
+ x5 = x7 = x1 ; x6 = x8 = x3 ; .5[y5,y8] = vround .52h ;
+ top y5 = vround .8h ;
+ top y6 = vround .67h ; y7 - y8 = y5 - y6 ;
+ draw z5 -- z6 ; draw z7 -- z8 ;
+endchar ;
+
+beginchar("a",10u#,ex#,0) ; "The rune a" ;
+ pickup main_nib ;
+ lft x1 = lft x2 = straight_sidebar = w - rt x3 = w - rt x4 ;
+ top y1 = h ; top y3 = vround .75h ; bot y2 = bot y4 = 0 ;
+ draw_stem(1,2,"b") ; draw_stem(3,4,"b") ;
+ draw z1 -- z3 ;
+endchar ;
+
+beginchar("A",10u#,ex#,0) ; "The rune long a" ;
+ pickup main_nib ;
+ lft x1 = lft x2 = straight_sidebar = w - rt x3 = w - rt x4 ;
+ top y1 = h ; top y3 = vround .75h ; bot y2 = bot y4 = 0 ;
+ draw_stem(1,2,"b") ; draw_stem(3,4,"b") ;
+ draw z1 -- z3 ;
+ x5 = x1 ; x6 = x3 ; y5 = vround .6h ; y5 - y6 = y1 - y3 ;
+ draw z5 -- z6 ;
+endchar ;
+
+beginchar("o",12u#,ex#,0) ; "The rune o" ;
+ pickup main_nib ;
+ lft x1 = curve_sidebar = w - rt x3 ; x2 = good.x .5w ;
+ bot y1 = bot y3 = 0 ; top y2 = h ;
+ diag(2,3) ; diag(2,1) ;
+endchar ;
+
+beginchar("O",16u#,ex#,0) ; "The rune long o" ;
+ pickup main_nib ;
+ lft x1 = curve_sidebar = w - rt x6 ;
+ rt x3 = hround .7w = w - lft x4 ;
+ x2 = good.x .5[x1,x3] ; x5 = good.x .5[x4,x6] ;
+ top y2 = top y5 = h ;
+ bot y1 = 0 ; y1 = y3 = y4 = y6 ;
+ diag(2,1) ; diag(2,3) ; diag(5,4) ; diag(5,6) ;
+endchar ;
+
+beginchar(15,15u#,ex#,0) ; "The rune long o---variant" ;
+ pickup main_nib ;
+ lft x1 = lft x2 = straight_sidebar = w - rt x4 = w - rt x5 ;
+ x3 = good.x .5[x1,x4] ;
+ top y1 = top y4 = h ; bot y2 = bot y5 = 0 = bot y3 ;
+ draw_stem(1,2,"b") ; draw_stem(4,5,"b") ; draw z1 -- z3 -- z4 ;
+endchar ;
+
+beginchar(47,12u#,ex#,0) ; "The rune oe" ;
+ pickup main_nib ;
+ lft x1 = curve_sidebar = w - rt x3 ; x2 = good.x .5w ;
+ bot y1 = bot y3 = 0 ; top y2 = h ;
+ diag(2,3) ; diag(2,1) ;
+ x4 = x2 ; y4 = y1 ; draw_stem(2,4,"b") ;
+endchar ;
+
+beginchar("0",12u#,ex#,0) ; "The rune oe---variant" ;
+ pickup main_nib ;
+ lft x1 = curve_sidebar = w - rt x3 ; x2 = good.x .5w ;
+ bot y1 = bot y3 = 0 ; top y2 = h ;
+ diag(2,3) ; diag(2,1) ;
+ x4 = x2 = x5 ; top y4 = vround .4h ; y5 = y1 ; draw z4 -- z5 ;
+endchar ;
+
+beginchar(5,12u#,ex#,0) ; "The rune n---another one" ;
+ pickup main_nib ;
+ lft x1 = curve_sidebar = w - rt x3 ;
+ x2 = x4 = good.x .5w ;
+ top y1 = top y3 = h ; bot y4 = 0 ; y2 = good.y .45h ;
+ draw_stem(2,4,"b") ; diag(1,2) ; diag(2,3) ;
+endchar ;
+
+beginchar("h",12u#,ex#,0) ; "The rune h" ;
+ pickup main_nib ;
+ lft x1 = curve_sidebar = w - rt x3 ;
+ x2 = x4 = good.x .5w ;
+ bot y1 = bot y3 = 0 ; top y4 = h ; y2 = good.y .55h ;
+ draw_stem(4,2,"t") ; diag(1,2) ; diag(2,3) ;
+endchar ;
+
+beginchar(6,8u#,ex#,0) ; "The cup rune" ;
+ pickup main_nib ;
+ lft x1 = lft x2 = lft x3 = straight_sidebar ; rt x4 = w - curve_sidebar ;
+ top y1 = h ; bot y2 = 0 ; .5[y3,y4] = vround .52h ; top y3 = vround .7h ;
+ draw_stem(1,2,"tb") ; diag(3,4) ;
+endchar ;
+
+beginchar(8,8u#,ex#,0) ; "The evanescent cup rune" ;
+ pickup main_nib ;
+ lft x3 = curve_sidebar ; rt x4 = w - curve_sidebar ;
+ .5[y3,y4] = vround .52h ; top y3 = vround .7h ;
+ diag(3,4) ; diag(4,3) ;
+endchar ;
+
+beginchar(9,8u#,ex#,0) ; "The schwa rune" ;
+ pickup main_nib ;
+ rt x1 = rt x2 = rt x3 = w - straight_sidebar ; lft x4 = curve_sidebar ;
+ top y1 = h ; bot y2 = 0 ; .5[y3,y4] = vround .52h ; top y3 = vround .7h ;
+ draw_stem(1,2,"tb") ; diag(3,4) ;
+endchar ;
+
+beginchar(10,8u#,ex#,0) ; "The evanescent schwa rune" ;
+ pickup main_nib ;
+ rt x3 = w - curve_sidebar ; lft x4 = curve_sidebar ;
+ .5[y3,y4] = vround .52h ; top y3 = vround .7h ;
+ diag(3,4) ; diag(4,3) ;
+endchar ;
+
+beginchar(16,10u#,ex#,0) ; "The rune ps" ;
+ pickup main_nib ;
+ top y1 = h ; bot y2 = 0 ; lft x1 = lft x2 = straight_sidebar ;
+ draw_stem(1,2,"tb") ;
+ bot y4 = vround 0.2[y2,y1] ; top y5 = vround .8[y2,y1] ;
+ x4 = x1 ; x5 = x2 ;
+ rt x3 = w - curve_sidebar ; y3 = 1/2[y4,y5] ;
+ draw z5 -- z3 -- z4 ;
+endchar ;
+
+beginchar(20,10u#,ex#,0) ; "The rune ts" ;
+ pickup main_nib ;
+ top y1 = h ; bot y2 = 0 ; rt x1 = rt x2 = w - straight_sidebar ;
+ draw_stem(1,2,"tb") ;
+ bot y4 = vround 0.2[y2,y1] ; top y5 = vround .8[y2,y1] ;
+ x4 = x5 = x1 ;
+ lft x3 = curve_sidebar ; y3 = 1/2[y4,y5] ;
+ draw z5 -- z3 -- z4 ;
+endchar ;
+
+beginchar(12,4u#,ex#,0) ; "The aspiration rune" ;
+ pickup main_nib ;
+ x1 = x2 = good.x .5w ;
+ bot y2 = vround .3h ; top y1 = vround .75h ;
+ draw_stem(1,2,"tb") ;
+endchar ;
+
+beginchar("&",8u#,ex#,0) ; "The ampersand rune" ;
+ pickup main_nib ;
+ x1 = x2 = good.x .5w ; lft x3 = curve_sidebar = w - rt x4 ;
+ top y1 = h ; bot y2 = 0 ;
+ bot y3 = vround .7h = h - top y4 ;
+ draw_stem(1,2,"") ; diag(1,3) ; diag(2,4) ;
+endchar ;
+
+beginchar(18,11u#,ex#,0) ; "The OE rune wyn" ;
+ pickup main_nib ;
+ top y1 = h ; bot y2 = 0 ; lft x1 = lft x2 = straight_sidebar ;
+ top y3 = .55[y1,y2] ; x3 = x1 ;
+ y4 = y1 ; rt x4 = w - curve_sidebar ;
+ draw_stem(1,2,"tb") ;
+ draw z3 -- z4 -- z1 ;
+endchar ;
+
+beginchar(19,15u#,ex#,0) ; "The OE rune daeg---variant" ;
+ pickup main_nib ;
+ lft x1 = lft x3 = w - rt x2 = w - rt x4 = straight_sidebar ;
+ top y1 = top y2 = h - bot y3 = h - bot y4 = h ;
+ draw z1 -- z4 -- z2 -- z3 -- cycle ; draw z1 -- z2 ; draw z3 -- z4 ;
+endchar ;
+
+beginchar(22,13u#,ex#,0) ; "The OE rune ac" ;
+ pickup main_nib ;
+ top y1 = h ; bot y2 = 0 ; lft x1 = lft x2 = straight_sidebar ;
+ draw_stem(1,2,"tb") ;
+ rt x4 = w - curve_sidebar ; x3 = .5[x1,x4] ; y4 = y1 ; y3 = .7[y2,y1] ;
+ draw z1 -- z3 ; diag(3,4) ;
+ x5 = x1 ; top y5 = .6[y2,y1] ; z5 - z1 = z6 - z3 = z7 - z4 ;
+ diag(5,6) ;
+endchar ;
+
+beginchar(23,14u#,ex#,0) ; "The OE rune yr" ;
+ pickup main_nib ;
+ lft x1 = lft x2 = straight_sidebar = w - rt x3 = w - rt x4 ;
+ top y1 = h ; top y3 = vround .75h ; bot y2 = bot y4 = 0 ;
+ draw_stem(1,2,"b") ; draw_stem(3,4,"b") ;
+ draw z1 -- z3 ;
+ x5 = x1 ; x6 = x3 ; y5 = vround .6h ; y5 - y6 = y1 - y3 ;
+ draw z5 -- z6 ;
+ z7 = .5[z5,z6] ; x7 := good.x x7 ; x8 = x7 ; y8 = y2 ; draw_stem(7,8,"b") ;
+endchar ;
+
+beginchar(24,13u#,ex#,0) ; "The OE rune calc" ;
+ pickup main_nib ;
+ lft x1 = lft x2 = straight_sidebar ; top y1 = h ; bot y2 = 0 ;
+ draw_stem(1,2,"tb") ;
+ .5[y3,y4] = vround .52h ; bot y3 = vround .4h ;
+ x3 = x1 ;
+ rt x5 = w - curve_sidebar ; y5 = y2 ; x4 = .5[x3,x5] ;
+ draw z3 -- z4 ; diag(4,5) ;
+endchar ;
+
+beginchar(25,12u#,ex#,0) ; "The OE rune feoh" ;
+ pickup main_nib ;
+ top y1 = h ; bot y2 = 0 ; lft x1 = lft x2 = straight_sidebar ;
+ top y3 = .6[y1,y2] ; x3 = x1 ;
+ y4 = y1 ; rt x4 = w - curve_sidebar ;
+ draw_stem(1,2,"tb") ;
+ diag(3,4) ;
+ z5 = .55[z1,z3] ; z6 = .5[z1,z4] ;
+ diag(5,6) ;
+endchar ;
+
+beginchar(26,14u#,ex#,0) ; "The Ereborian rune ai" ;
+ pickup main_nib ;
+ lft x1 = lft x2 = straight_sidebar = w - rt x3 = w - rt x4 ;
+ top y1 = h ; top y3 = vround .75h ; bot y2 = bot y4 = 0 ;
+ draw_stem(1,2,"b") ; draw_stem(3,4,"b") ;
+ draw z1 -- z3 ;
+ x5 = x1 ; x6 = x3 ; y5 = vround .6h ; y5 - y6 = y1 - y3 ;
+ z7 = .5[z5,z6] ; x7 := good.x x7 ; x8 = x7 ; y8 = y2 ; draw_stem(7,8,"tb") ;
+endchar ;
+
+beginchar(27,14u#,ex#,0) ; "The Ereborian ea rune" ;
+ pickup main_nib ;
+ lft x1 = lft x2 = straight_sidebar = w - rt x3 = w - rt x4 ;
+ bot y2 = bot y4 = 0 ; y1 = y3 = good.y .5h ;
+ draw_stem(1,2,"b") ; draw_stem(3,4,"b") ;
+ x5 = good.x .5w ; top y5 = h ; x6 = x5 ; y6 = y2 ;
+ draw z1 -- z5 -- z3 ; draw_stem(5,6,"b") ;
+endchar ;
+
+beginchar(28,13u#,ex#,0) ; "The Ereborian ew rune" ;
+ pickup main_nib ;
+ lft x1 = lft x3 = w - rt x2 = w - rt x4 = straight_sidebar ;
+ top y1 = top y2 = h - bot y3 = h - bot y4 = h ;
+ draw_stem(1,3,"b") ; draw_stem(2,4,"b") ;
+ x5 = x7 = x1 ; x6 = x8 = x2 ; y5 = y6 = .75[y1,y3] = h - y7 = h - y8 ;
+ draw z5 -- z8 ; draw z7 -- z6 ;
+endchar ;
+
+beginchar(29,16u#,ex#,0) ; "The rune number 4" ;
+ pickup main_nib ;
+ lft x1 = curve_sidebar = w - rt x6 ;
+ rt x3 = hround .7w = w - lft x4 ;
+ x2 = good.x .5[x1,x3] ; x5 = good.x .5[x4,x6] ;
+ bot y2 = bot y5 = 0 ;
+ top y1 = h ; y1 = y3 = y4 = y6 ;
+ diag(2,1) ; diag(2,3) ; diag(5,4) ; diag(5,6) ;
+endchar ;
+
+beginchar(30,16u#,ex#,0) ; "The rune number 5" ;
+ pickup main_nib ;
+ top y1 = h ; bot y2 = 0 ; x1 = x2 = good.x .5w ;
+ top y3 = .55[y1,y2] ; x3 = x1 ;
+ y4 = y1 ; lft x4 = curve_sidebar ;
+ draw_stem(1,2,"tb") ;
+ diag(3,4) ;
+ y5 = y4 ; x5 = w - x4 ;
+ diag(3,5) ;
+endchar ;
+
+end.