diff options
Diffstat (limited to 'Master/texmf-dist/fonts/source/public/wasy/wasychr.mf')
-rw-r--r-- | Master/texmf-dist/fonts/source/public/wasy/wasychr.mf | 225 |
1 files changed, 225 insertions, 0 deletions
diff --git a/Master/texmf-dist/fonts/source/public/wasy/wasychr.mf b/Master/texmf-dist/fonts/source/public/wasy/wasychr.mf new file mode 100644 index 00000000000..7af4d698df7 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/wasy/wasychr.mf @@ -0,0 +1,225 @@ +% +% These characters should rather be in an character font than in a +% symbol font +% + +cmchar "Cent sign"; +beginchar(hex"67",9u#,asc_height#,desc_depth#); +italcorr x_height#*slant-.2u#; +adjust_fit(0,0); +pickup fine.nib; pos2(vair',90); pos4(vair',270); +x2=x4=.5(w+u); top y2r=vround(x_height+1.5oo); bot y4r=-oo; +pos3(curve,180); lft x3r=hround max(.6u,1.35u-.5curve); y3=.5x_height; +if serifs: pos1(hair,0); pos0(flare,0); + y1=min(bar_height+.5flare+2vair'+2,.9[bar_height,x_height]-.5flare); + rt x1r=hround(w-.7u); bulb(2,1,0); % bulb + pos5(hair,0); rt x5r=hround(w-.5u); + y5=max(good.y(.5bar_height-.9),y4l+vair'); + (x,y4l)=whatever[z4r,z5l]; x4l:=min(x,x4l+.5u); + filldraw stroke pulled_super_arc.e(2,3)(.7superpull) + & pulled_super_arc.e(3,4)(.5superpull) + ..tension .9 and 1..{x5-x4,5(y5-y4)}z5e; % arc and lower terminal +else: pos1(4/7[vair',flare],80); + rt x1r=hround(w-.6u); top y1r=vround .82[bar_height,top y2r]; + filldraw stroke term.e(2,1,right,.8,4); % upper terminal + pos5(.6[vair',flare],275); rt x5r=hround(w-.5u); + y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l; + forsuffixes e=l,r: path p.e; p.e=z4e{right}..tension .9 and 1..z5e; + if angle direction 1 of p.e>75: + p.e:=z4e{right}..tension atleast.9 and 1..{dir 75}z5e; fi endfor + filldraw stroke pulled_super_arc.e(2,3)(.7superpull) + & pulled_super_arc.e(3,4)(.5superpull) & p.e; fi % arc and lower terminal +pickup crisp.nib; +x6=x7=x8=x9=x2; y7=y2; y8=y4; bot y9=-d; y6-y7 = y8-y9; +pos6(bar,0); pos7(bar,0); +pos8(bar,0); pos9(bar,0); +filldraw stroke z6e--z7e; % upper bar +filldraw stroke z8e--z9e; % lower bar +penlabels(0,1,2,3,4,5,6,7,8,9); endchar; + +cmchar "Upside down e"; +beginchar(hex"55",7.25u#+max(.75u#,.5curve#),x_height#,0); +italcorr .5[bar_height#,x_height#]*slant+.5min(curve#-1.5u#,0); +adjust_fit(if monospace: .25u#,.5u# else: 0,0 fi); +numeric left_curve,right_curve; +left_curve=right_curve+6stem_corr=curve if not serifs: -3stem_corr fi; +if right_curve<tiny.breadth: right_curve:=tiny.breadth; fi +if left_curve<tiny.breadth: left_curve:=tiny.breadth; fi +pickup tiny.nib; pos1(right_curve,180); +pos2(vair,270); pos3(left_curve,0); +y1=good.y (h-bar_height); bot y2r=vround (-1.5oo); y0l=top y1; +lft x1r=hround max(.5u,u-.5right_curve); +rt x3r=hround min(w-.5u,w-(1.25u-.5left_curve)); x2=.5w-.25u; +{{interim superness:=more_super; + filldraw stroke super_arc.e(2,1)}}; % left bowl +y3=.5[y2,y4]; top y4r=h+oo; x4=x2-.25u; +if serifs: pos4(vair',90); pos5(hair,180); + y5=min(good.y(h-(.5bar_height-.9)),y4l-vair); x5r=x1r; + (x,y4l)=whatever[z4r,z5]; x4l:=max(x,x4l-.5u); + filldraw stroke pulled_arc.e(2,3) & pulled_arc.e(3,4) + ...{x5-x4,5(y5-y4)}z5e; % right bowl, arc, and terminal +else: pos4(vair,90); + filldraw stroke super_arc.e(2,3) & super_arc.e(3,4); % right bowl and arc + pickup fine.nib; pos4'(vair,90); z4=z4'; + pos5(.5[vair,flare],95); lft x5r=hround(.6u); + y5r=good.y(y5r-1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l; + filldraw stroke term.e(4',5,left,1,4); fi % terminal +path testpath; testpath=super_arc.l(2,3) & super_arc.l(3,4); +y1'r=y0r=y0l-.6[thin_join,vair]; y1'l=y0l; x1'l=x1'r=x1; +forsuffixes $=l,r: + x0$=xpart(((2h,y0$)--(x1,y0$)) intersectionpoint testpath); endfor +fill stroke z0e--z1'e; % crossbar +penlabels(0,1,2,3,4,5); endchar; + +cmchar "Phonetic open o"; +beginchar(hex"6C",8.5u#,x_height#,0); +italcorr x_height#*slant-.2u#; +adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi); +pickup fine.nib; pos2(vair',270); pos4(vair',90); +x2=x4=.5w; top y4r=vround(h+oo); bot y2r=-1.5oo; +pos3(curve,0); rt x3l=hround (w-max(.6u,1.35u-.5curve)); y3=.5h; +if serifs: pos1(hair,180); pos0(flare,180); + y1=h-.70[bar_height,h]+.5flare; + lft x1r=hround(1.0u); bulb(2,1,0); % bulb + pos5(hair,180); lft x5r=hround(1.2u); + y5=min(good.y(h+oo-.45bar_height+.9),y4l-vair'); + (x,y4l)=whatever[z4l,z5r]; x4l:=max(x,x4l-.5u); + filldraw stroke pulled_super_arc.e(2,3)(.7superpull) + & pulled_super_arc.e(3,4)(.5superpull) + ..tension .9 and 1..{x5-x4,5(y5-y4)}z5e; % arc and upper terminal +else: pos1(4/7[vair',flare],260); + lft x1r=hround(.6u); bot y1r=vround (.82[h-bar_height,bot y2r]); + filldraw stroke term.e(2,1,left,.8,4); % lower terminal + pos5(.6[vair',flare],95); lft x5r=hround(1.5u); + y5r=good.y(y5l+h-1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l; + forsuffixes e=l,r: path p.e; p.e=z4e{left}..tension .9 and 1..z5e; + if angle direction 1 of p.e<255: + p.e:=z4e{left}..tension atleast.9 and 1..{dir 255}z5e; fi endfor + filldraw stroke pulled_super_arc.e(2,3)(.7superpull) + & pulled_super_arc.e(3,4)(.5superpull) & p.e; fi % arc and upper terminal +penlabels(0,1,2,3,4,5); endchar; + +cmchar "The small islandic thorn"; +beginchar(hex"69",10u#+serif_fit#,asc_height#,desc_depth#); +italcorr .5x_height#*slant+min(.5curve#-.85u#,-.1u#); +adjust_fit(serif_fit#,0); +pickup tiny.nib; pos1(stem',0); pos2(stem,0); +pos0'(stem',0); pos0(stem,0); z0l=z0'l; x0'=x1; x0=x2; +lft x1l=hround(2.5u-.5stem'); top y1=h if serifs: +min(oo,serif_drop) fi; +numeric edge; edge=rt x2r; +pickup fine.nib; pos3(if hefty:thin_join else: hair fi,180); +pos4(vair',90); pos5(curve,0); pos6(vair,-90); penpos7(x3l-x3r,-180); +rt x3l=max(rt x3l-(lft x3r-tiny.lft x2l), 1/3[rt x2,edge]); +y3=1/8[bar_height,x_height]; +x4l=w-.5(w-serif_fit)+.5u; top y4r=x_height+oo; +rt x5r=hround min(w-1.35u+.5curve,w-.6u); y5=.5x_height; +x6l=x4l-.2u; bot y6r=-oo; +x7=x3; y7=min(y3,y6+y4-y3+.6vair); +(x,y4r)=whatever[z3l,z4l]; x4r:=min(x,.5[x5r,x4]); +(x',y6r)=whatever[z7l,z6l]; x6r:=min(x',.5[x5r,x6]); +filldraw stroke z3e{up}...{right}z4e&super_arc.e(4,5) + &super_arc.e(5,6)&z6e{left}...{up}z7e; % bowl +y0=ypart(((edge,x_height)--(edge,0)) intersectionpoint + (z3l{up}...{right}z4l)); +pickup tiny.nib; bot y2=-d; +filldraw stroke z1e--z0'e--z0e--z2e; % stem +pickup crisp.nib; pos8(hair,0); pos7'(stem,0); +z7'=z2; x8l=x7'l; bot y8=0; +filldraw stroke z7'e--z8e; % point +if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); % upper serif + dish_serif(2,0,b,1/3,jut,c,1/3,jut); fi % lower serif +penlabels(0,1,2,3,4,5,6,7,8); endchar; + +cmchar "Uppercase Thorn"; +beginchar(hex"6A",12u#,cap_height#,0); +italcorr .5cap_height#*slant-.5u#; +adjust_fit(cap_serif_fit#,0); +pickup tiny.nib; penpos1(cap_stem'-tiny,0); penpos2(cap_stem-tiny,0); +pos0(cap_stem',0); pos0'(cap_stem,0); +lft x1l=hround max(2u,3u-.5cap_stem'); top y1=h; bot y2=0; +x1l=x2l=x0l=x0'l; y0=y0'=y7; +penpos3(cap_band,90); penpos4(cap_band,90); +penpos5(cap_curve if hefty:-3stem_corr fi,0); +penpos6(.5[vair,cap_band],-90); penpos7(.5[vair,cap_band],-90); +y4=y3; y5=.5[y4l,y6l]; y6=y7; +x3=x7=x2; x4=x6=.5w+.75u; x5r=hround(w-u); +y3r=vround(.80h); +y7r=vround(.20h); +x4l:=x6l:=x4-.25cap_curve; +filldraw stroke z1e--z0e--z0'e--z2e; % stem +fill stroke z3e..pulled_arc.e(4,5) & pulled_arc.e(5,6)..z7e; % lobe +if serifs: dish_serif(1,0,a,1/3,cap_jut,b,1/3,cap_jut); % upper serif + dish_serif(2,0',c,1/3,cap_jut,d,1/3,cap_jut); fi % lower serif +math_fit(0,ic#-2.5u#); penlabels(0,1,2,3,4,5,6,7); endchar; + +cmchar "Islandic edh"; +beginchar(hex"6B",9u#,asc_height#,0); +italcorr .8x_height#*slant; +adjust_fit(0,0); +penpos1(vair,90); penpos3(vair',-90); +penpos1'(hair,0); +penpos2(curve,180); penpos4(curve,0); penpos4'(curve,0); +penpos5(curve,0); penpos6(curve,0); +x2r=hround max(.5u,1.25u-.5curve); +x4r=w-x2r; x1=x3=.5w; y1r=x_height; y3r=-oo; +y2=y4=.5(x_height-oo)-vair_corr; y2l:=y4l:=.5x_height; +y4'=y4+1.5u; x4'=x4; +top y6 = h; +x6= if monospace: 2/3 else: 1/3 fi [x2,x5]; +y5=0.66[y4',y6]; +x5=0.60[x4',x6]; +z1' = z4'; +penstroke pulled_arc.e(1',1) + & pulled_arc.e(1,2) & pulled_arc.e(2,3) + & pulled_arc.e(3,4)..z4'e..z5e---z6e; % bowl and stem +numeric newstem; newstem = .5[hair,.7stem]; +penpos7(newstem,-45); penpos8(newstem,-45); +top y8l = h; +bot y7r = .12[top y1r,h]; +(x8-x7)/(y6-y5) = (y8-y7)/(x5-x6); +z=.5[z7,z8]; % make bar symmetric +(y6-y)/(y6-y5) = (x6-x)/(x6-x5); +penstroke z7e--z8e; % bar +penlabels(1,2,3,4,5,6,7,8); endchar; + +cmchar "Permille sign"; +cmchar "Per mille sign"; +beginchar(hex"68",9u#+max(9u#,3fudge*(hair#+stem#)), + body_height#,body_height#-asc_height#); +italcorr if hefty: .4asc_height#*slant-.5u# else: h#*slant-u# fi; +adjust_fit(0,0); pickup fine.nib; +numeric left_curve,right_curve; +left_curve=hround 5/6[fudged.hair,fudged.stem]; +right_curve=max(fine.breadth,hround(fudged.hair if hefty:-2stem_corr fi)); +pos1(vair,90); pos2(left_curve,180); pos3(vair,270); pos4(right_curve,360); +top y1r=h; lft x2r=hround u; rt x4r=hround(.35w-u); +bot y3r=floor(if monospace: .7 else: .5 fi\\ asc_height); +x1=x3=.5[x2,x4]; y2=y4=.5[y1,y3]; +filldraw stroke pulled_super_arc.e(1,2)(superpull) + & pulled_super_arc.e(2,3)(superpull); % left half of upper bowl +filldraw stroke super_arc.e(3,4) & super_arc.e(4,1); % right half of upper bowl +pos5(vair,90); pos6(left_curve,180); pos7(vair,270); +pos8(right_curve,360); +bot y7r=-d; rt x8r=hround(.70w-u); x6-x8 = x2-x4; +top y5r=vround(if monospace: .3 else: .5 fi\\ asc_height); +x5=x7=.5[x6,x8]; y6=y8=.5[y5,y7]; +filldraw stroke pulled_super_arc.e(5,6)(superpull) + & pulled_super_arc.e(6,7)(superpull); % left half of lower bowl +filldraw stroke super_arc.e(7,8) & super_arc.e(8,5); % right half of lower bowl +pos5'(vair,90); pos6'(left_curve,180); pos7'(vair,270); +pos8'(right_curve,360); +bot y7'r=-d; rt x8'r=hround(w-u); x6'-x8' = x6-x8; +top y5'r=vround(if monospace: .3 else: .5 fi\\ asc_height); +x5'=x7'=.5[x6',x8']; y6'=y8'=.5[y5',y7']; +filldraw stroke pulled_super_arc.e(5',6')(superpull) + & pulled_super_arc.e(6',7')(superpull); % left half of lower bowl +filldraw stroke super_arc.e(7',8') & super_arc.e(8',5'); % right half of lower bowl +pickup rule.nib; top y9=h; bot y10=-d; +if hefty: x9=good.x(x5-eps); x10=good.x(x1+eps); + draw z9--z10; % diagonal +else: rt x9=hround(.67w-2.5u); lft x10=hround 2.5u; draw z9--z10; % diagonal + pickup fine.nib; pos9(rule_thickness,angle(z9-z10)+90); + pos11(vair,angle(z1r-z4r)-90); pos12(vair,angle(z9-z10)+90); + path p; p=super_arc.r(1,4); z11r=point 2/3 of p; z12r=z9r; + filldraw stroke z11e{direction 2/3 of p}...{z9-z10}z12e; fi % link +penlabels(1,2,3,4,5,6,7,8,9,10,11,12); endchar; |