def n_foot(suffix \$) = w':=7.806u; penpos\$.1(hair,90); penpos\$.2(hair,0); penpos\$.3(hair,-90); y\$.1=y\$.3=0.5foot; y\$.2=-apex_o; x\$.1=x\$l-1/20w'; x\$.3=x\$r+1/20w'; x\$.2=x\$; filldraw z\$.2r{dir75}..z\$.3r{dir15}-- z\$.3l{dir165}..z\$r{up}--z\$l{down}.. z\$.1r{dir195}--z\$.1l{dir-15}..z\$.2l{dir-65} --z\$.2r & cycle; enddef; def o_umlaut(suffix \$) = pickup pensquare yscaled 0.5hair xscaled 0.3[hair,stem] rotated 30; z\$.1=z\$+(0,0.1x_height); z\$.2=z\$.1+(stem,0.1x_height); x\$.3=x\$.2; y\$.3=y\$.2+0.1x_height; x\$.4=x\$.1; y\$.4-y\$.3=y\$.2-y\$.1; x\$.5+x\$.3=2x\$.4; y\$.5=y\$.3; x\$.6+x\$.2=2x\$.1; y\$.6=y\$.2; draw z\$.1--z\$.2--z\$.3--z\$.4--z\$.5--z\$.6--z\$.1; penlabels(z\$.1,z\$.2,z\$.3,z\$.4,z\$.5,z\$.6); enddef; def e_umlaut(suffix \$) = penpos\$.1(2u,45); z\$.1=z\$; pickup pensquare yscaled 0.5hair xscaled 0.3[hair,stem] rotated 30; z\$.2=z\$.1r; z\$.3=z\$.1l; rt x\$.4=rt x\$.2; top y\$.4=y\$; draw z\$.3--z\$.2..z\$.3..z\$.4; enddef; def cap_e_umlaut(suffix \$) = penpos\$.1(2u,45); z\$.1=z\$; pickup pensquare yscaled 0.5hair xscaled 0.3[hair,stem] rotated 30; z\$.2=z\$.1r; z\$.3=z\$.1l; rt x\$.4=rt x\$.2; top y\$.4=y\$; draw z\$.3--z\$.2..z\$.3..z\$.4; enddef; def pointpoint = penpos1(0.23570*(x_height+2apex_o),45); penpos2(0.23570*(x_height+2apex_o),45); penpos3(0.23570*(x_height+2apex_o),45); penpos4(0.23570*(x_height+2apex_o),45); penpos5(0.23570*(x_height+2apex_o),45); penpos6(0.23570*(x_height+2apex_o),45); x1l=x3l=x5l=0.5w; z2r=z3l; z4r=z5l; z2-z1=whatever*dir135; z4-z3=whatever*dir135; z6-z5=whatever*dir135; y1l=-apex_o; y6r=x_height+apex_o; penstroke z1e--z2e; enddef; def pointaccent(suffix \$) = penpos1(0.23570*(x_height+2apex_o),45); penpos2(0.23570*(x_height+2apex_o),45); penpos3(0.23570*(x_height+2apex_o),45); penpos4(0.23570*(x_height+2apex_o),45); penpos5(0.23570*(x_height+2apex_o),45); penpos6(0.23570*(x_height+2apex_o),45); x1l=x3l=x5l=x\$; z2r=z3l; z4r=z5l; z2-z1=whatever*dir135; z4-z3=whatever*dir135; z6-z5=whatever*dir135; y1l=-apex_o+y\$+0.1x_height; y6r=1.1x_height+apex_o+y\$; penstroke z1e--z2e; enddef; def old_e_umlaut(suffix \$) = numeric ww; ww:=2u; penpos\$.1(hair,147); penpos\$.2(1.5hair,90); penpos\$.3(2.5hair,0); penpos\$.4(1.2hair,-90); penpos\$.5(hair,-147); penpos\$.6(hair,-57); penpos\$.7(hair,-57); z\$.1=z\$+(0.4ww,-0.2ww); z\$.2l=z\$-(0.111ww,0.556ww); z\$.3l=z\$-(0.5ww,apex_o); z\$.4l=(x\$,y\$+0.556ww); z\$.6-z\$=whatever*dir33; x\$.6r=x\$+0.5ww; z\$.5l=z\$.6l; z\$.7=whatever[z\$,z\$.6]; x\$.7=x\$.3; penstroke z\$.1e..z\$.2e{left}..z\$.3e{up} ..z\$.4e{right}..z\$.5e; penstroke z\$.7e--z\$.6e enddef; def umlaut (suffix \$) = y0=0; 0.5[x0,x0']=x\$-2u; z0'=z0+(2.5u,0); penpos60(hair,145); z60=(x0+stem,y\$+0.090x_height); z61=(x0+1.522stem,y\$+0.387x_height); z62=(x0+1.956stem,y\$+0.324x_height); z60'=(x0'+stem,y\$+0.090x_height); z61'=(x0'+1.522stem,y\$+0.387x_height); z62'=(x0'+1.956stem,y\$+0.324x_height); filldraw z60l{dir34}..z62{up}..z61{left} ..z60r{dir259}--z60l & cycle; penpos60'(hair,145); filldraw z60'l{dir34}..z62'{up}..z61'{left} ..z60'r{dir259}--z60'l & cycle enddef; % hacek for d, t, l % added by V. Kurz 2002 def makcen (suffix \$) = y0=0; x0=x\$; penpos60(hair,145); z60=(x0+stem,y\$+0.090x_height); z61=(x0+1.522stem,y\$+0.387x_height); z62=(x0+1.956stem,y\$+0.324x_height); filldraw z60l{dir34}..z62{up}..z61{left} ..z60r{dir259}--z60l & cycle; enddef; def hat (suffix \$) = z60=(x\$-2.5u,0.090x_height+y\$); z61=(x\$+0.3u,0.387x_height+y\$); x62=x\$-0.3u; y62=0.3333*(2y60+y61); y60'=y60; x60'+x60=2x\$; filldraw z60--z61--z60'{left}..z62..{left}cycle; enddef; def hungarum (suffix \$) = z60=(x\$-2.5u-0.25stem,0.090x_height+y\$); z63=z60+(0.5stem,0); z61=(x\$,0.387x_height+y\$); z62=z61+(stem,0); filldraw z60--z61--z62--z63--cycle; filldraw z60--z61--z62--z63--cycle shifted (2.5u,0); enddef; def ellbar (suffix \$) = z60=(x\$,y\$-0.5u); z61=(x\$+3.5u,0.5u+y\$); pickup pensquare scaled 2hair; draw z60--z61; enddef; def hacek (suffix \$) = z60=(x\$-2.5u,0.387x_height+y\$); z61=(x\$-0.3u,0.090x_height+y\$); x62=x\$+0.3u; y62=0.3333*(2y60+y61); y60'=y60; x60'+x60=2x\$; filldraw z60--z61--z60'{left}..z62..{left}cycle; enddef; def breve (suffix \$) = z60=(x\$-2.5u,0.387x_height+y\$); z61=(x\$-0.3u,0.090x_height+y\$); x62=x\$+0.3u; y62=0.3333*(2y60+y61); y63=y60; x63+x60=2x\$; z60'=z60+(0,hair); z63'=z63+(0,hair); filldraw z60..{right}z61{right}..z63--z63'..{left}z62{left}..z60'--cycle; enddef; def tilde (suffix \$) = z60=(x\$-2.1u,0.090x_height+y\$); z61=(x\$-u,0.387x_height+y\$); z62=(x\$+u,0.090x_height+y\$); z63=(x\$+2.1u,0.387x_height+y\$); pickup pensquare xscaled stem yscaled hair rotated 30; draw z60...{right}z61..z62{right}...z63; enddef; def cedilla (suffix \$) = pickup pensquare scaled hair; z60=z\$; z61=z60+whatever*dir(ext_angle(-45)); z63=z61+whatever*dir(ext_angle(60)); x62+x61=2x\$; y62=y\$-0.30x_height; y61=y62 + 0.2*(y60-y62); y63=y60 - 0.4*(y60-y62); penpos60(hair,ext_angle(60)); penpos61(stem,ext_angle(220)); penpos62(stem,ext_angle(220)); penpos63(2hair,0); %penstroke z60e{dir(ext_angle(-20))}..{dir(ext_angle(30))}z61e..{dir(ext_angle(180-20))}z62e; penstroke z62e{dir(ext_angle(-20))}..{dir(ext_angle(45))}z61e{dir(ext_angle(45))}..z63e...z60e; enddef; def cedilla (suffix \$) = pickup pensquare scaled hair; z60=z\$; z61=z60+whatever*dir(ext_angle(-40)); z62=z60+whatever*dir(ext_angle(-70)); z63=z60+whatever*dir(ext_angle(-120)); y62=y\$-0.30x_height; y63=y62+0.35stem; y61=0.5*(y60+y62); penpos63(stem,ext_angle(50)); penpos62(stem,ext_angle(50)); penpos61(0.5stem,ext_angle(50)); penpos60(hair,ext_angle(50)); %penstroke z60e{dir(ext_angle(-20))}..{dir(ext_angle(30))}z61e..{dir(ext_angle(180-20))}z62e; %penstroke z62e{dir(ext_angle(-20))}..{dir(ext_angle(45))}z61e{dir(ext_angle(45))}..z63e...z60e; penstroke z63e{right}..z62e; % penstroke z60e{right}..{left}z61e; penstroke z60e..{right}z61e; pickup pensquare scaled hair rotated ext_angle(50); draw z62l--z61r; enddef; def ogonek (suffix \$) = pickup pensquare scaled hair; z60=z\$; z61=z60+whatever*dir(ext_angle(180+40)); x62=x\$; y62=y\$-0.30x_height; y61=y62 + 0.2*(y60-y62); penpos60(hair,ext_angle(30)); penpos61(stem,ext_angle(220)); penpos62(stem,ext_angle(220)); penstroke z60e{dir(ext_angle(180+20))}..z61e..{dir(ext_angle(20))}z62e; enddef; def acute (suffix \$) = y0=0; 0.5[x0,x0']=x\$-2u; z0'=z0+(2.5u,0); penpos60(hair,145); z60=(x0+stem,y\$+0.090x_height); z61=(x0+1.522stem,y\$+0.387x_height); z62=(x0+1.956stem,y\$+0.324x_height); z60'=(x0'+stem,y\$+0.090x_height); z61'=(x0'+1.522stem,y\$+0.387x_height); z62'=(x0'+1.956stem,y\$+0.324x_height); penpos60'(hair,145); filldraw z60l{dir34}..z62'{up}..z61'{left} ..z60r{dir259}--z60l & cycle enddef; def grave (suffix \$) = y0=0; 0.5[x0,x0']=x\$-2u; z0'=z0+(2.5u,0); penpos60(hair,145); z60=(x0+stem,y\$+0.090x_height); z61=(x0+1.522stem,y\$+0.387x_height); z62=(x0+1.956stem,y\$+0.324x_height); z60'=(x0'+stem,y\$+0.090x_height); z61'=(x0'+1.522stem,y\$+0.387x_height); z62'=(x0'+1.956stem,y\$+0.324x_height); penpos60'(hair,145); filldraw (z60l{dir34}..z62'{up}..z61'{left} ..z60r{dir259}--z60l & cycle) reflectedabout ((x\$,x_height),(x\$,0)); enddef; def cap_grave (suffix \$) = y0=0; 0.5[x0,x0']=x\$-2u; z0'=z0+(2.5u,0); penpos60(hair,145); z60=(x0+stem,1.090x_height-x_height+y\$); z61=(x0+1.522stem,1.387x_height-x_height+y\$); z62=(x0+1.956stem,1.324x_height-x_height+y\$); z60'=(x0'+stem,1.090x_height-x_height+y\$); z61'=(x0'+1.522stem,1.387x_height-x_height+y\$); z62'=(x0'+1.956stem,1.324x_height-x_height+y\$); filldraw (z60l{dir34}..z62'{up}..z61'{left} ..z60r{dir259}--z60l & cycle) reflectedabout ((x\$,x_height),(x\$,0)); enddef; picture last_char;