% tipagerm.mf: TIPA symbols for germanic languages % Copyright 1996-2003 FUKUI Rei % % This program may be distributed and/or modified under the % conditions of the LaTeX Project Public License, either version 1.2 % of this license or (at your option) any later version. % The latest version of this license is in % http://www.latex-project.org/lppl.txt % and version 1.2 or later is part of all distributions of LaTeX % version 1999/12/01 or later. % % This program consists of all files listed in Manifest.txt. % % Version 1.2 2003/01/01 % % This font is based on: % Computer Modern font series by D. E. Knuth, % DC fonts by J"org Knappen and % TSIPA by KOBAYASHI Hajime, FUKUI Rei and SHIRAKAWA Shun. % % The next codes are from cmman. cmchar "Thorn"; beginchar(oct"376",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(side_gap-.5stem'); top y1=h; 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); rt x3l=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; x6=x3; bot y6r=-oo; (x,y4r)=whatever[z3l,z4l]; x4r:=min(x,.5[x5r,x4]); filldraw stroke z3e{up}...{right}z4e&super_arc.e(4,5) &z5e{down}...{5(x6-x5),y6-y5}z6e; % bowl y0=ypart(((edge,h)--(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,8); endchar; cmchar "Wynn"; beginchar(oct"337",9u#+serif_fit#,x_height#,desc_depth#); italcorr .5x_height#*slant+min(.5curve#-.75u#,.1u#); adjust_fit(serif_fit#,0); pickup tiny.nib; pos2(stem,if serifs:0 else: 15 fi); pos0'(stem',0); pos0(stem,0); pos1(stem',0); z0l=z0'l; x0'=x1; x0=x2; lft x1l=hround(side_gap-.5stem');top y1=h; pickup fine.nib; pos3(vair,90); pos4(vair,90); pos5(curve,0); pos6(vair,-90); pos7(vair,-90); x3=x7=x0; x4+.5u=x6=.6w; top y4r=x_height; y4-y3=y6-y7; rt x5r=hround min(w-1.35u+.5curve,w-.6u); y5=.6x_height; bot y6r=.1x_height-oo; bot y7r=-oo; y0=y3; pickup tiny.nib; bot y2=if serifs: -.7d; else: -d; fi filldraw stroke z1e--z0'e--z0e--z2e; % stem filldraw stroke z3e--z4e{z6-z7}...z5e{down}...{z7-z6}z6e--z7e; if serifs: pickup crisp.nib; pos10(stem,0); pos11(vair,-90); z10=z2; lft x11l=x22=.5u; y11l=-d-oo; varm(10,11,a,.8beak_darkness,-1.5beak_jut); pickup crisp.nib; pos21(stem',0); pos22(vair,90); z21=(x1,.6h); y22r=y4r; varm(21,22,b,.8beak_darkness,-1.3beak_jut); fi penlabels(0,0',1,2,3,4,5,6,7,8,9,10,11,21,22); endchar; cmchar "H-V ligature"; beginchar(oct"377",13.8u#,asc_height#,0); italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-u#; adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#); pickup tiny.nib; pos1(stem,0); pos2(stem,0); pos1'(stem',0); pos2'(stem',0); pos3(stem,0); lft x1l=hround(side_gap-.5stem); x1l=x1'l=x2l=x2'l; x3=w-x1-3.8u; top y1=h; bot y2=0; y1=y1'; y2=y2'; filldraw stroke z1'e--z2'e; % left stem y3=1/3[bar_height,x_height]; penpos2''(x2r-x2l,0); x2''=x2; y2''=1/8[bar_height,x_height]; filldraw stroke z2''e--z2e; % thicken the lower left stem penpos a0(min(rt x2r-lft x2l,thin_join)-fine,180); pickup fine.nib; rt x a0l=tiny.rt x2r; y a0=y2''; pos a1(vair,90); pos3'(x3r-x3l+tiny,0); z3'=z3; x a1=.5[rt x a0l,rt x3'r]; top y a1r=x_height+oo; (x a,y a1l)=whatever[z a1r,z a0l]; x a1l:=x a; filldraw stroke z a0e{up}...{right}z a1e &{{interim superness:=hein_super; super_arc.e(a1,3')}}; % arch labels(a0); penlabels(a1); if serifs: sloped_serif.l(1',2',b,1/3,jut,serif_drop); % upper left serif numeric inner_jut; pickup tiny.nib; if rt x2r+jut+.5u+1<=lft x3l-jut: inner_jut=jut; else: rt x2r+jut+.5u+1=lft x3l-inner_jut; fi dish_serif(2,1,c,1/3,jut,d,1/3,jut); fi % lower left serif pickup tiny.nib; interim superness:=more_super; pos3''(stem,180);y3''=y3; pos4(stem,180); x4=x3''=x3; pos5(vair,-90); pos6(hair,0); x5=x4+2.8u; rt x6r=hround(w-.7u); y4=.4h; bot y5r=-oo; y6=.4h; filldraw stroke z3''e{down}--super_arc.e(4,5) % v stroke ..tension atleast 1.05..{up}z6e; % left stem and arc v_bulb(6,7); % closing bulb penlabels(1,2,3,4,5,6,7); endchar; cmchar "Comma-tail Z"; beginchar(oct"336",9u#,x_height#,desc_depth#); italcorr x_height#*slant-.5serif_fit#-1u#; adjust_fit(0,.5serif_fit#); numeric arm_thickness[],z_stem; arm_thickness1=vair; arm_thickness2=1.2vair; z_stem=.9[vair,stem]; pickup tiny.nib; rt x1r=rt x2r=hround(.89w-.8u); lft x3l=lft x4l=hround .5u; top y1=h; y2=min(y1,h-2/3arm_thickness1); bot y4=0; y3=max(y4,2/3arm_thickness2); numeric alpha; alpha=diag_ratio(1,z_stem-tiny,y2-y3,x2r-x3l-slant*(y2-y3)); penpos1(alpha*(z_stem-tiny),0); penpos2(alpha*(z_stem-tiny),0); penpos3(alpha*(z_stem-tiny),0); penpos4(alpha*(z_stem-tiny),0); pair delta; delta=penoffset z3-z2 of currentpen; fill top lft z1l--z2l+delta---z3l+delta..lft z3l---lft z4l..bot z4l ---bot rt z4r--z3r-delta---z2r-delta..rt z2r---rt z1r..top z1r ---cycle; % diagonal pickup tiny.nib; pos5(arm_thickness1,90); pos6(hair,180); top y5r=h; x5=x1; lft x6r=hround .75u; y6=good.y(y5l-beak/1.4)-eps; arm(5,6,a,beak_darkness,-.4beak_jut); % upper arm and beak pos7(arm_thickness2,90); pos8(arm_thickness2,90); x7=x4; bot y8l=bot y7l=y8'=0; x8=x5-1.5u; if serifs: pos9(hair,0); pos10(vair,-90); pos11(vair,-100); else: pos9(fudged.hair,0); pos10(vair,-90); pos11(vair,-100); fi y9=-.4d; rt x9r =hround(w-1.5u+.5hair); y10=-.8d; y11=-.7d; x11=.5[x3,x9]; x9-x10=x10-x11; filldraw stroke z7e--z8e{right}..z9e{down}..{left}z10e..z11e; penlabels(1,2,3,4,5,6,7,8,9,10,11); endchar; % end of tipagerm.mf