% This is UPPERFGH.MF % Version 1.0a % Date 8-SEP-1991 % % (c) 1991 by J"org Knappen. See fc.rme for copying conditions % This file is part of the fc-package % See fc.rme for more information % % J"org Knappen % Institut f"ur Kernphysik % Postfach 39 80 % D-W 6500 Mainz % knappen@vkpmzd.kph.uni-mainz.de % Contents: % % The following characters are generated without condition: % % F, G, H % % And the following on demand, i. e. if their code is known: % % long_F, G_dot, ipa_Gamma, crossed_H % % Higher versions of this file might include more characters. cmchar "The letter F"; beginchar("F",11.5u#-width_adj#,cap_height#,0); italcorr cap_height#*slant-beak_jut#-.25u#; adjust_fit(cap_serif_fit#,0); h:=vround(h-stem_corr); pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0); lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); top y1=h; bot y2=0; filldraw stroke z1e--z2e; % stem pickup crisp.nib; pos3(slab,90); pos4(hair,0); top y3r=h; x3=x1; rt x4r=hround(w-.75u); y4=good.y(y3l-beak)-eps; arm(3,4,e,beak_darkness,beak_jut); % upper arm and beak pos5(cap_bar,-90); pos6(hair,0); top y5l=vround(.5[y2,y1]+.5cap_bar); x5=x1; pos0(cap_bar,90); pos7(hair,0); z0=z5; x6=x7; y6-y5l=y0l-y7; if serifs: rt x6r=hround(w-4u+.5hair); y6=good.y(y5l+.6beak)+eps; rt x9r=hround(w-.5u); else: rt x6r=hround(w-1.5u); y6=y5l+eps; rt x9r=hround(w-.75u); fi arm(5,6,f,beak_darkness,0); arm(0,7,g,beak_darkness,0); % middle arm and serif if serifs: nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif dish_serif(2,1,c,1/3,cap_jut,d,1/3,1.25cap_jut); fi % lower serif math_fit(0,ic#-2.5u#); penlabels(0,1,2,3,4,5,6,7,8,9); endchar; iff known long_F: cmchar "Capital letter long F"; % jk, based on cm F and J beginchar(long_F,14.5u#-width_adj#,cap_height#,0); italcorr cap_height#*slant-beak_jut#-.25u#; adjust_fit(0,0); h:=vround(h-stem_corr); jw:=9u; pickup tiny.nib; pos1(cap_stem',0); pos2(cap_stem',0); top y1=h; rt x1r=hround(jw-2u); x2=x1; y2=.21h; if serifs: pos3(vair,-90); pos4(cap_hair,-180); pos5(flare+(cap_stem-stem),-180); bot y3r=-o; x3=.5[x4,x2]; y5=1/6h; rt x5l=hround 2.75u; z5r=z4r; filldraw stroke z1e--z2e&super_arc.e(2,3); % stem and arc bulb(3,4,5); % bulb else: filldraw stroke z1e--z2e; % stem pickup fine.nib; pos3(cap_stem',0); z3=z2; pos4(flare,angle(6.5u,-h)); pos5(1.1flare,-100); bot y4r=-o; x4r=.5[x5r,x3r]; lft x5r=hround.75u; bot y5r=vround.06h-o; filldraw stroke z3e{down}....term.e(4,5,left,1,4); fi % arc and terminal pickup tiny.nib; pos11(cap_stem,0); pos12(cap_stem,0); rt x11r=rt x12r=rt x1r; top y11=h; bot y12=0; pickup crisp.nib; pos13(slab,90); pos14(hair,0); top y13r=h; x13=x11; rt x14r=hround(w-.75u); y14=good.y(y13l-beak)-eps; arm(13,14,e,beak_darkness,beak_jut); % upper arm and beak pos15(cap_bar,-90); pos16(hair,0); top y15l=vround(.5[y12,y11]+.5cap_bar); x15=x11; pos10(cap_bar,90); pos17(hair,0); z10=z15; x16=x17; y16-y15l=y10l-y17; if serifs: rt x16r=hround(w-4u+.5hair); y16=good.y(y15l+.6beak)+eps; rt x19r=hround(w-.5u); else: rt x16r=hround(w-1.5u); y16=y15l+eps; rt x19r=hround(w-.75u); fi arm(15,16,f,beak_darkness,0); arm(10,17,g,beak_darkness,0);%middle arm and serif if serifs: nodish_serif(11,12,a,1/3,cap_jut,b,1/3,.5cap_jut);fi% upper serif math_fit(0,ic#-2.5u#); penlabels(1,2,3,4,5,10,11,12,13,14,15,16,17,18,19); endchar; cmchar "The letter G"; if serifs: beginchar("G",14u#,cap_height#,0); italcorr cap_height#*slant-1.5u#-.5cap_serif_fit#; adjust_fit(0,.5cap_serif_fit#); pickup tiny.nib; pos0(cap_stem,0); pos7(cap_stem,0); rt x0r=hround(w-2u); y0=good.y(.1[bar_height,x_height]+1); x7=x0; pickup fine.nib; if hefty: bot y7=0; pos5(cap_stem,0); x5=x0; top y5=tiny.top y0; else: pos5(cap_hair,0); pos8(cap_stem,0); y7=.5bar_height; z5l=z8l; z8=z7; x9=x8r; bot y9=0; filldraw z8l{down}..{4(x9-x8),y9-y8}z9--z8r--cycle; fi % spur pos1(cap_hair,0); pos2(cap_band,90); pos3(cap_curve,180); pos4(cap_band,270); rt x1r=hround(w-2u); lft x3r=hround u; x2=x4=.55[x3,x1]; top y2r=h+o; bot y4r=-o; y3=.5[y2,y4]; bot y1=min(vround max(.6h,x_height-.5vair),bot y2l-eps); (x2l',y2l)=whatever[z2r,z1l]; x2l:=min(x2l',x2l+.5u); (x4l',y4l)=whatever[z4r,z5l]; x4l:=min(x4l',x4l+.5u); filldraw stroke z1e{x2-x1,10(y2-y1)} ...pulled_arc.e(2,3) & pulled_arc.e(3,4)...z5e{up}; % arc pos6(.3[fine.breadth,cap_hair],0); x6r=x1r; top y6=h+o; x1r-x1'=2cap_curve-fine; y1'=y1; path upper_arc; upper_arc=z1{x2-x1,10(y2-y1)}..z2{left}; numeric t; t=xpart(upper_arc intersectiontimes (z6l--z1')); filldraw z1r--z6r--z6l--subpath(t,0) of upper_arc--cycle; % barb pickup tiny.nib; filldraw stroke z0e--z7e; % stem dish_serif(0,7,a,1/3,max(cap_jut,2.25u),b,1/3,1.25u); % serif savedpoint:=.5w; math_fit(-.3cap_height#*slant-.5u#,ic#); else: beginchar("G",12u#,cap_height#,0); italcorr cap_height#*slant-.5u#; adjust_fit(0,0); pickup fine.nib; pos1(1.2flare,80); pos2(slab,90); pos3(cap_curve,180); pos4(slab,270); pos5(flare,270); rt x1r=hround(w-1.35u); x2=x4=.5w+u; lft x3r=hround max(u,2u-.5cap_curve); rt x5l=hround(w-1.2u); top y1r=vround .93h+o; top y2r=h+o; y3=.5h; bot y4r=-o; bot y5r=vround .07h-o; filldraw stroke rterm.e(2,1,right,.9,4)&super_arc.e(2,3) & super_arc.e(3,4) & term.e(4,5,right,1,4); % arc and terminals pos0(stem,0); pos7(stem,0); z7r=z5r; x0=x7; top y0=1+vround .35[bar_height,x_height]; filldraw stroke z0e--z7e; % stem pos8(cap_bar,90); pos9(cap_bar,90); z0r=z9r; y8=y9; lft x8=hround x4; filldraw stroke z8e--z9e; % bar math_fit(-.3cap_height#*slant-.5u#,.5ic#); savedpoint:=x2; fi picture savedpicture; savedpicture:=currentpicture; penlabels(0,1,1',2,3,4,5,6,7,8,9); endchar; iff known G_dot: cmchar "Capital letter G with dot"; if serifs: beginchar(G_dot,14u#,asc_height#+comma_depth#,0); italcorr cap_height#*slant-1.5u#-.5cap_serif_fit#; adjust_fit(0,.5cap_serif_fit#); else: beginchar(G_dot,12u#,asc_height#+comma_depth#,0); italcorr cap_height#*slant-.5u#; adjust_fit(0,0); fi numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#); define_whole_blacker_pixels(dot_diam); currentpicture:=savedpicture; pickup tiny.nib; pos88(dot_diam,0); pos99(dot_diam,90); x88=x99=good.x(savedpoint); top y99r=h+1; if bot y99l-cap_height-o