% This is ITALFGH.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 (straight f), g (you can choose between two glyphs by the means of % |variant_g:=true| or |false|. |true| is default.), 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 "Italic letter straight f"; % from cm (f) beginchar("f",max(1.5u#,stem#)+max(3.5u#,2flare#),asc_height#,desc_depth#); italcorr asc_height#*slant+.75u#; adjust_fit(if monospace:u#,u# else: 0,0 fi); pickup fine.nib; numeric theta; z88=(.5w-.5u,h); z89=(.5w+.5u,0); theta=angle(z88-z89); pos0(flare,0); pos1(hair,0); pos2(vair,90); pos3(.5[hair,stem],180); pos4(stem,theta+90); pos5(stem,theta-90); rt x1r=hround(w+.25u); x2=.6[x1,x4]; top y2r=h+oo; y4=.25[x_height,h]; bot y5=-d-oo; z4=whatever[z88,z89]; z5=whatever[z88,z89]; x3=.8[x2+x4-x88,x88]; y3=.8[y4,y2]; y0+.5vair=.5[x_height,h]; bulb(2,1,0); % bulb filldraw stroke z2e{left}...z3e...{z89-z88}z4e; % upper arc filldraw z4r--z5l--z5r--z4l--cycle; % stem pickup crisp.nib; pos20(bar,90); pos21(bar,90); top y20r=top y21r=x_height; lft x20=lft x4r-.5stem-u; rt x21=rt x4l+.5stem+1.5u; filldraw stroke z20e--z21e; % crossbar math_fit(desc_depth#*slant+u#,x_height#*slant); penlabels(0,1,2,3,4,5,20,21,88,89); endchar; iff known long_f: cmchar "Italic letter long f"; % from cm (f) beginchar(long_f,max(1.5u#,stem#)+max(3.5u#,2flare#),asc_height#,desc_depth#); italcorr asc_height#*slant+.75u#; adjust_fit(if monospace:u#,u# else: 0,0 fi); pickup fine.nib; numeric theta; z88=(.5w-.5u,h); z89=(.5w+.5u,-d); theta=angle(z88-z89); pos0(flare,0); pos1(hair,0); pos2(vair,90); pos3(.5[hair,stem],180); pos4(stem,theta+90); pos5(stem,theta-90); pos6(.5[hair,stem],0); pos7(vair,-90); pos8(hair,-180); pos9(flare,-180); rt x1r=hround(w+.25u); lft x8r=hround-.35u; x2=.6[x1,x4]; x7=.6[x8,x5]; y9-.5flare=vround -.85d; y2-y0=y9-y7; top y2r=h+oo; bot y7r=-d-oo; y4=.25[x_height,h]; y5=.5[-d,y4]; z4=whatever[z88,z89]; z5=whatever[z88,z89]; x3=.8[x2+x4-x88,x88]; x6=.8[x7+x5-x89,x89]; y3=.8[y4,y2]; y6=.8[y5,y7]; bulb(2,1,0); bulb(7,8,9); % bulbs filldraw stroke z2e{left}...z3e...{z89-z88}z4e; % upper arc filldraw z4r--z5l--z5r--z4l--cycle; % stem filldraw stroke z5e{z89-z88}...z6e...{left}z7e; % lower arc pickup crisp.nib; pos20(bar,90); pos21(bar,90); top y20r=top y21r=x_height; lft x20=lft x4r-.5stem-u; rt x21=rt x4l+.5stem+1.5u; filldraw stroke z20e--z21e; % crossbar math_fit(desc_depth#*slant+u#,x_height#*slant); penlabels(0,1,2,3,4,5,6,7,8,9,20,21,88,89); endchar; iff variant_g: cmchar "Italic letter g"; beginchar("g",8u#,x_height#,desc_depth#); italcorr x_height#*slant+.5stem#-u#; adjust_fit(0,0); pickup fine.nib; pos0(hair,0); pos1(vair,90); pos2(curve,180); pos3(vair,270); x0=x4; x1=x3=.5[x0,x2]; lft x2r=hround(1.5u-.5curve); x4+.5stem=hround(w-1.5u+.5stem); top y1r=h+oo; bot y3r=0; y0=y2=.5[y1,y3]; filldraw stroke super_arc.e(0,1) & pulled_arc.e(1,2) & pulled_arc.e(2,3) & super_arc.e(3,0); % bowl pos4(stem,0); y4+.5stem=vround .98h; pos5(stem,0); x5=x4; y5=-1/3d; pos6(vair,-90); pos7(hair,-180); pos8(flare,-180); bot y6r=-d-oo; y8-.5flare=vround -.9d; lft x8r=hround(2u-.5flare); x6=x1; bulb(6,7,8); % bulb filldraw circ_stroke z4e---z5e...{left}z6e; % stem and arc picture savedpicture; savedpicture:=currentpicture; math_fit(-min(.3x_height#*slant+.5curve#-u#,1.5u#-desc_depth#*slant), ic#-1/3x_height#*slant); penlabels(0,1,2,3,4,5,6,7,8); endchar; iff known g_dot and variant_g: cmchar "Variant letter g with dot"; numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#); beginchar(g_dot,10u#+serif_fit#,min(asc_height#,10/7x_height#+.5dot_diam#), desc_depth#); italcorr x_height#*slant-serif_fit#+.5stem#-2u# if serifs:+.5u# fi; adjust_fit(0,serif_fit# if serifs: -.5u# fi); define_whole_blacker_pixels(dot_diam); currentpicture:=savedpicture; pickup tiny.nib; pos88(dot_diam,0); pos99(dot_diam,90); x88=x99=good.x(.5w); top y99r=h+1; if bot y99l-x_height+oo