% blackboard typefaces by Anthony Phan. % file: mbbhebvw.mf (Hebrew points and punctuation) % last modification: 25.10.2001. diacritics_proofing;% changes extra_endchar for proof mode. def horizontal_rules_list= -body_depth,-paren_depth,-desc_depth, x_height,cap_height,asc_height,body_height enddef; use_rule1; beginchar(bbhebvow[0],8u#+2appr#,0,bot_skip#+heb_size2#); "Hebrew point sheva"; center_bar(1,1'); x2=x1; x2'=x1'; top y1'=bot y2+heb_size2=-bot_skip; top y1'-bot y1=top y2'-bot y2=dot_size; dot(1,1'); dot(2,2'); endchar; beginchar(bbhebvow[1],8u#+2appr#,0,bot_skip#+heb_size2#); "Hebrew point hataf-segol"; center_bar(2,2'); lft x1-apprl=w-apprr-rt x3'=w-apprr-rt x5' =hround min(0,(w-apprl-apprr)/3-hthick-thin-2dot_skip/3); x1'-x1=x3'-x3=x4'-x4=x5'-x5=hthick; x4=good.x 0.5[x1,x2]; top y1'=bot y4+heb_size2=-bot_skip; top y1'-bot y1=top y4'-bot y4=dot_size; y1=y2=y3; y1'=y2'=y3'; y4=y5; y4'=y5'; dot(1,1'); dot(2,2'); dot(3,3'); dot(4,4'); dot(5,5'); endchar; beginchar(bbhebvow[2],8u#+2appr#,0,bot_skip#+dot_size#); "Hebrew point hataf-patah"; pickup circle.nib; rt x1'=w-apprr; x1'-x1=hthick; top y1'=-bot_skip; lft x2=apprl; x3-x2=2hround u+hthick; top y1'-bot y1=dot_size; y1'=y2=y3; dot(1,1'); pickup square.nib; draw z2..z3; labels(2,3); endchar; % humm beginchar(bbhebvow[3],8u#+2appr#,0,bot_skip#+heb_size2#); "Hebrew point hataf-qamats"; pickup circle.nib; rt x2=rt x10=w-apprr; x2-x1=x8-x5=x7-x6=x10-x9=hthick; lft x3=apprl; x4-x3=2hround u+hthick; x5=x6=x3+hround u; top y2=bot y9+heb_size2=-bot_skip; top y2-bot y1=top y10-bot y9=dot_size; bot y6=bot y7=-bot_skip-heb_size1; y2=y3=y4=y5=y8; dot(1,2); dot(9,10); pickup square.nib; draw z3..z4; draw z5--z6--z7--z8; labels(3,4,5,6,7,8); endchar; beginchar(bbhebvow[4],8u#+2appr#,0,bot_skip#+dot_size#); "Hebrew point hiriq"; center_bar(1,1'); top y1'=-bot_skip; top y1'-bot y1=dot_size; dot(1,1'); endchar; beginchar(bbhebvow[5],8u#+2appr#,0,bot_skip#+dot_size#); "Hebrew point tsere"; pickup circle.nib; lft x1-apprl=w-apprr-rt x2' =hround min(0.5u,0.5(w-apprl-apprr)-hthick-thin-dot_skip); x1'-x1=x2'-x2=hthick; top y1'=top y2'=-bot_skip; top y1'-bot y1=top y2'-bot y2=dot_size; dot(1,1'); dot(2,2'); endchar; beginchar(bbhebvow[6],8u#+2appr#,0,bot_skip#+heb_size2#); "Hebrew point segol"; center_bar(3,3'); lft x1-apprl=w-apprr-rt x2'=hround 0.5u; x1'-x1=x2'-x2=hthick; top y1'=bot y3+heb_size2=-bot_skip; y2=y1; top y1'-bot y1=top y2'-bot y2=top y3'-bot y3=dot_size; dot(1,1'); dot(2,2'); dot(3,3'); endchar; beginchar(bbhebvow[7],8u#+2appr#,0,bot_skip#+thin#); "Hebrew point patah"; center_bar(3,4); x3-x1=x2-x4=hround u; top y1=top y2=-bot_skip; pickup square.nib; draw z1..z2; labels(1,2); endchar; beginchar(bbhebvow[8],8u#+2appr#,0,bot_skip#+heb_size1#); "Hebrew point qamats"; center_bar(4,5); x3=x4; x5=x6; x2-x5=x4-x1=hround u; bot y4=bot y5=-d; top y1=-bot_skip; y1=y2=y3=y6; pickup square.nib; draw z1..z2; draw z3--z4--z5--z6; labels(1,2,3,4,5,6); endchar; beginchar(bbhebvow[9],8u#+2appr#,x_height#+top_skip#+dot_size#,0); "Hebrew point holam"; italcorr asc_height#*slant-0.5u#; pickup circle.nib; lft x1=apprl-hround u; x1'-x1=hthick; top y1'=h; bot y1=h-dot_size; dot(1,1'); endchar; beginchar(bbhebvow[11],8u#+2appr#,0,bot_skip#+heb_size2#); "Hebrew point qubuts"; center_bar(2,2'); lft x1-apprl=w-apprr-rt x3' =hround min(0,(w-apprl-apprr)/3-hthick-thin-0.5u); x1'-x1=x3'-x3=hthick; top y1'=bot y3+heb_size2=-bot_skip; top y1'-bot y1=top y2'-bot y2=top y3'-bot y3=dot_size; y2=good.y 0.5[y1,y3]; dot(1,1'); dot(2,2'); dot(3,3'); endchar; beginchar(bbhebvow[12],8u#+2appr#, 0.5(-cap_height#+dot_size#)+x_height#,0); "Hebrew point dagesh or mapiq"; pickup circle.nib; top y3=top y4=h; top y3-bot y1=dot_size; y1=y2; lft x1=lft x4=apprl; x2-x1=x3-x4=hthick; pickup square.nib; draw z1--z2--z3--z4--cycle; labels(1,2,3,4); endchar; beginchar(bbhebvow[13],8u#+2appr#,0,bot_skip#+heb_size1#); "Hebrew point meteg"; center_bar(1,2); x1=x4; x2=x3; bot y1=bot y2=-d; top y3=top y4=-bot_skip; pickup square.nib; draw z1--z2--z3--z4--cycle; labels(1,2,3,4); endchar; beginchar(bbhebvow[14],6u#,cap_height#,0); "Hebrew punctuation maqaf (hyphen dash)"; italcorr .5x_height#*slant-.5u#; penpos1(rule_thickness,90); penpos2(rule_thickness,90); top y1r=top y2r=vround(.5h+.5rule_thickness); rt x2=hround(w-u); lft x1=hround .2u; penstroke z1e--z2e; penlabels(1,2); endchar; % humm beginchar(bbhebvow[15],8u#+2appr#,x_height#+top_skip#+thin#,0); "Hebrew point rafe"; italcorr charht*slant-1.5u#; center_bar(3,4); x3-x1=x2-x4=hround u; top y1=top y2=h; pickup square.nib; draw z1..z2; labels(1,2); endchar; beginchar(bbhebvow[16],5u#+2appr#,cap_height#,0); "Hebrew punctuation paseq (vertical)"; italcorr .5x_height#*slant-.5u#; penpos1(rule_thickness,0); penpos2(rule_thickness,0); top y1=h; bot y2=0; x1l=x2l=hround(.5w-.5rule_thickness); penstroke z1e--z2e; penlabels(1,2); endchar; beginchar(bbhebvow[17],8u#+2appr#,x_height#+top_skip#+dot_size#,0); "Hebrew point shin dot"; italcorr charht*slant+0.5u#; pickup circle.nib; rt x1'=w-apprr+hround u; x1'-x1=hthick; bot y1'=x_height+top_skip; top y1'-bot y1=dot_size; dot(1,1'); endchar; beginchar(bbhebvow[18],8u#+2appr#,x_height#+top_skip#+dot_size#,0); "Hebrew point sin dot"; pickup circle.nib; lft x1=apprl-hround u; x1'-x1=hthick; bot y1'=x_height+top_skip; top y1'-bot y1=dot_size; dot(1,1'); endchar; beginchar(bbhebvow[19],5u#+2appr#,cap_height#,0); "Hebrew punctuation sof pasuq (colon)"; if not(odd(w-apprl-apprr)): change_width; fi x0=x0'=0.5[apprl,w-apprr]; y0=floor(h-dot_size/sqrt 2)+0.5; h-y0=y0'; x3r-x1r=sqrt 2*(thick+thin)*(1++slant); y2r-y4r=sqrt2*dot_size; x0=x2r=x4r=0.5[x3r,x1r]; y0=y1r=y3r=0.5[y2r,y4r]; z1a-z1r=(diag_width(thin,z2r-z1r),0); z1b-z1r=(diag_width(thin,z4r-z1r),0); z3a-z3r=(-diag_width(thin,z2r-z3r),0); z3b-z3r=(-diag_width(thin,z4r-z3r),0); z2l-z1a=whatever*(z2r-z1r); z2l-z3a=whatever*(z2r-z3r); z4l-z1b=whatever*(z4r-z1r); z4l-z3b=whatever*(z4r-z3r); z2l-z1l=whatever*(z2r-z1r); z4l-z1l=whatever*(z4r-z1r); z2l-z3l=whatever*(z2r-z3r); z4l-z3l=whatever*(z4r-z3r); forsuffixes $=1,2,3,4: z$'.r-z0'=z$.r-z0; z$'.l-z0'=z$.l-z0; endfor penstroke z1e--z2e--z3e--z4e--cycle; penstroke z1'.e--z2'.e--z3'.e--z4'.e--cycle; penlabels(1,2,3,4,1',2',3',4'); labels(1a,1b,2a,2b); endchar; beginchar(bbhebvow[20],8u#+2appr#,x_height#+top_skip#+dot_size#,0); "Hebrew mark upper dot"; pickup circle.nib; center_bar(1,1'); bot y1'=x_height+top_skip; top y1'-bot y1=dot_size; dot(1,1'); endchar; standard_proofing;% restore extra_endchar. endinput; % from Bigelow and Holmes Unicode's Lucida beginchar(bbhebvow[23],8u#+2appr#,x_height#+top_skip#+dot_size#,0); "Hebrew point breve"; center_bar(4,5); x4-x1=x3-x5=hround u; x2=0.5[x1,x3]; bot y2=x_height+top_skip; top y1-bot y2=dot_size; y1=y3=y4=y5; draw z1 down_to_right z2 right_to_up z3; square_end1(up); square_end3(up); labels(1,2,3,4,5); endchar;