%% Metafont code for trope and miscellaneous other characters. %% This part of the Makor2 package for typesetting Hebrew with Omega. %% (Alan Hoenig, July 2002) mode_setup; designsize:=10pt#; hu#=2pt#; % horizontal unit vu#=2pt#; % vertical unit define_pixels(hu,vu); pair picshift; def beginlowvowel(expr num, vwidth, vdepth)= beginchar(num, vwidth, 0pt#, vdepth); picshift:=(0,-1pt) enddef; def beginhivowel(expr num, vwidth, vht)= beginchar(num, vwidth, vht, 0pt#); picshift:=(0,1pt) enddef; extra_endchar:="currentpicture:=currentpicture shifted picshift;"; def pickupmypen=pickup pencircle scaled 2r enddef; %% Some cantorial vowels require placement not at the axis of visual %% centering, but rather at the left or right edge of a letter. We signal %% this using the italic correction `italcorr' command. A value of 1pt# %% means the right edge, a value of -1pt# means the left edge, and a %% value of 0pt# (the defult) means we use the normal axis of placement. leftedge:=.5pt#; rightedge:=1pt#; beginlowvowel(33, .75hu#, vu#); % etnahta z1=(0, -d); z3=(w, y1); z2=(.5w, -.33d); z4=(x2, 0); pickup pencircle scaled .5pt; draw z1{up}..z2..{down}z3; draw z2--z4; endchar; beginhivowel(34,hu#,vu#); % trope segol r:=.4pt; pickup pencircle scaled 2r; z0=(r,r); z1=(.5w, h-r); z2=(w-x0, y0); drawdot z0; drawdot z1; drawdot z2; endchar; beginhivowel(35, .8hu#, 2vu#); % shalshelet r:=.15pt; pickup pencircle scaled 2r; x0=x2=x4=x6=w-r; x1=x3=x5=r; y0=r; y6=h-r; y2-y0=y4-y2=y6-y4; y1=.5[y0,y2]; y5=h-y1; y3-y1=y5-y3; draw z0---z1---z2---z3---z4---z5---z6; endchar; beginhivowel(36, .8pt#, 1.8pt#); % zaqef qatan r:=.3pt; pickupmypen; z0=(.5w, r); z1=(x0, h-r); drawdot z0; drawdot z1; endchar; beginhivowel(37, 1.5pt#, 1.8pt#); % zaqef gadol r:=.3pt; pickupmypen; z0=(w-r,r); z1=(x0, h-r); drawdot z0; drawdot z1; r:=.2pt; pickup penrazor xscaled 2r; z2=(r,0); z3=(x2,h); draw z2--z3; endchar; beginlowvowel(38, hu#, vu#); % tipeha r:=.3pt; pickupmypen; z0=(r, -r); z1=(w-r,-d+r); draw z0{down}..{right}z1; endchar; beginhivowel(39, .7hu#, 1.3vu#); % revia z0=(.5w,0); z1=(w,.5h); z2=(x0,h); z3=(0,.5h); pickup penspeck; filldraw z0--z1--z2--z3--cycle; endchar; beginhivowel(40, 1.7hu#, .8vu#); % zarqa r:=.25pt; z0=(r,r); z0'=(.25w, h-r); z1=(.5w,.5h); z1'=(w-x0',r); z2=(w-r,h-r); pickupmypen; draw z0{up}..{right}z0'..z1..z1'{right}..{up}z2; endchar; r#:=.2pt#; define_pixels(r); beginhivowel(41, 2 r#, vu#); % pashta italcorr leftedge; pickupmypen; z0=(0,0); z1=(-hu,h); draw z0..{left}z1; endchar; beginlowvowel(42, 2r#, 1vu#); % yetiv italcorr rightedge; pickupmypen; z1=(r, -.5d); x0=x2= 2hu; y0=-r; y2=-d; draw z0--z1--z2; endchar; beginlowvowel(43, 1hu#, 1vu#); % tevir pickupmypen; z0=(w-r,-r); z1=(r,-d+r); draw z0..{left}z1; r'=1.4r; z2=(r',-r'); pickup pencircle scaled 2r'; drawdot z2; endchar; beginhivowel(44,2r#,vu#); % geresh z0=(r,r); z1=(hu,h); pickupmypen; draw z0{up}..z1; endchar; beginhivowel(45,2r#,vu#); % geresh muqdam italcorr rightedge; z0=(r,r); z1=(hu,h); pickupmypen; draw z0{up}..z1; endchar; beginhivowel(46, .8hu#, 1.2vu#); % gershayim r':=.6r; pickup pencircle scaled 2r'; z0=(r,r); z1=(1.4w-r,h-r); z0'=z0+(w,0); z1'=z1+(w,0); draw z0{up}..z1; draw z0'{up}..z1'; endchar; beginhivowel(47,2.625hu#,.7vu#); % qarney para r':=.6r; pickup pencircle scaled 2r'; path circ; circ=fullcircle scaled 2(h-2r) shifted (h-2r,.5h); z99=(h-2r,.5h); z0=(.5w-r,-r); z1=.5[z0,z99]; draw circ; draw z1--z0; path circ; circ=fullcircle scaled 2(h-2r) shifted (w-h+2r,.5h); draw circ; z0'=(w-x0,y0); z1'=(w-x1,y1); draw z0'--z1'; endchar; beginhivowel(48,0pt#,.7vu#); % telisha gedola; sticks out at right italcorr rightedge; r':=.6r; pickup pencircle scaled 2r'; path circ; circ=fullcircle scaled 2(h-2r) shifted (h,.5h); z99=(h-2r,.5h); z0=(-r,-r); z1=.5[z0,z99]; draw circ; draw z1--z0; endchar; beginhivowel(49, 2r#, vu#); % pazer z0=(.5w,0); z1=(x0,h); pickup penrazor xscaled 2r; draw z0--z1; z2=.4[z0,z1]; z3=(.7hu,y1-r); pickupmypen; draw z2{right}..{up}z3; endchar; %% char 50 reserved... beginlowvowel(51, .4hu#, vu#); % munah pickup penrazor xscaled 2r; z0=(w-r,0); z1=(x0,-d); draw z0--z1; pickup penrazor xscaled 2r rotated 90; z3=(w,-d+r); z4=(-.3hu,y3); draw z3--z4; endchar; beginlowvowel(52,hu#, 1.2vu#); % mahapakh pickupmypen; x1=r; x0=x2=w-x1; y0=-r; y2=-d+r; y1=.5[y0,y2]; draw z0--z1--z2; endchar; beginlowvowel(53,hu#,vu#); % merkha pickupmypen; z0=(w-r, -r); z1=(r,-d+r); draw z0{down}..{left}z1; endchar; beginlowvowel(54,1hu#,1vu#); % merkha kefula pickupmypen; z0=(hu-r, -r); z1=(r,-d+r); path trope; trope=z0{down}..{left}z1; draw trope; draw trope shifted (-.75w,0); endchar; beginlowvowel(55, .85hu#, 1.2vu#); % darga x0=x2=w-r; x1=x3=r; y0=-r; y3=-d+r; y1=-.2d; y2=-d-y1; pickupmypen; draw z0--z1--z2--z3; endchar; beginhivowel(56, 2r#, vu#); % qadma pickupmypen; z0=(r,r); z1=(-.7hu,vu); draw z0{up}..z1; endchar; beginhivowel(57, 0pt#, .7vu#); % telisha qetana; sticks out at left italcorr leftedge; r':=.6r; pickup pencircle scaled 2r'; path circ; circ=fullcircle scaled 2(h-2r) shifted (-h,.5h); z99=(-h+2r,.5h); z0=(r,r); z1=.5[z0,z99]; draw circ; draw z1--z0; endchar; beginlowvowel(58, .75hu#, vu#); % yerah ben yomo r':=.25pt; pickup pencircle scaled 2r'; z1=(r,-r); z3=(w,y1); z2=(.5w, -.67d); z4=(x2,-d+r); draw z1{down}..z2..{up}z3; draw z2--z4; endchar; beginhivowel(59, hu#, vu#); % ole pickupmypen; z0=(w-r,r); z2=(x0,h-r); z1=(w-x0,.5h); draw z0--z1--z2; endchar; beginhivowel(60, hu#, vu#); % iluy pickupmypen; draw (r,r)--(w-r,r)--(w-r,h-r); endchar; beginlowvowel(61, 2r#, vu#); % dehi, whatever that is! italcorr rightedge; pickupmypen; draw (r,-r){down}..{right}(hu-r,-vu+r); endchar; beginhivowel(62, 0pt#, .8vu#); % zinor italcorr leftedge; r':=.25pt; pickup pencircle scaled 2r'; myw=1.7hu; pair offset; offset=(myw,0); z0=(0,r); z0'=(.25myw, h-r); z1=(.5myw,.5h); z1'=(myw-x0',r); z2=(myw-r,h-r); draw (z0{up}..{right}z0'..z1..z1'{right}..{up}z2) shifted -offset; endchar; beginhivowel(63, 1.1hu#, 1.1vu#); % masora circle pickupmypen; draw fullcircle scaled .5w shifted (.5w,.5h); endchar; beginchar(64, 0pt#,1pt#,0pt#); % first null trope (rightedge) pickup penspeck; drawdot origin; endchar; beginchar(65, 0pt#,.5pt#,0pt#); % second null trope (leftedge) pickup penspeck; drawdot origin; endchar; %% Some special characters and symbols... beginchar(80, 0pt#, 7.5pt#, .5pt#); % long vertical bar (paseq) z0=(0,-d); z1=(x0,h); pickup pencircle scaled .8pt; draw z0--z1; endchar; beginchar(81, 0pt#, 7.5pt#, 0pt#); % upper dot dwidth:=.4pt; z0=(0,h+dwidth); pickup pencircle scaled 2dwidth; drawdot z0; endchar; beginchar(139, 6pt#, 7pt#, 0pt#); % new shekel dwidth:=.3pt; pickup pencircle scaled 2dwidth; z0=(dwidth, h-dwidth); 8*dwidth+3*hfudge=w; z1''=(x0,dwidth); z2''=(w-3dwidth-hfudge,y1''); z3=(x2'',.7h-dwidth); z4=(w-x0,y1''); z5''=(x4,y0); z6''=(3dwidth+hfudge,y5''); z7=(x6,h-y3); z1=(x0,y1''+2dwidth); z1'=(x1''+2dwidth,y1''); z2'=(x2''-2dwidth,y1'); z2=(x2'',y2''+2dwidth); z5=(x5'',y5''-2dwidth); z5'=(x5''-2dwidth,y5''); z6'=(x6''+2dwidth,y5'); z6=(x6'',y5''-2dwidth); draw z0---z1{down}..{right}z1'---z2'{right}..{up}z2---z3; draw z4---z5{up}..{left}z5'---z6'{left}..{down}z6---z7; endchar; beginchar(240, 5pt#, 6pt#, 0pt#) % generic box pickup pencircle scaled .3pt; draw origin--(w,0)--(w,h)--(0,h)--cycle; endchar; bye.