%% This file generates Old Hebrew glyphs for use with the Makor %% system for typesetting Hebrew with Omega. mode_setup; designsize:=10pt#; if unknown FontSize: FontSize := 10pt#; fi FX# := FontSize * 0.075 / 2.4; % normalize to 10pt---AH FY# := FontSize * 0.075 / 2.4; %% At 10ot, FX#=FY#=.3125pt. my_adj# := 3FX#; define_pixels (FX, FY); mynib#:=2.5FX#; define_pixels (mynib); def picknib=pickup pencircle scaled mynib enddef; def adjust_fit(expr left_adj, right_adj) = l := -hround(left_adj*hppp); interim xoffset := -1; charwd := charwd+left_adj+right_adj; r := l+hround(charwd*hppp); w := r-hround(right_adj*hppp); enddef; beginchar(33, 8FX#, 22.563FY#, 0); % blank character mark adjust_fit(2my_adj#, 2my_adj#); z0=(0,h); z1=(w,y0); z2=(x1,-d); z3=(x0,y2); pickup pensquare scaled FX; draw z0--z1--z2--z3--cycle; endchar; beginchar(46, 5mynib#, 12FY#, 0); % period adjust_fit(my_adj#, my_adj#); picknib; drawdot (w/2,h); endchar; beginchar(91, 6FX#, 25FY#, 1FY#); % left square bracket! adjust_fit(my_adj#, my_adj#); z0=(0,h); z1=(w,h); z2=(w,-d); z3=(0,-d); pickup pensquare scaled 1.0FX; draw z0--z1--z2--z3; endchar; beginchar(93, 6FX#, 25FY#, 1FY#); % right square bracket! adjust_fit(my_adj#, my_adj#); z0=(0,h); z1=(w,h); z2=(w,-d); z3=(0,-d); pickup pensquare scaled 1.0FX; draw z1--z0--z3--z2; endchar; beginchar(94, 5FX#, 22.563FY#, 0); % circumflex adjust_fit(my_adj#, my_adj#); z1=(.5w, h); y0=y2=.75h; x0=0; x2=w-x0; picknib; draw z0--z1--z2; endchar; beginchar(96, 25FX#, 22.563FY#, 0.5FY#); % old alef adjust_fit(my_adj#, my_adj#); z2=(w,-d); z0=(w,h); z1=(0, .25h); picknib; draw z0--z1--z2; z3=(.45w, h); z4=(.96x3,-d); draw z3--z4; endchar; beginchar(97, 17FX#, 22.563FY#, 0.5FY#); % bet/vet adjust_fit(my_adj#, my_adj#); z0'=(w,.35h); z1=(0,y0'); z2=(w,h); z3=(.35w,-d); z4=(0,-d); path p; pair pr; pr=.5[.5[z3,z2], (w,-d)]; p=z2{down}...pr{z3-z2}...{left}z3; z0=(z0'--z1)intersectionpoint p; picknib; draw z0--z1--z2{down}...pr{z3-z2}...{left}z3--z4; endchar; beginchar(98, 17FX#, 22.563FY#, 0.5FY#); % gimel adjust_fit(my_adj#, my_adj#); z0=(0,.65h); z1=(.65w,h); z2=(w,-d); picknib; draw z0--z1--z2; endchar; beginchar(99, 23FX#, 22.563FY#, .5FY#); % dalet adjust_fit(my_adj#, my_adj#); z0=(0,.4h); z1=(w,h); z2=(w,-d); picknib; draw z0--z1--z2--cycle; endchar; beginchar(100, 17FX#, 22.563FY#, 0.5FY#); % he adjust_fit(my_adj#, my_adj#); z0=(0,.65h); z1=(.65w,h); z2=(w,-d); picknib; draw z0--z1--z2; path p; p:=(z1--z0) shifted ( .3[z2,z1] - z1); draw p; p:=(z1--z0) shifted ( .6[z2,z1] - z1); draw p; endchar; beginchar(101,20FX#, 22.563FY#, 0.5FY#); % vav adjust_fit(my_adj#, my_adj#); z0=(0,h); z2=(w,y0); z1=(.5w, .65h); picknib; z3=(.5w, -d); draw z0{(w,-d)-(0,h)}..z1..{(w,h)-(0,-d)}z2; draw z1--z3; endchar; beginchar(102, 17FX#, 22.563FY#, 0.5FY#); % zayin adjust_fit(my_adj#, my_adj#); z0=(0,h); z2=(.125w, y0); z1=(w,y0); z3=(x1,-d); z4=(x0,y3); picknib; draw z0--z1; draw z2--z3--z4; endchar; beginchar(103, 20FX#, 22.563FY#, .5FY#); % chet adjust_fit(my_adj#, my_adj#); z0=(0,h); z1=(.2w, -d); z2=(w-x1,y0); z3=(w,y1); fudge:=.222; z4=fudge[z0,z1]; z5=whatever[z2,z3]; picknib; draw z0--z1; draw z2--z3; z5'-z4= (z0-z4) rotated (-90); z5=whatever[z4,z5']; draw z4--z5; z8=(1-fudge)[z0,z1]; z9=whatever[z2,z3]; z9'-z8= (z0-z8) rotated (-90); z9=whatever[z8,z9']; draw z8--z9; z6 = .5[z8,z4]; z7 = .5[z9,z5]; draw z6--z7; endchar; beginchar(104, 23.063FX#, 22.563FY#, .5FY#); % tet adjust_fit(my_adj#, my_adj#); z50=(.5w, h); z52=(x50,-d); z51=(w,.5h); z53=(0,y51); path p; p := z50..z51..z52..z53..cycle; z4=(.5w,.5h); path q; q := z4--(w,h); z01 = q intersectionpoint p; q := z4--(w,-d); z12 = q intersectionpoint p; q := z4--(0,-d); z23 = q intersectionpoint p; q := z4--(0,h); z30 = q intersectionpoint p; picknib; draw p; draw z01--z23; draw z12--z30; endchar; beginchar(105, 20FX#, 22.563FY#,.5FY#); % yod adjust_fit(my_adj#, my_adj#); z0=(0,h); z1=(w,y0); z4=(.2w,-d); z5=(1.05w,d); z3=whatever[z4,z1]; z2=(.165w,.7h); y3=y2; z4'=(1.5x4, y4); picknib; draw z0--z1--z4--z4'{right}..z5; draw z2--z3; endchar; beginchar(106, 15FX#, 22.563FY#, .5FY#); % final kaf (same as kaf) adjust_fit(my_adj#, my_adj#); fudge := -.06; z0=(.5w, .5[-d,h]); x0 := x0+fudge*w; z1=(0,h); z2=(x0,y1); z3=(w,y1); z4=(0,-d); picknib; draw z0--z1; draw z0--z2; draw z3..z0..z4; endchar; beginchar(107, 15FX#, 22.563FY#, .5FY#); % kaf adjust_fit(my_adj#, my_adj#); fudge := -.06; z0=(.5w, .5[-d,h]); x0 := x0+fudge*w; z1=(0,h); z2=(x0,y1); z3=(w,y1); z4=(0,-d); picknib; draw z0--z1; draw z0--z2; draw z3..z0..z4; endchar; beginchar(108, 15FX#, 22.563FY#, .5FY#); % lamed adjust_fit(my_adj#, my_adj#); z0=(.6w,h); z1=(0,-d); z2=(w,y1); picknib; draw z0--z1--z2; endchar; beginchar(109, 23FX#, 22.563FY#, .5FY#); % final mem (same as mem) adjust_fit(my_adj#, my_adj#); x0=0; x2=.55w; x4=w; y0=y2=y4=h; x1=.2w; x3=.9x2; y1=y3=.45h; z5=(x3,-d); picknib; draw z0--z1--z2{down}..z3&z3{(1,.5)}..z4&z4{down}..z5; endchar; beginchar(110, 23FX#, 22.563FY#, .5FY#); % mem adjust_fit(my_adj#, my_adj#); x0=0; x2=.55w; x4=w; y0=y2=y4=h; x1=.2w; x3=.9x2; y1=y3=.45h; z5=(x3,-d); picknib; draw z0--z1--z2{down}..z3&z3{(1,.5)}..z4&z4{down}..z5; endchar; beginchar(111, 16FX#, 22.563FY#, .5FY#); % final nun (same as nun) adjust_fit(my_adj#, my_adj#); y0=h; y3=-d; x0=.66w; x3=w-x0; z1=(0,.7h); z2=(w,y1); picknib; draw z0--z1--z2--z3; endchar; beginchar(112, 16FX#, 22.563FY#, .5FY#); % nun adjust_fit(my_adj#, my_adj#); y0=h; y3=-d; x0=.66w; x3=w-x0; z1=(0,.7h); z2=(w,y1); picknib; draw z0--z1--z2--z3; endchar; beginchar(113, 21FX#, 22.563FY#, .5FY#); % samekh adjust_fit(my_adj#, my_adj#); z6=(.5w,y4); z7=(x6,-d); z0=(.25w,h); z1=(w-x0,y0); z2=(x0-.2w, .8h); z3=(w-x2,y2); z4=(0,.6h); z5=(w-x4,y4); picknib; draw z0--z1; draw z2--z3; draw z4--z5; draw z6--z7; endchar; beginchar(114, 23.063FX#, 22.563FY#, .5FY#); % ayin; stolen from tet adjust_fit(my_adj#, my_adj#); z50=(.5w, h); z52=(x50,-d); z51=(w,.5h); z53=(0,y51); path p; p := z50..z51..z52..z53..cycle; picknib; draw p; endchar; beginchar(115, 16FX#, 22.563FY#, .5FY#); % final fe (same as fe) adjust_fit(my_adj#, my_adj#); z1=(w,h); z0=(0,y1-.2h); z2=(.45w,-d); picknib; draw z0--z1{down}..{-1,-.5}z2; endchar; beginchar(116, 16FX#, 22.563FY#, .5FY#); % pe adjust_fit(my_adj#, my_adj#); z1=(w,h); z0=(0,y1-.2h); z2=(.45w,-d); picknib; draw z0--z1{down}..{-1,-.5}z2; endchar; beginchar(117, 16FX#, 22.563FY#, .5FY#); % final tsade (same as tsade) adjust_fit(my_adj#, my_adj#); z0=(0,-d); z1=(.1w,h); y2=.8h; z2=whatever[z0,z1]; z3=(.9w,h); z4=(.5w,.6h); z5=(w,y4+.05h); picknib; draw z0--z1; draw z2--z3--z4--z5; endchar; beginchar(118, 16FX#, 22.563FY#, .5FY#); % tsade adjust_fit(my_adj#, my_adj#); z0=(0,-d); z1=(.1w,h); y2=.8h; z2=whatever[z0,z1]; z3=(.9w,h); z4=(.5w,.6h); z5=(w,y4+.05h); picknib; draw z0--z1; draw z2--z3--z4--z5; endchar; beginchar(119, 20FX#, 22.563FY#, 0.5FY#); % qof adjust_fit(my_adj#, my_adj#); z0=(0,.65h); z2=(w,y0); z1=(.5w, h); picknib; z3=(.5w, -d); draw z0..z1..z2; draw z1--z3; draw z0--z2; endchar; beginchar(120, 14FX#, 22.563FY#, 0.5FY#); % resh adjust_fit(my_adj#, my_adj#); z0=(w,h); z1=(x0,-d); z3=(x0,.4h); z2=(0, .45[y3,y0]); picknib; draw z1--z0--z2--z3; endchar; beginchar(121, 29FX#, 22.563FY#, 0.5FY#); % shin adjust_fit(my_adj#, my_adj#); y0=y2=y4=h; y1=y3=-d; x0=0; x4=w; x2=.45[x0,x4]; x1=.45[x0,x2]; x3=.5[x2,x4]; picknib; draw z0--z1--z2--z3--z4; endchar; beginchar(122, 18FX#, 22.563FY#, .5FY#); % taf adjust_fit(my_adj#, my_adj#); x0=x3=0; x1=x2=w; y1=y3=h; y0=y2=-d; picknib; draw z0--z1; draw z2--z3; endchar; font_slant := 0; font_normal_space := 11 * FX#; font_normal_stretch := 3.631 * FX#; font_normal_shrink := 2.421 * FX#; font_quad := 21.787 * FX#; designsize := FontSize; end.