%
%  Hebrew font
%
%  By Andrew Marc Greene
%
\mode:=smoke;% localfont;
mode_setup;
screenchars;showit;
em#:=7.3pt#; cap#:=8pt#;
thin#:=1/2pt#; thick#:=5/6pt#;
o#:=1/5pt#;
define_pixels(em,cap);
define_blacker_pixels(thin,thick);
define_corrected_pixels(o);
curve_sidebar=round 1/18em;
%
%
%  Define some neat things...
%
%
sq=1/15 cap;
pickup pencircle xscaled .5cap yscaled .15cap;
mypen := savepen;
%
%
def up_serif suffix $ =
z.$.a = z.$ + (0,sq);
penpos.$.a(3sq,80);
z.$.b = z.$ + (sq,0);
penpos.$.b(3sq,85);
z.$.c = z.$ + (2sq,0);
penpos.$.c(3sq,90);
penstroke z.$.a.e .. z.$.b.e --- z.$.c.e;
enddef;
%
%
def heavy_downstroke (expr xpos) =
begingroup
save x,y;
z1r=(xpos,9sq);
penpos1(.2sq,0);
penpos2(.65sq,45);
x2=xpos; y2l=0;
penstroke z1e -- z2e;
endgroup;
enddef;
%
%
def smooth_upper_right (expr xpos) =
begingroup
save x,y;
z1=(xpos-2sq,13.5sq);
penpos1(3sq,90);
z2=(xpos-1sq,13.4sq);
penpos2(3sq,85);
z3r=(xpos,13.5sq);
penpos3(3sq,85);
z4r=(xpos+.05sq,12sq);
penpos4(2sq,82);
z5r=(xpos,9sq);
penpos5(.2sq,0);
penstroke z1e..z2e..z3e..z4e..z5e;
endgroup;
enddef;
%
%
def crossbar (expr xpos,ypos) =
begingroup
save x,y;
x1=2sq; x2=xpos; y1=y2=ypos;
penpos1(3sq,90); penpos2(3sq,90);
penstroke z1e--z2e;
endgroup;
enddef;
%
%
def corner_wedge (expr xpos,ypos) =
begingroup
save x,y;
x1 = xpos-2sq;
x2r = xpos+.2sq; x2l = xpos+1sq;
y2r = ypos+1.5sq; y2l=ypos-1.5sq;
y1=ypos;
penpos1(3sq,90);
penstroke z1e--z2e;
endgroup;
enddef;
%
%
def sharp_upper_right (expr xpos) =
begingroup
save x,y;
corner_wedge (xpos,13.5sq);
x1 = x2 = xpos; y1 = 12sq;
x3 = x2-.2sq; y2 = y3 = 9sq;
x4 = x2-.45sq; y4 = 11sq;
x5 = x2-1sq; y5 = 11.86sq;
x6 = x7 = x2-2sq; y6 = y1-epsilon; y7=y1;
fill z1 -- z7 -- z6 {right} ... z5 .. z4 .. z3 -- z2 -- cycle;
endgroup;
enddef;
%
%
def light_downstroke (expr xpos) =
begingroup
save x,y;
z1r=(xpos,9sq);
penpos1(.2sq,0);
x2l=x1l; y2l=3sq;
penpos2(.2sq,angle (z1r-z2l));
penstroke z1e -- z2e;
endgroup;
enddef;
%
%
def vav =
begingroup;
save x,y,w;
z1 = (0,13.5sq); w=4sq;
up_serif1;
smooth_upper_right(w);
heavy_downstroke(w);
endgroup;
enddef;
%
def resh =
begingroup;
save x,y,w;
z1 = (0,13.5sq); w=12sq;
up_serif1;
crossbar(w-2sq,13.5sq);
smooth_upper_right(w);
heavy_downstroke(w);
endgroup;
enddef;
%
def daled =
begingroup;
save x,y,w;
z1 = (0,13.5sq); w=12sq;
up_serif1;
crossbar(w-2sq,13.5sq);
sharp_upper_right (w);
heavy_downstroke (w);
endgroup;
enddef;
%
def vet =
begingroup;
save x,y,w; w=12sq;
z1 = (0,13.5sq); z2=(0,1.5sq);
up_serif1; up_serif2;
crossbar(w-2sq,13.5sq);
crossbar(w-1.7sq,1.5sq);
smooth_upper_right(w);
light_downstroke (w);
corner_wedge (w+.3sq,1.5sq);
endgroup;
enddef;
%
def gimel =
begingroup;
save x,y,w; w=4sq;
z1 = (0,13.5sq);
up_serif1;
smooth_upper_right(w);
heavy_downstroke(w);
x3r=w-.25sq; y3l=0; penpos3(3sq,70);
y2=y3; x2l=0; penpos2(3sq,70);
penstroke z2e -- z3e;
endgroup;
enddef;
