diff options
Diffstat (limited to 'Master/texmf-dist/fonts/source/jknappen/fc/upperfgh.mf')
-rw-r--r-- | Master/texmf-dist/fonts/source/jknappen/fc/upperfgh.mf | 258 |
1 files changed, 258 insertions, 0 deletions
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/upperfgh.mf b/Master/texmf-dist/fonts/source/jknappen/fc/upperfgh.mf new file mode 100644 index 00000000000..4c30b7915ff --- /dev/null +++ b/Master/texmf-dist/fonts/source/jknappen/fc/upperfgh.mf @@ -0,0 +1,258 @@ +% 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<slab: + y99l:=min(y99r-eps,cap_height+o+tiny+slab);fi +y88=.5[y99l,y99r]; dot(88,99); % dot +penlabels(88,99);endchar; + +savedpicture:=nullpicture; +numeric savedpoint; + +iff known ipa_Gamma: +cmchar "Capital letter IPA Gamma"; % jk, based on cm X +beginchar(ipa_Gamma,if serifs:13u# else: 11.5u# fi,cap_height#,0); +italcorr cap_height#*slant+.25u#; +adjust_fit(cap_serif_fit#,cap_serif_fit#); +numeric stem[],outer_jut,xjut,alpha[]; +stem1=cap_stem-2stem_corr; stem2=min(cap_hair,stem1); +outer_jut=.75cap_jut; xjut= if serifs: (stem1-stem2)/4 else: 0 fi; +x1l=l+letter_fit+.5u+outer_jut; x2r=r-letter_fit-u-outer_jut-xjut; +x3l=l+letter_fit+.25u+outer_jut+xjut; x4r=r-letter_fit-.25u-outer_jut; +y1=y2=h; y3=y4=-d; +alpha1=diag_ratio(1,stem1,h,x4r-x1l); +alpha2=diag_ratio(1,stem2,h,x2r-x3l); +penpos1(alpha1*stem1,0); penpos2(alpha2*stem2,0); +penpos3(alpha2*stem2,0); penpos4(alpha1*stem1,0); +penpos5(alpha2*stem2,0); penpos6(alpha1*stem1,0); +penpos5'(alpha2*stem2,-180); penpos10(cap_band,-90); +z5=whatever[z3,z2]; z6=whatever[z1,z4]; x5=.25[x3,x4]; y6=y5; z5'=z5; +x10=.5[x5,x6]; bot y10=-d-o; +if hefty: z0=whatever[z1,z4]=whatever[z2,z3]; + x12=x34=x0; y13=y24=y0; + z12=whatever[z2l,z3l]; z13=whatever[z2l,z3l]; + z24=whatever[z2r,z3r]; z34=whatever[z2r,z3r]; + forsuffixes $=13,24,34: z$'=.1[z$,z0]; endfor + fill diag_end(12,1r,.5,1,1l,13')--z13'--diag_end(13',5l,1,.5,5r,34')--z34' + --diag_end(34',6l,.5,1,6r,24')--z24' + --diag_end(24',2r,1,.5,2l,12)--z12--cycle; % diagonals +else: fill diag_end(4r,1r,.5,1,1l,4l) + --diag_end(1l,6l,.5,1,6r,1r)--cycle; % left diagonal + fill diag_end(2l,5l,.5,1,5r,2r) + --diag_end(3r,2r,.5,1,2l,3l)--cycle; fi % right diagonal +filldraw stroke z6e{z4-z1}...z10e...{z2-z3}z5'e; % bowl +if serifs: numeric inner_jut[]; pickup tiny.nib; + prime_points_inside(1,4); prime_points_inside(2,3); +% prime_points_inside(3,2); prime_points_inside(4,1); + if rt x1'r+cap_jut+.5u+1<=lft x2'l-cap_jut-xjut: inner_jut1=cap_jut; + else: rt x1'r+inner_jut1+.5u+1=lft x2'l-inner_jut1-xjut; fi +% if rt x3'r+cap_jut+.5u+1<=lft x4'l-cap_jut-xjut: inner_jut2=cap_jut; +% else: rt x3'r+inner_jut2+.5u+1=lft x4'l-inner_jut2-xjut; fi + dish_serif(1',4,a,1/3,outer_jut,b,2/3,inner_jut1); % upper left serif +% dish_serif(4',1,c,2/3,inner_jut2,d,1/3,outer_jut); % lower right serif + dish_serif(2',3,e,2/3,inner_jut1+xjut, + f,1/2,outer_jut+xjut)(dark); % upper right serif +% dish_serif(3',2,g,1/2,outer_jut+xjut, +% h,2/3,inner_jut2+xjut)(dark); fi % lower left serif +fi +math_fit(0,.5ic#); penlabels(0,1,2,3,4,5,6,19,12,13,24,34); endchar; + +cmchar "The letter H"; +beginchar("H",13u#+width_adj#,cap_height#,0); +italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#); +adjust_fit(cap_serif_fit#,cap_serif_fit#); +pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0); +pos3(cap_stem,0); pos4(cap_stem,0); +lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); x3=x4=w-x1; +top y1=top y3=h; bot y2=bot y4=0; +filldraw stroke z1e--z2e; % left stem +filldraw stroke z3e--z4e; % right stem +penpos5(cap_bar,90); penpos6(cap_bar,90); +x5=x1; x6=x3; y5=y6=.52h; +fill stroke z5e--z6e; % bar +if serifs: numeric inner_jut; + if rt x1r+cap_jut+.5u+1<=lft x3l-cap_jut: inner_jut=cap_jut; + else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi + dish_serif(1,2,a,1/3,cap_jut,b,1/3,inner_jut); % upper left serif + dish_serif(2,1,c,1/3,cap_jut,d,1/3,inner_jut); % lower left serif + dish_serif(3,4,e,1/3,inner_jut,f,1/3,cap_jut); % upper left serif + dish_serif(4,3,g,1/3,inner_jut,h,1/3,cap_jut); fi % lower left serif +math_fit(0,.5ic#); penlabels(1,2,3,4,5,6); endchar; + +iff known crossed_H: +cmchar "Capital letter crossed H"; % jk, using cm H +beginchar(crossed_H,13u#+width_adj#,cap_height#,0); +italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#); +adjust_fit(cap_serif_fit#,cap_serif_fit#); +pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0); +pos3(cap_stem,0); pos4(cap_stem,0); +lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); x3=x4=w-x1; +top y1=top y3=h; bot y2=bot y4=0; +filldraw stroke z1e--z2e; % left stem +filldraw stroke z3e--z4e; % right stem + penpos5(cap_bar,90); penpos6(cap_bar,90); penpos7(cap_bar,90); + penpos8(cap_bar,90); +compute_spread(.45x_height#,.55x_height#); +x5=x1; x6=x3; y5=y6=.52h+.45spread; +fill stroke z5e--z6e; % upper bar +x7=x1; x8=x3; y7=y8=.52h-.45spread; +fill stroke z7e--z8e; % lower bar +if serifs: numeric inner_jut; + if rt x1r+cap_jut+.5u+1<=lft x3l-cap_jut: inner_jut=cap_jut; + else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi + dish_serif(1,2,a,1/3,cap_jut,b,1/3,inner_jut); % upper left serif + dish_serif(2,1,c,1/3,cap_jut,d,1/3,inner_jut); % lower left serif + dish_serif(3,4,e,1/3,inner_jut,f,1/3,cap_jut); % upper left serif + dish_serif(4,3,g,1/3,inner_jut,h,1/3,cap_jut); fi % lower left serif +math_fit(0,.5ic#); penlabels(1,2,3,4,5,6); endchar; + +endinput; |