summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/fonts/source/jknappen/fc/lowerst.mf
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/fonts/source/jknappen/fc/lowerst.mf')
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/lowerst.mf451
1 files changed, 451 insertions, 0 deletions
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/lowerst.mf b/Master/texmf-dist/fonts/source/jknappen/fc/lowerst.mf
new file mode 100644
index 00000000000..2a1e1a5f57f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/lowerst.mf
@@ -0,0 +1,451 @@
+% This is LOWERST.MF
+% Version 1.0b
+% Date 13-MAR-1992
+%
+% (c) 1991, 1992 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:
+%
+% s, t
+%
+% And the following on demand, i. e. if their code is known:
+%
+% s_hachek, s_dotu, long_s, esh, scharfes_s, long_t, sami_t (t with cross),
+% thorn, hooktop_t
+%
+% Higher versions of this file might include more characters.
+
+
+cmchar "The letter s";
+beginchar("s",7.1u#,x_height#,0);
+italcorr x_height#*slant-if serifs:.55u# else:.3u# fi;
+adjust_fit(if monospace: .5u#,.4u# else: 0,if serifs:0 else:-.2u# fi fi);
+numeric theta; theta=90-angle(40u,h); slope:=-h/40u; % angle at middle
+numeric s_slab; s_slab=if serifs:vair else:Vround .1[vair,stem] fi;
+numeric ess'; ess'=max(fine.breadth,ess);
+pickup fine.nib; pos2(max(fine.breadth,s_slab-vround vair_corr),-100);
+pos0(ess',theta); pos7(s_slab,-90); x2l=x0=x7=.5w;
+top y2l=h+vround 1.5oo; bot y7r=-oo;
+y0-.5ess'=y7l+if serifs:.54 else: .52 fi\\(y2r-y7l-ess');
+lft x3l=hround .6u; rt x6r=hround(w-.6u);
+x3r-x3l=x6r-x6l=hround .5[s_slab,ess']-fine;
+ellipse_set(2l,3l,4l,0l); ellipse_set(2r,3r,4r,0r); y3=y3r;
+ellipse_set(7l,6l,5l,0l); ellipse_set(7r,6r,5r,0r); y6=y6r;
+interim superness:=more_super;
+filldraw stroke super_arc.e(2,3) & z3e{down}
+ ..z4e---z5e..z6e{down} & super_arc.e(6,7); % main stroke
+if serifs: pos1(hair,180); pos8(hair,180);
+ rt x1l=hround(w-1.05u); lft x8r=hround .6u;
+ bot y1=min(bot y2r,vround 1/5[top y5r,h]);
+ top y8=max(top y7l,vround 5/6 bot y4l);
+ filldraw stroke z1e{up}....{left}z2e; % upper arc
+ filldraw stroke z7e{left}....{x8-x7,5(y8-y7)}z8e; % lower arc
+ path upper_arc, lower_arc;
+ upper_arc=z1{up}....{left}z2; lower_arc=z7{left}....{x8-x7,5(y8-y7)}z8;
+ pos10(.3[fine.breadth,cap_hair],0); pos9(.3[fine.breadth,cap_hair],0);
+ x10r=x1l; top y10=top y2l; x9l=x8r; bot y9=bot y7r;
+ x1l-x1'=x8'-x8r=1.6cap_curve-fine; y1'=y1; y8'=y8;
+ numeric t; t=xpart(upper_arc intersectiontimes(z10l--z1'));
+ filldraw z1l--z10r--z10l--subpath(t,0) of upper_arc--cycle; % upper barb
+ t:=xpart(lower_arc intersectiontimes(z9r--z8'));
+ filldraw z8r--z9l--z9r--subpath(t,1) of lower_arc--cycle; % lower barb
+else: pos1(4/7[s_slab,flare],-100); pos8(flare,-100);
+ x1l=good.x(x1l+w-u-rt x1); lft x8r=hround .5u;
+ top y1l=vround(.93h+1.5oo); bot y8r=vround .1h-oo;
+ filldraw stroke term.e(2,1,right,.9,4); % upper arc and terminal
+ filldraw stroke term.e(7,8,left,1,4); fi % lower arc and terminal
+picture savedpicture;
+savedpicture:=currentpicture;
+penlabels(0,1,1',2,3,4,5,6,7,8,8',9,10); endchar;
+
+iff known s_hachek:
+cmchar "The letter s with hachek";
+beginchar(s_hachek,7.1u#,.75[x_height#,min(asc_height#,2x_height#)],0);
+italcorr x_height#*slant-if serifs:.55u# else:.3u# fi;
+adjust_fit(if monospace: .5u#,.4u# else: 0,if serifs:0 else:-.2u# fi fi);
+currentpicture:=savedpicture;
+h':=vround min(asc_height,2x_height); % height of circumflex being inverted
+if serifs: pickup crisp.nib; pos2'(.5[vair,curve],90); top y2'r=h;
+ pos2(.5[vair,curve],90); x2=.5w;
+ x1=good.x(.5w-2.25u); x3=good.x(.5w+2.25u);
+ top y1=top y3=h; y1-y2=.5(y2'-x_height);
+ pos1(hair,angle(z2-z1)+90); pos3(hair,angle(z3-z2)+90);
+ filldraw stroke z1e--z2e--z3e; % diagonals
+else:
+ pickup fine.nib; pos1(vair,0); pos3(vair,0);
+ pos2(stem,0); bot y2=vround(1/12[x_height,h']+o); x2=.5w;
+ top y1=top y3=h+o; lft x1l=hround(rt x2r-3.25u-.5vair);
+ rt x3r=hround(lft x2l+3.25u+.5vair);
+ z0=whatever[z1r,z2r]=whatever[z2l,z3l];
+ y4l=y4r=y2; x4l=good.x(.2[x2l,x2]); x4r=good.x(.2[x2r,x2]);
+ filldraw z4l--z1l--z1r--z0--z3l--z3r--z4r--cycle; fi % diagonals
+penlabels(0,1,2,3,4); endchar;
+
+iff known s_dotu:
+cmchar "The letter s with dot below";
+beginchar(s_dotu,7.1u#,x_height#,0.875desc_depth#);
+italcorr x_height#*slant-if serifs:.55u# else:.3u# fi;
+adjust_fit(if monospace: .5u#,.4u# else: 0,if serifs:0 else:-.2u# fi 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(.5w); bot y99l=-d-1;
+if top y99r+oo>-slab: y99r:=max(y99l+eps,-oo-tiny-slab); fi
+y88=.5[y99r,y99l];
+dot(88,99);
+penlabels(88,99); endchar;
+
+savedpicture:=nullpicture;
+
+iff known scharfes_s:
+cmchar "German letter scharfes s"; % completely remade to exhibit
+% the long s-short s ligature % jk
+beginchar(scharfes_s,4.5u#+max(4.5u#,.5stem#+flare#+curve#),asc_height#,0);
+italcorr asc_height#*slant-u#;
+adjust_fit(serif_fit#,0);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+lft x1l=lft x2l=hround(2.5u-.5stem'); bot y1=0; y2=y4=.5[x_height,y3];
+penpos3(vair-fine,90); fine.top y3r=h+oo;
+filldraw stroke z1e--z2e; % stem
+numeric stem_edge,curve'; stem_edge=rt x1r; curve'=hround .5[stem',curve];
+pickup fine.nib; pos4(curve',0);
+pos2'(stem',180); z2'=z2; x3=.5[x2,x4]; rt x4r=hround(w-u);
+numeric xx; xx=min(lft x4l, hround(stem_edge+u));
+numeric theta;
+theta=90-angle(40u,x_height); slope:=-x_height/40u; % angle at middle
+numeric s_slab; s_slab=if serifs:vair else:Vround .1[vair,stem] fi;
+numeric ess'; ess'=max(fine.breadth,ess);
+pos5(max(fine.breadth,s_slab-vround vair_corr),-100);
+pos22(ess',theta); pos10(s_slab,-90); x5l=x22=x10=.5[xx,w];
+top y5l=x_height+vround 1.5oo; bot y10r=-oo;
+y22-.5ess'=y10l+if serifs:.54 else: .52 fi\\(y5r-y10l-ess');
+lft x6l=xx; rt x9r=hround(w-.6u);
+x6r-x6l=x9r-x9l=hround .5[s_slab,ess']-fine;
+ellipse_set(5l,6l,7l,22l); ellipse_set(5r,6r,7r,22r); y6=y6r;
+ellipse_set(10l,9l,8l,22l); ellipse_set(10r,9r,8r,22r); y9=y9r;
+interim superness:=more_super;
+filldraw stroke pulled_super_arc.e(2',3)(.5superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ & pulled_super_arc.e(4,5)(.5superpull) % upper bowl
+ ..super_arc.e(5,6) & z6e{down}
+ ..z7e---z8e..z9e{down} & super_arc.e(9,10); % main s stroke
+if serifs: pos21(hair,180); pos11(hair,180);
+ rt x21l=hround(w-1.05u); lft x11r=xx;
+ bot y21=min(bot y5r,vround 1/5[top y8r,x_height]);
+ top y11=max(top y10l,vround 5/6 bot y7l);
+% filldraw stroke z21e{up}....{left}z5e; % upper arc
+ filldraw stroke z10e{left}....{x11-x10,5(y11-y10)}z11e; % lower arc
+ path upper_arc, lower_arc;
+ upper_arc=z21{up}....{left}z5; lower_arc=z10{left}....{x11-x10,5(y11-y10)}z11;
+ pos20(.3[fine.breadth,cap_hair],0); pos12(.3[fine.breadth,cap_hair],0);
+ x20r=x21l; top y20=top y5l; x12l=x11r; bot y12=bot y10r;
+ x21l-x21'=x11'-x11r=1.6cap_curve-fine; y21'=y21; y11'=y11;
+% numeric t; t=xpart(upper_arc intersectiontimes(z20l--z21'));
+% filldraw z21l--z20r--z20l--subpath(t,0) of upper_arc--cycle; % upper barb
+ t:=xpart(lower_arc intersectiontimes(z12r--z11'));
+ filldraw z11r--z12l--z12r--subpath(t,1) of lower_arc--cycle; % lower barb
+else: pos21(4/7[s_slab,flare],-100); pos11(flare,-100);
+ x21l=good.x(x21l+w-u-rt x21); lft x11r=xx;
+ top y21l=vround(.93x_height+1.5oo); bot y11r=vround .1x_height-oo;
+% filldraw stroke term.e(5,21,right,.9,4); % upper arc and terminal
+ filldraw stroke term.e(10,11,left,1,4); fi % lower arc and terminal
+if serifs:
+ penpos0(stem'-tiny,0); x0=x1; tiny.top y0=x_height;
+ serif(0,1,a,0,-jut); % bar
+ dish_serif(1,2,b,1/3,jut,c,0,epsilon); % serif
+fi
+penlabels(0,1,2,3,4,5,6,7,8,9,10.11.11',12,20,21,21',22); endchar;
+
+iff known long_s:
+cmchar "The letter long s"; % from cm (letter f without bar)
+beginchar(long_s,5.5u#,asc_height#,0);
+italcorr asc_height#*slant+if serifs:flare#-.25u# else: 1.25u# fi;
+adjust_fit(stem_shift#,if monospace: .5u# else:-stem_shift# fi);
+pickup tiny.nib; pos1(stem',0); lft x1l=hround(2.5u-.5stem');
+pickup fine.nib; numeric bulb_diam;
+if serifs:
+ penpos0(stem'-tiny,0); x0=x1; tiny.top y0=x_height;
+ serif(0,1,a,0,-jut); % middle stem serif
+ bulb_diam=hround .8[stem,flare];
+ pos2(bulb_diam,0); y2+.5bulb_diam=.9[x_height,h+oo];
+ if monospace: rt x2r=hround(w-.5u)+1 else: lft x2l=hround(w-.75u+.5) fi;
+else: pos2(5/7[vair,flare],90); top y2r=h;
+ rt x2=hround(if monospace:w-.5u else:w+.75u fi); fi
+f_stroke(1,2,a,b,c,jut,if not monospace:1.25fi\\ jut); % stem, terminal, serif
+%pickup crisp.nib; top y3r=top y4r=x_height; lft x3=hround .5u-1;
+%pos3(bar,90); pos4(bar,90);
+%rt x4=hround(w-if monospace:.75u+1 else:1/3u fi);
+%filldraw stroke z3e--z4e; % bar
+penlabels(1,2,3,4); endchar;
+
+iff known esh:
+cmchar "The letter esh"; %by emma pease % jk used own sans serif design
+numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+if serifs:
+beginchar(esh,5.5u#,asc_height#,desc_depth#);
+define_whole_blacker_pixels(dot_diam);
+italcorr h#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+2stem_shift# if monospace:+\\.5u# fi,
+ serif_fit#-2stem_shift# if monospace:-.5u# fi);
+numeric shaved_stem; shaved_stem=hround(stem-2stem_corr);
+pickup tiny.nib; pos0(stem',0); pos1(shaved_stem,0);
+x0=x1;
+x1=.5w;
+top y0=x_height if serifs: +min(oo,serif_drop) fi;
+bot y1=-1/3d;
+pickup fine.nib; numeric bulb_diam;
+ pickup tiny.nib; pos5(vair,-90); pos6(hair,-180); pos7(flare,-180);
+ x5=.5[x1,x6r]; bot y5r=-d-oo; y6-.5flare=-.88d;
+ if monospace: lft x6r=0 else: z6r=z7r; rt x7l=floor .75u fi;
+ (x,y5r)=whatever[z5l,z1l]; x5r:=max(x,.5[x6r,x5]);
+ filldraw stroke z1e{down}...z5e{left}; bulb(5,6,7); % lower arc and bulb
+ bulb_diam=hround .8[stem,flare];
+ pos2(bulb_diam,0); y2+.5bulb_diam=.9[x_height,h+oo];
+ if monospace: rt x2r=hround(w-.5u)+1 else: lft x2l=hround(w-.75u+.5) fi;
+pickup tiny.nib;
+penpos3(x1r-x1l,0); x3l=x1l; top y3=x_height;
+filldraw stroke z1e--z3e; % stem
+pickup fine.nib; pos3'(x1r-x1l-(hround stem_corr)+tiny,180);
+y3'=y3; lft x3'r=tiny.lft x1l;
+penpos4(x3'l-x3'r,180); x4=x3'; y4+.5vair=.5[x_height,h];
+pos8(vair,90); top y8r=h+oo;
+ x8=.5[x4,x2r]; (xa,y8r)=whatever[z8l,z4l];
+ x8r:=min(xa,.5[x8,x2r]); pos9(hair,0); bulb(8,9,2); % bulb
+ filldraw stroke z3'e--z4e & super_arc.e(4,8); % arc
+else:
+beginchar(esh,3u#+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;
+pos0(flare,0); pos1(hair,0); pos2(vair,90);
+pos4(stem,180);
+pos5(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=.75[-d,y4];
+x4=x5=.5w;
+bulb(2,1,0); bulb(7,8,9); % bulbs
+filldraw stroke z2e{left}...{down}z4e; % upper arc
+filldraw z4r--z5l--z5r--z4l--cycle; % stem
+filldraw stroke z5e{down}...{left}z7e; % lower arc
+fi;
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+
+cmchar "The letter t";
+beginchar("t",6u#+max(u#,.5stem#),
+ min(asc_height#,if hefty:9/7 else:10/7 fi\\ x_height#),0);
+italcorr x_height#*slant if serifs: -.9u# else: -.4u# fi;
+adjust_fit(0,if serifs: 0 else: -.5u# fi);
+numeric shaved_stem; shaved_stem=hround(stem if hefty:-\\2stem_corr fi);
+pickup fine.nib; pos2(shaved_stem,180);pos3(shaved_stem,180);
+lft x2r=lft x3r=hround(2.5u-.5shaved_stem);
+y2=y8; y3=max(.5bar_height,2vair);
+pickup crisp.nib; pos8(bar,90);
+rt x8=hround(w-1.3u); top y8r=x_height; lft x7=hround 1/3u; y7l=y8l;
+if hefty: pos7(bar,90);
+ filldraw stroke z7e--z8e; % crossbar
+ pickup tiny.nib; pos1(hround(shaved_stem-stem_corr),0);
+ rt x1r=fine.rt x2l; top y1=h;
+ penpos2'(x1r-x1l,0); x2'=x1; y2'=y2;
+ filldraw stroke z1e--z2'e; % upper terminal
+else: pos7(vair,90); pos1(hair,0);
+ rt x1r=fine.rt x2l; top y1=h;
+ filldraw z1l{down}...{left}z7r--z7l--z8l
+ --z8r--(x1r,y8r)--z1r--cycle; fi % upper terminal and crossbar
+pickup fine.nib; interim superness:=more_super;
+pos4(vair',-90); bot y4r=-oo; rt x5r=hround(w-u);
+if serifs: pos5(hair,0); y5=y3; x4l=.5[x3l,x5l];
+ (x,y4r)=whatever[z4l,z5l]; x4r:=max(x,.5[x3r,x4]);
+ filldraw stroke z2e..super_arc.e(3,4)...{up}z5e; % stem and hook
+ pickup crisp.nib; pos6(hair,0); pos5'(hair,0);
+ x6=x5=x5'; top y6=max(vround .75bar_height,top y5); y5=y5';
+ filldraw stroke z5'e--z6e; % terminal
+else: pos5(vair,-75); top y5l=vround .2[top y4l,bar_height];
+ x5l:=good.x x5l; x4l=1/3[x3l,x5l]; x4r:=1/3[x3r,x5r]; y3l:=y3l+.2vair;
+ filldraw stroke z2e..super_arc.e(3,4); % stem and hook
+ path p; p=stroke z4e{right}..tension .9 and atleast 1..z5e; % terminal
+ if (xpart(z5l-precontrol 1 of p)<0) or (xpart(z5r-postcontrol 2 of p)<0):
+ filldraw stroke z4e{right}...{up}z5e;
+ else: filldraw p; fi fi;
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+iff known long_t:
+cmchar "The letter long t";
+beginchar(long_t,6u#+max(u#,.5stem#),
+ min(asc_height#,if hefty:9/7 else:10/7 fi\\ x_height#),desc_depth#);
+italcorr x_height#*slant if serifs: -.9u# else: -.4u# fi;
+adjust_fit(0,if serifs: 0 else: -.5u# fi);
+numeric shaved_stem; shaved_stem=hround(stem if hefty:-\\2stem_corr fi);
+pickup fine.nib; pos2(shaved_stem,180);pos3(shaved_stem,180);
+lft x2r=lft x3r=hround(2.5u-.5shaved_stem);
+y2=y8; y3=max(.5bar_height,2vair)-d;
+pickup crisp.nib; pos8(bar,90);
+rt x8=hround(w-1.3u); top y8r=x_height; lft x7=hround 1/3u; y7l=y8l;
+if hefty: pos7(bar,90);
+ filldraw stroke z7e--z8e; % crossbar
+ pickup tiny.nib; pos1(hround(shaved_stem-stem_corr),0);
+ rt x1r=fine.rt x2l; top y1=h;
+ penpos2'(x1r-x1l,0); x2'=x1; y2'=y2;
+ filldraw stroke z1e--z2'e; % upper terminal
+else: pos7(vair,90); pos1(hair,0);
+ rt x1r=fine.rt x2l; top y1=h;
+ filldraw z1l{down}...{left}z7r--z7l--z8l
+ --z8r--(x1r,y8r)--z1r--cycle; fi % upper terminal and crossbar
+pickup fine.nib; interim superness:=more_super;
+pos4(vair',-90); bot y4r=-d-oo; rt x5r=hround(w-u);
+if serifs: pos5(hair,0); y5=y3; x4l=.5[x3l,x5l];
+ (x,y4r)=whatever[z4l,z5l]; x4r:=max(x,.5[x3r,x4]);
+ filldraw stroke z2e..super_arc.e(3,4)...{up}z5e; % stem and hook
+ pickup crisp.nib; pos6(hair,0); pos5'(hair,0);
+ x6=x5=x5'; top y6=max(vround(.75bar_height-d),top y5); y5=y5';
+ filldraw stroke z5'e--z6e; % terminal
+else: pos5(vair,-75); top y5l=vround .2[top y4l,(bar_height-d)];
+ x5l:=good.x x5l; x4l=1/3[x3l,x5l]; x4r:=1/3[x3r,x5r]; y3l:=y3l+.2vair;
+ filldraw stroke z2e..super_arc.e(3,4); % stem and hook
+ path p; p=stroke z4e{right}..tension .9 and atleast 1..z5e; % terminal
+ if (xpart(z5l-precontrol 1 of p)<0) or (xpart(z5r-postcontrol 2 of p)<0):
+ filldraw stroke z4e{right}...{up}z5e;
+ else: filldraw p; fi fi;
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+iff known thorn:
+%cmchar "Icelandic small thorn"; % from im -- original source: DEK cmman.mf
+cmchar"The letter thorn";
+beginchar(thorn,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(2.5u-.5stem'); top y1=h if serifs: +min(oo,serif_drop) fi;
+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[x5r,x4]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=min(x',.5[x5r,x6]);
+filldraw stroke z3e{up}...{right}z4e&super_arc.e(4,5)
+ &super_arc.e(5,6)&z6e{left}...{up}z7e; % 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,7,8); endchar;
+
+iff known sami_t:
+cmchar "The letter crossed t"; % derived from cm t
+beginchar(sami_t,6u#+max(u#,.5stem#),
+ min(asc_height#,if hefty:9/7 else:10/7 fi\\ x_height#),0);
+italcorr x_height#*slant if serifs: -.9u# else: -.4u# fi;
+adjust_fit(0,if serifs: 0 else: -.5u# fi);
+numeric shaved_stem; shaved_stem=hround(stem if hefty:-\\2stem_corr fi);
+pickup fine.nib; pos2(shaved_stem,180);pos3(shaved_stem,180);
+lft x2r=lft x3r=hround(2.5u-.5shaved_stem);
+y2=y8; y3=max(.5bar_height,2vair);
+pickup crisp.nib; pos8(bar,90);
+rt x8=hround(w-1.3u); top y8r=x_height; lft x7=hround 1/3u; y7l=y8l;
+if hefty: pos7(bar,90);
+ filldraw stroke z7e--z8e; % crossbar
+ pickup tiny.nib; pos1(hround(shaved_stem-stem_corr),0);
+ rt x1r=fine.rt x2l; top y1=h;
+ penpos2'(x1r-x1l,0); x2'=x1; y2'=y2;
+ filldraw stroke z1e--z2'e; % upper terminal
+else: pos7(vair,90); pos1(hair,0);
+ rt x1r=fine.rt x2l; top y1=h;
+ filldraw z1l{down}...{left}z7r--z7l--z8l
+ --z8r--(x1r,y8r)--z1r--cycle; fi % upper terminal and crossbar
+pickup crisp.nib;
+y9=y10=bar_height; pos9(bar,90); pos10(bar,90); x9=x2; rt x10=rt x8;
+filldraw stroke z9e--z10e; % zusatz crossbar
+pickup fine.nib; interim superness:=more_super;
+pos4(vair',-90); bot y4r=-oo; rt x5r=hround(w-u);
+if serifs: pos5(hair,0); y5=y3; x4l=.5[x3l,x5l];
+ (x,y4r)=whatever[z4l,z5l]; x4r:=max(x,.5[x3r,x4]);
+ filldraw stroke z2e..super_arc.e(3,4)...{up}z5e; % stem and hook
+ pickup crisp.nib; pos6(hair,0); pos5'(hair,0);
+ x6=x5=x5'; top y6=max(vround .75bar_height,top y5); y5=y5';
+% if bot y10-top y6<.5u: top y6:=bot y10-.5u; fi % does the tail touch the zusatz
+% % bar?
+ filldraw stroke z5'e--z6e; % terminal
+else: pos5(vair,-75); top y5l=vround .2[top y4l,bar_height];
+ x5l:=good.x x5l; x4l=1/3[x3l,x5l]; x4r:=1/3[x3r,x5r]; y3l:=y3l+.2vair;
+% if bot y10-top y5<.5u: top y5:=bot y10-.5u; fi % does the tail touch the zusatz
+% % bar?
+ filldraw stroke z2e..super_arc.e(3,4); % stem and hook
+ path p; p=stroke z4e{right}..tension .9 and atleast 1..z5e; % terminal
+ if (xpart(z5l-precontrol 1 of p)<0) or (xpart(z5r-postcontrol 2 of p)<0):
+ filldraw stroke z4e{right}...{up}z5e;
+ else: filldraw p; fi fi;
+penlabels(1,2,3,4,5,6,7,8,9,10); endchar;
+
+iff known hooktop_t:
+cmchar "The letter t";
+beginchar(hooktop_t,6u#+max(u#,.5stem#),asc_height#,0);
+italcorr asc_height#*slant if serifs: -.9u# else: -.4u# fi;
+adjust_fit(0,if serifs: 0 else: -.5u# fi);
+numeric t_height; t_height=if hefty: 9/7 else: 10/7 fi x_height;
+numeric shaved_stem; shaved_stem=hround(stem if hefty:-\\2stem_corr fi);
+pickup fine.nib; pos2(shaved_stem,180);pos3(shaved_stem,180);
+lft x2r=lft x3r=hround(2.5u-.5shaved_stem);
+y2=y8; y3=max(.5bar_height,2vair);
+pickup crisp.nib; pos8(bar,90);
+rt x8=hround(w-1.3u); top y8r=x_height; lft x7=hround 1/3u; y7l=y8l;
+if hefty: pos7(bar,90);
+ filldraw stroke z7e--z8e; % crossbar
+ pickup tiny.nib; pos1(hround(shaved_stem-stem_corr),0);
+ rt x1r=fine.rt x2l; top y1=t_height;
+ penpos2'(x1r-x1l,0); x2'=x1; y2'=y2;
+ filldraw stroke z1e--z2'e; % upper terminal
+else: pos7(vair,90); pos1(hair,0);
+ rt x1r=fine.rt x2l; top y1=t_height;
+ filldraw z1l{down}...{left}z7r--z7l--z8l
+ --z8r--(x1r,y8r)--z1r--cycle; fi % upper terminal and crossbar
+pickup fine.nib; interim superness:=more_super;
+pos4(vair',-90); bot y4r=-oo; rt x5r=hround(w-u);
+if serifs: pos5(hair,0); y5=y3; x4l=.5[x3l,x5l];
+ (x,y4r)=whatever[z4l,z5l]; x4r:=max(x,.5[x3r,x4]);
+ filldraw stroke z2e..super_arc.e(3,4)...{up}z5e; % stem and hook
+ pickup crisp.nib; pos6(hair,0); pos5'(hair,0);
+ x6=x5=x5'; top y6=max(vround .75bar_height,top y5); y5=y5';
+ filldraw stroke z5'e--z6e; % terminal
+else: pos5(vair,-75); top y5l=vround .2[top y4l,bar_height];
+ x5l:=good.x x5l; x4l=1/3[x3l,x5l]; x4r:=1/3[x3r,x5r]; y3l:=y3l+.2vair;
+ filldraw stroke z2e..super_arc.e(3,4); % stem and hook
+ path p; p=stroke z4e{right}..tension .9 and atleast 1..z5e; % terminal
+ if (xpart(z5l-precontrol 1 of p)<0) or (xpart(z5r-postcontrol 2 of p)<0):
+ filldraw stroke z4e{right}...{up}z5e;
+ else: filldraw p; fi fi;
+z1'=z1;
+if hefty: pos1'(hround(shaved_stem-stem_corr),180) else: pos1'(hair,180) fi;
+pos0(vair,90);
+pos[-1](hair,0); pos[-2](flare,0);
+x0=.4[x1,x[-1]]; top y0r=h+oo;
+rt x[-1]r=hround(w-.1u); y[-2]=y1;
+filldraw z0r{left}...{down}z1'r--z1'l{up}...{right}z0l--cycle;
+bulb(0,[-1],[-2]);
+penlabels([-2],[-1],0,1,2,3,4,5,6,7,8); endchar;
+
+
+endinput;