diff options
Diffstat (limited to 'Master/texmf-dist/fonts/source/jknappen/fc/lowerbcd.mf')
-rw-r--r-- | Master/texmf-dist/fonts/source/jknappen/fc/lowerbcd.mf | 336 |
1 files changed, 336 insertions, 0 deletions
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/lowerbcd.mf b/Master/texmf-dist/fonts/source/jknappen/fc/lowerbcd.mf new file mode 100644 index 00000000000..2d205f6269a --- /dev/null +++ b/Master/texmf-dist/fonts/source/jknappen/fc/lowerbcd.mf @@ -0,0 +1,336 @@ +% This is LOWERBCD.MF +% Version 1.1c +% Date 22-JUN-1993 +% +% (c) 1991, 1992, 1993 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: +% +% b, c, d +% +% And the following on demand, i. e. if their code is known: +% +% hooktop_b, c_cedilla, hooktop_d, tailed_d, edh, crossed_d, hooktop_c +% +% Higher versions of this file might include more characters. + +cmchar "The letter b"; +beginchar("b",10u#+serif_fit#,asc_height#,0); +italcorr .5x_height#*slant+min(.5curve#-u#,-.25u#); +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(2.5u-.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); penpos7(x3l-x3r,-180); +rt x3l=max(rt x3l-(lft x3r-tiny.lft x2l),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; +x6l=x4l-.2u; bot y6r=-oo; +x7=x3; y7=min(y3,y6+y4-y3+.6vair); +(x,y4r)=whatever[z3l,z4l]; x4r:=min(x,.5[x4,x5r]); +(x',y6r)=whatever[z7l,z6l]; x6r:=min(x',.5[x6,x5r]); +filldraw stroke z3e{up}...pulled_arc.e(4,5)&pulled_arc.e(5,6)...{up}z7e; % bowl +y0=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{right}z4l)); +y2=ypart(((edge,h)--(edge,0))intersectionpoint(z6l{left}...{up}z7l)); +pickup tiny.nib; 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); fi % upper serif +penlabels(0,1,2,3,4,5,6,7,8); endchar; + +iff known hooktop_b: +cmchar "The letter hooktop b"; % from wsuipa +beginchar(hooktop_b,10u#+serif_fit#,asc_height#,0); +italcorr .5x_height#*slant+min(.5curve#-u#,-.25u#); +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(2.5u-.5stem'); top y1=.7h; +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); penpos7(x3l-x3r,-180); +rt x3l=max(rt x3l-(lft x3r-tiny.lft x2l),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; +x6l=x4l-.2u; bot y6r=-oo; +x7=x3; y7=min(y3,y6+y4-y3+.6vair); +(x,y4r)=whatever[z3l,z4l]; x4r:=min(x,.5[x4,x5r]); +(x',y6r)=whatever[z7l,z6l]; x6r:=min(x',.5[x6,x5r]); +filldraw stroke z3e{up}...pulled_arc.e(4,5)&pulled_arc.e(5,6)...{up}z7e; % bowl +y0=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{right}z4l)); +y2=ypart(((edge,h)--(edge,0))intersectionpoint(z6l{left}...{up}z7l)); +pickup tiny.nib; filldraw stroke 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); fi % upper serif +% hooktop +pickup tiny.nib; + pos10(vair,-90); x10=.35[x1,x5]; top y10l=h+o+1; + pos11(hair,0); rt x11r=hround(w-2.25u); y11=.85h; + pos12(flare,0); + pos10'(vair,90); z10'=z10; + bulb(10',11,12); % bulb +filldraw stroke z0e{up}...pulled_super_arc.e(1,10)(.4superpull); + % arc and stem +penlabels(0,1,2,3,4,5,6,7,8,10,11,12); endchar; + + +cmchar "The letter c"; +beginchar("c",8u#,x_height#,0); +italcorr x_height#*slant-.2u#; +adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi); +pickup fine.nib; pos2(vair',90); pos4(vair',270); +x2=x4=.5(w+u); top y2r=vround(h+1.5oo); bot y4r=-oo; +pos3(curve,180); lft x3r=hround max(.6u,1.35u-.5curve); y3=.5h; +if serifs: pos1(hair,0); pos0(flare,0); + y1=min(bar_height+.5flare+2vair'+2,.9[bar_height,h]-.5flare); + rt x1r=hround(w-.7u); bulb(2,1,0); % bulb + pos5(hair,0); rt x5r=hround(w-.5u); + y5=max(good.y(.5bar_height-.9),y4l+vair'); + (x,y4l)=whatever[z4r,z5l]; x4l:=min(x,x4l+.5u); + filldraw stroke pulled_super_arc.e(2,3)(.7superpull) + & pulled_super_arc.e(3,4)(.5superpull) + ..tension .9 and 1..{x5-x4,5(y5-y4)}z5e; % arc and lower terminal +else: pos1(4/7[vair',flare],80); + rt x1r=hround(w-.6u); top y1r=vround .82[bar_height,top y2r]; + filldraw stroke term.e(2,1,right,.8,4); % upper terminal + pos5(.6[vair',flare],275); rt x5r=hround(w-.5u); + y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l; + forsuffixes e=l,r: path p.e; p.e=z4e{right}..tension .9 and 1..z5e; + if angle direction 1 of p.e>75: + p.e:=z4e{right}..tension atleast.9 and 1..{dir 75}z5e; fi endfor + filldraw stroke pulled_super_arc.e(2,3)(.7superpull) + & pulled_super_arc.e(3,4)(.5superpull) & p.e; fi % arc and lower terminal +picture savedpicture; +savedpicture:=currentpicture; +penlabels(0,1,2,3,4,5); endchar; + +iff known c_cedilla: +cmchar"The letter c with cedilla"; +beginchar(c_cedilla,8u#,x_height#,0.875desc_depth#); +italcorr x_height#*slant-.2u#; +adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi); +currentpicture:=savedpicture; +x1=.5w+u; +if serifs: pickup crisp.nib; pos1(stem,0); pos2(stem,0); + pos3(vair,90); pos4(stem,0); pos5(vair,-90); + x1=x2; z3l=z2l; x4=x2+1.5u; x5=x3-1.5u; + bot y1=-o; bot y2=-vround 2/7d-o; y4=.5[y3,y5]; bot y5=-d-o; + filldraw stroke z1e--z2e; % stem + filldraw stroke z3e{right}...z4e{down}...{left}z5e; % hook +else: pickup fine.nib; pos1(vair,0); top y1=-o-2; + pos2(.5[vair,stem],0); bot y2=-d-o; x2=x1-1.25u; + filldraw stroke z1e--z2e; fi % diagonal +penlabels(1,2,3,4,5); endchar; + +iff known hooktop_c: +cmchar"The letter hooktop c"; % jk +beginchar(hooktop_c,8u#,asc_height#,0); +italcorr x_height#*slant-.2u#; +adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi); +currentpicture:=savedpicture; +%if serifs: +pickup tiny.nib; +pos0(stem,180); pos1(stem,180); pos2(vair,90); +pos3(hair,0); pos4(flare,0); +x0=x1=hround.5(w+u); y1=.5[x_height,h]; y0=x_height; +x2=.4[x1,x3]; top y2r=h+oo; +rt x3r=hround(w-.7u); y4=.85h; +filldraw z2r{left}...{down}z1r--z0r--z0l--z1l{up}...{right}z2l--cycle; +bulb(2,3,4); +%else: +%fi +penlabels(0,1,2,3,4); endchar; + +savedpicture:=nullpicture; + +cmchar "The letter d"; +beginchar("d",10u#+serif_fit#,asc_height#,0); +italcorr asc_height#*slant-serif_fit#+.5stem#-2u#; +adjust_fit(0,serif_fit#); +pickup tiny.nib; pos1(stem',0); pos2(stem,0); +pos0'(stem',0); pos0(stem,0); z0r=z0'r; x0'=x1; x0=x2; +rt x1r=hround(w-2.5u+.5stem'); top y1=h; +numeric edge; edge=lft x2l; +pickup fine.nib; pos3(if hefty:thin_join else: hair fi,0); +pos4(vair,90); pos5(curve,180); pos6(vair,270); penpos7(x3r-x3l,360); +lft x3l=min(lft x3l-(rt x3r-tiny.rt x2r),1/3[lft x2,edge]); +y3=1/8[bar_height,x_height]; +x4l=.5(w-serif_fit)-.3u; top y4r=x_height+oo; +lft x5r=hround max(1.35u-.5curve,.6u); y5=.5x_height; +x6l=x4l-.2u; bot y6r=-oo; +x7=x3; y7=min(y3,y6+y4-y3+.6vair); +(x,y4r)=whatever[z3l,z4l]; x4r:=max(x,.5[x5r,x4]); +(x',y6r)=whatever[z7l,z6l]; x6r:=max(x',.5[x5r,x6]); +filldraw stroke z3e{up}...pulled_arc.e(4,5) + & pulled_arc.e(5,6)...{up}z7e; % bowl +y0=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{left}z4l)); +pickup tiny.nib; bot y2=if serifs:-min(oo,serif_drop) else: 0 fi; +filldraw stroke z1e--z0'e--z0e--z2e; % stem +if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); % upper serif + sloped_serif.r(2,0,b,1/3,jut,min(oo,serif_drop)); fi % lower serif +penlabels(0,1,2,3,4,5,6,7); endchar; + +iff known crossed_d: +cmchar "The letter crossed d"; % from wsuipa +beginchar(crossed_d,10u#+serif_fit#,asc_height#,0); +italcorr asc_height#*slant-serif_fit#+.5stem#-2u#; +adjust_fit(0,serif_fit#); +pickup tiny.nib; pos1(stem',0); pos2(stem,0); +pos0'(stem',0); pos0(stem,0); z0r=z0'r; x0'=x1; x0=x2; +rt x1r=hround(w-2.5u+.5stem'); top y1=h; +numeric edge; edge=lft x2l; +pickup fine.nib; pos3(if hefty:thin_join else: hair fi,0); +pos4(vair,90); pos5(curve,180); pos6(vair,270); penpos7(x3r-x3l,360); +lft x3l=min(lft x3l-(rt x3r-tiny.rt x2r),1/3[lft x2,edge]); +y3=1/8[bar_height,x_height]; +x4l=.5(w-serif_fit)-.3u; top y4r=x_height+oo; +lft x5r=hround max(1.35u-.5curve,.6u); y5=.5x_height; +x6l=x4l-.2u; bot y6r=-oo; +x7=x3; y7=min(y3,y6+y4-y3+.6vair); +(x,y4r)=whatever[z3l,z4l]; x4r:=max(x,.5[x5r,x4]); +(x',y6r)=whatever[z7l,z6l]; x6r:=max(x',.5[x5r,x6]); +filldraw stroke z3e{up}...pulled_arc.e(4,5) + & pulled_arc.e(5,6)...{up}z7e; % bowl +y0=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{left}z4l)); +pickup tiny.nib; bot y2=if serifs:-min(oo,serif_drop) else: 0 fi; +filldraw stroke z1e--z0'e--z0e--z2e; % stem +if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); % upper serif + sloped_serif.r(2,0,b,1/3,jut,min(oo,serif_drop)); fi % lower serif +pickup crisp.nib; pos15(bar,90); pos16(bar,90); +top y15r=.52[x_height,y1]=top y16r; % changed +lft x15=hround(w-.25u); lft x16=.23[x5r,x1]; +filldraw stroke z15e--z16e; % bar +penlabels(0,1,2,3,4,5,6,7,15,16); endchar; + +iff known hooktop_d: +cmchar "The letter hooktop d"; % from wsuipa +beginchar(hooktop_d,12u#+serif_fit#,asc_height#,0); +italcorr asc_height#*slant-serif_fit#+.5stem#-2u#; +adjust_fit(0,serif_fit#); +pickup tiny.nib; pos1(stem',0); pos2(stem,0); +pos0'(stem',0); pos0(stem,0); z0r=z0'r; x0'=x1; x0=x2; +rt x1r=hround(.76w-2.5u+.5stem'); top y1=.7h; +numeric edge; edge=lft x2l; +pickup fine.nib; pos3(if hefty:thin_join else: hair fi,0); +pos4(vair,90); pos5(curve,180); pos6(vair,270); penpos7(x3r-x3l,360); +lft x3l=min(lft x3l-(rt x3r-tiny.rt x2r),1/3[lft x2,edge]); +y3=1/8[bar_height,x_height]; +x4l=.5(.76w-serif_fit)-.3u; top y4r=x_height+oo; +lft x5r=hround max(1.35u-.5curve,.6u); y5=.5x_height; +x6l=x4l-.2u; bot y6r=-oo; +x7=x3; y7=min(y3,y6+y4-y3+.6vair); +(x,y4r)=whatever[z3l,z4l]; x4r:=max(x,.5[x5r,x4]); +(x',y6r)=whatever[z7l,z6l]; x6r:=max(x',.5[x5r,x6]); +filldraw stroke z3e{up}...pulled_arc.e(4,5) + & pulled_arc.e(5,6)...{up}z7e; % bowl +y0=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{left}z4l)); +pickup tiny.nib; bot y2=if serifs:-min(oo,serif_drop) else: 0 fi; +filldraw stroke z1e--z0'e--z0e--z2e; % stem +if serifs: + sloped_serif.r(2,0,b,1/3,jut,min(oo,serif_drop)); % lower serif +fi +% hooktop +pickup tiny.nib; + pos10(vair,-90); x10=.5[x1,x11]; top y10l=h+o+1; + pos11(hair,0); rt x11r=hround(w-.5u); y11=.85h; + pos12(flare,0); + pos10'(vair,90); z10'=z10; + bulb(10',11,12); % bulb +filldraw stroke z0e{up}...pulled_super_arc.e(1,10)(.4superpull); + % arc and stem +penlabels(0,1,2,3,4,5,6,7,10,11,12); endchar; + +iff known edh: +cmchar "The letter edh (Old English rune, like thorn)"; % from bsymbols +% adapted from cm partial differential sign, vol E, p 233. +beginchar(edh,10u#,asc_height#,0); +italcorr .7asc_height#*slant+.5curve#-1.5u#; +adjust_fit(0,0); +numeric top_thickness,bot_thickness,side_thickness,pull; +top_thickness=max(fine.breadth,vround(slab-2vair_corr)); +bot_thickness=max(fine.breadth,vround(slab-vair_corr)); +side_thickness=max(fine.breadth,hround 1/3[curve,cap_curve]); +pull=min(.25,1.5superpull); +pickup fine.nib; pos2(top_thickness,90); +pos3(side_thickness,0); pos4(bot_thickness,-90); +pos5(side_thickness,-180); pos6(vair,-270); +lft x5r=w-rt x3r=hround max(.75u,1.5u-.5side_thickness); +x4=x6+.1u=x2+u=.5w; +top y2r=h+o; y3=.5[y2,y4]; bot y4r=-o; +y5=.5[y4,y6]; top y6=vround 5/8h+o; +path p; p=pulled_super_arc.l(3,4)(pull); +numeric t; t=xpart(p intersectiontimes((x3r,y5)--(x4,y5))); +pos7(thin_join,0); z7l=point t of p; +(x,y6r)=whatever[z7l,z6l]; x6r:=max(x,.5[x5r,x6]); +x2:=x5; x2l:=x2r:=x2; +filldraw stroke pulled_super_arc.e(2,3)(pull) + & {{interim superness:=more_super; pulled_super_arc.e(3,4)(pull)}} + & {{less_tense; pulled_super_arc.e(4,5)(pull) & pulled_super_arc.e(5,6)(pull)}} + & z6e{right}...{direction t of p}z7e; % arc and bowl +%pos1(hair,180); pos0(flare,180); % commenting out the arc and bulb +%lft x0r=min(lft x2-eps,hround 1.2u); +%y0=vround min(.85h-.5flare,.8h+.5flare)+o; +%{{less_tense; bulb(2,1,0)}}; % arc and bulb +%math_fit(-.3x_height#*slant+.5curve#-u#,ic#-u#); +pickup pencircle xscaled 1.4rule_thickness yscaled .5rule_thickness; +x10=x11=x5; x12=x13=w-x10; y10=y13; +y10-y11=y12-y13=cap_stem; .5[y11,y10]=.5[y6,y2]; +if serifs: +draw z10--z11--z12--z13; % cross piece +else: draw z11--z12; fi % added simpler cross piece for sans serif design +penlabels(2,3,4,5,6,7,10,11,12,,13); endchar; + +iff known tailed_d: +cmchar "The letter right-tailed d"; % from wsuipa +beginchar(tailed_d,12.5u#+serif_fit#,asc_height#,desc_depth#); +italcorr asc_height#*slant-serif_fit#+.5stem#-2u#; +adjust_fit(0,serif_fit#); +pickup tiny.nib; pos1(stem',0); pos2(stem,0); +pos0'(stem',0); pos0(stem,0); z0r=z0'r; x0'=x1; x0=x2; +rt x1r=hround(.8w-2.5u+.5stem'); top y1=h; +numeric edge; edge=lft x2l; +pickup fine.nib; pos3(if hefty:thin_join else: hair fi,0); +pos4(vair,90); pos5(curve,180); pos6(vair,270); penpos7(x3r-x3l,360); +lft x3l=min(lft x3l-(rt x3r-tiny.rt x2r),1/3[lft x2,edge]); +y3=1/8[bar_height,x_height]; +x4l=.5(.8w-serif_fit)-.3u; top y4r=x_height+oo; +lft x5r=hround max(1.35u-.5curve,.6u); y5=.5x_height; +x6l=x4l-.2u; bot y6r=-oo; +x7=x3; y7=min(y3,y6+y4-y3+.6vair); +(x,y4r)=whatever[z3l,z4l]; x4r:=max(x,.5[x5r,x4]); +(x',y6r)=whatever[z7l,z6l]; x6r:=max(x',.5[x5r,x6]); +filldraw stroke z3e{up}...pulled_arc.e(4,5) + & pulled_arc.e(5,6)...{up}z7e; % bowl +y0=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{left}z4l)); +pickup tiny.nib; bot y2=-1/2d; +filldraw stroke z1e--z0'e--z0e--z2e; % stem +if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop);fi % upper serif +%tail +numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#); +define_whole_blacker_pixels(dot_diam); + pickup tiny.nib; pos20(stem,180); z2=z20; + pos15(vair,-90); pos16(hair,0); pos17(flare,0); + x15=.5[x16,x20]; bot y15l=-d-oo; y16=y20+.15dot_size; + rt x16r=hround(w-.1u); + bulb(15,16,17); % arc and bulb + filldraw stroke z20e{down}..{right}z15e{up}; +penlabels(0,1,2,3,4,5,6,7,15,16,17,20); endchar; + +endinput; |