summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/fonts/source/jknappen/fc/upperst.mf
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/fonts/source/jknappen/fc/upperst.mf')
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/upperst.mf271
1 files changed, 271 insertions, 0 deletions
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/upperst.mf b/Master/texmf-dist/fonts/source/jknappen/fc/upperst.mf
new file mode 100644
index 00000000000..ed616e663b4
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/upperst.mf
@@ -0,0 +1,271 @@
+% This is UPPERST.MF
+% Version 1.1a
+% 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, Esh, var_Esh, long_T, sami_T (crossed T), Thorn,
+% hooktop_T
+%
+% Higher versions of this file might include more characters.
+cmchar "The letter S";
+beginchar("S",10u#,cap_height#,0);
+italcorr cap_height#*slant-u#;
+adjust_fit(0,0);
+numeric theta; theta=90-angle(50u,h); slope:=-h/50u; % angle at middle
+numeric s_slab; s_slab=if serifs:slab else:vround .2[slab,cap_stem] fi;
+numeric ess'; ess'=max(fine.breadth,cap_ess);
+pickup fine.nib; pos2(max(fine.breadth,s_slab-vround vair_corr),-90);
+pos0(ess',theta); pos7(s_slab,-90);
+x2+x7=2x0=w; x7-x2=if serifs: u else: 0 fi; top y2l=h+o; bot y7r=-o;
+y0=.52h; lft x3l=hround u; rt x6r=hround(w-u);
+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;
+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.5u); lft x8r=hround u;
+ bot y1=vround 2/3h+1; top y8=vround 1/3h-1;
+ filldraw stroke z1e{x2-x1,10(y2-y1)}....{left}z2e; % upper arc
+ filldraw stroke z7e{left}....{up}z8e; % lower arc
+ path upper_arc, lower_arc;
+ upper_arc=z1{x2-x1,10(y2-y1)}....{left}z2;
+ lower_arc=z7{left}....{up}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(1.2flare,-100); pos8(1.2flare,-100);
+ x1l=good.x(x1l+w-1.75u-rt x1); lft x8r=hround .8u;
+ top y1l=vround .93h+o; bot y8r=vround .1h-o;
+ 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;
+math_fit(0,.5ic#); penlabels(0,1,1',2,3,4,5,6,7,8,8',9,10); endchar;
+
+iff known S_dotu:
+cmchar "Capital letter S with dot below";
+beginchar(S_dotu,10u#,cap_height#,0.875desc_depth#);
+italcorr cap_height#*slant-u#;
+adjust_fit(0,0);
+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;
+
+iff known S_hachek:
+cmchar "Capital letter S with hachek";
+beginchar(S_hachek,10u#,cap_height#+comma_depth#,0);
+italcorr cap_height#*slant-u#;
+adjust_fit(0,0);
+currentpicture:=savedpicture;
+h':=vround(cap_height+comma_depth); % 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'-cap_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[cap_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;
+
+savedpicture:=nullpicture;
+
+iff known Esh:
+cmchar "Capital letter ESH"; % jk
+beginchar(Esh,3u#+max(1.5u#,cap_stem#)+max(3.5u#,2flare#),
+ cap_height#,0);
+italcorr asc_height#*slant+.75u#;
+adjust_fit(if monospace:u#,u# else: 0,0 fi); pickup fine.nib;
+pos0(flare+(cap_stem-stem),0); pos1(cap_hair,0); pos2(cap_band,90);
+pos4(cap_stem,180);
+pos5(cap_stem,0);
+pos7(cap_band,-90); pos8(cap_hair,-180); pos9(flare+(cap_stem-stem),-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
+penlabels(0,1,2,4,5,7,8,9); endchar;
+
+
+iff known var_Esh:
+cmchar "Capital letter variant ESH"; % jk
+beginchar(var_Esh,3u#+max(1.5u#,cap_stem#)+max(3.5u#,2flare#),
+ cap_height#,desc_depth#);
+italcorr asc_height#*slant+.75u#;
+adjust_fit(if monospace:u#,u# else: 0,0 fi); pickup fine.nib;
+pos0(flare+(cap_stem-stem),0); pos1(cap_hair,0); pos2(cap_band,90);
+pos4(cap_stem,180);
+pos5(cap_stem,0);
+pos7(cap_band,-90); pos8(cap_hair,-180); pos9(flare+(cap_stem-stem),-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
+penlabels(0,1,2,4,5,7,8,9); endchar;
+
+cmchar "The letter T";
+beginchar("T",13u#-width_adj#,cap_height#,0);
+italcorr cap_height#*slant-beak_jut#-.25u#;
+adjust_fit(0,0);
+h:=vround(h-2stem_corr);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround(.5w-.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-.65u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,.7beak_jut); % right arm and beak
+pos5(hair,180); x5=w-x4; y5=y4;
+arm(3,5,f,beak_darkness,-.7beak_jut); % left arm and beak
+if serifs: dish_serif(2,1,c,1/3,1.414cap_jut,d,1/3,1.414cap_jut); % lower serif
+ nodish_serif(1,2,a,1/3,.5cap_jut,b,1/3,.5cap_jut); fi % upper bracketing
+math_fit(-.75cap_height#*slant,ic#-2.5u#); penlabels(1,2,3,4,5,6); endchar;
+
+iff known Thorn:
+%cmchar "Icelandic big thorn"; % from im
+cmchar"Capital letter THORN";
+beginchar(Thorn,12u#,cap_height#,0);
+italcorr .75cap_height#*slant-.5u#;
+adjust_fit(cap_serif_fit#,0);
+pickup tiny.nib; penpos1(cap_stem'-tiny,0); penpos2(cap_stem-tiny,0);
+pos0(cap_stem',0); pos0'(cap_stem,0);
+lft x1l=hround max(2u,3u-.5cap_stem'); top y1=h; bot y2=0;
+x1l=x2l=x0l=x0'l; y0=y0'=y7;
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos5(cap_curve if hefty:-3stem_corr fi,0);
+penpos6(.5[vair,cap_band],-90); penpos7(.5[vair,cap_band],-90);
+% z3r=top z1; y4=y3; y5=.5[y4l,y6l]; y6=y7;
+% x7=x2; y7l=vround .5h; x4=x6=.5w+.75u; x5r=hround(w-u);
+ x3=x1;
+ y3r=vround .8h;
+ y4=y3;
+ y5=.5[y4,y6];
+ y6=y7;
+ x7=x2;
+ y7l=vround .3h;
+ x4=x6=.5w+.75u; x5r=hround(w-u);
+x4l:=x6l:=x4-.25cap_curve;
+filldraw stroke z1e--z0e--z0'e--z2e; % stem
+fill stroke z3e..pulled_arc.e(4,5) & pulled_arc.e(5,6)..z7e; % lobe
+if serifs: dish_serif(1,2,a,1/3,1.05cap_jut,b,1/3,1.05cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,1.05cap_jut,d,1/3,1.05cap_jut); fi % lower serif
+math_fit(0,ic#-2.5u#); penlabels(0,1,2,3,4,5,6,7); endchar;
+
+iff known sami_T:
+cmchar "Capital letter crossed T"; % based on cm
+beginchar(sami_T,13u#-width_adj#,cap_height#,0);
+italcorr cap_height#*slant-beak_jut#-.25u#;
+adjust_fit(0,0);
+h:=vround(h-2stem_corr);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround(.5w-.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-.65u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,.7beak_jut); % right arm and beak
+pos5(hair,180); x5=w-x4; y5=y4;
+arm(3,5,f,beak_darkness,-.7beak_jut); % left arm and beak
+if serifs: dish_serif(2,1,c,1/3,1.414cap_jut,d,1/3,1.414cap_jut); % lower serif
+ nodish_serif(1,2,a,1/3,.5cap_jut,b,1/3,.5cap_jut); fi % upper bracketing
+pickup crisp.nib; y7-.5bar=.2[bar_height,x_height];
+y8+.5bar=.8[bar_height,x_height]; x7=.5w-2.5u; x8=.5w+2.5u;
+numeric theta; theta=angle(z8-z7)+90; pos7(bar,theta); pos8(bar,theta);
+filldraw stroke z7e--z8e; % cross piece (from "Cross for polish l and L")
+math_fit(-.75cap_height#*slant,ic#-2.5u#); penlabels(1,2,3,4,5,6,7,8); endchar;
+
+iff known long_T:
+cmchar "The letter long T"; % jk
+beginchar(long_T,13u#-width_adj#,cap_height#,0);
+italcorr cap_height#*slant-beak_jut#;
+adjust_fit(0,0);
+h:=vround(h-2stem_corr);
+slantswitch; % mirror will reswitch slant
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround(.5w-.5cap_stem); top y1=h; y2=.21h;
+filldraw stroke z1e--z2e; % stem
+if serifs:
+ pos13(vair,-90); pos14(cap_hair,-180); pos15(flare+(cap_stem-stem),-180);
+ bot y13r=-o; x13=.5[x14,x2];
+ y15=1/6h; rt x15l=2.75u; z15r=z14r;
+ filldraw stroke super_arc.e(2,13); % arc
+ bulb(13,14,15); % bulb
+else:
+ pickup fine.nib; pos13(cap_stem',0); z13=z2; pos14(flare, angle(6.5u,-h));
+ pos15(1.1flare,-100);
+ bot y14r=-o; x14r=.5[x13r,x15r]; lft x15r=hround .75u; bot y15r=vround .06h-o;
+ filldraw stroke z13e{down}...term.e(14,15,left,1,4); % arc & terminal
+fi
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-.65u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,.7beak_jut); % right arm and beak
+pos5(hair,180); x5=w-x4; y5=y4;
+arm(3,5,f,beak_darkness,-.7beak_jut); % left arm and beak
+if serifs:
+ nodish_serif(1,2,a,1/3,.5cap_jut,b,1/3,.5cap_jut); fi % upper bracketing
+mirror(.5w);
+math_fit(-.75cap_height#*slant,ic#-2.5u#); penlabels(1,2,3,4,5,6,13,14,15);
+endchar;
+
+iff known hooktop_T:
+cmchar "Capital letter hooktop T"; % jk, based on cm Gamma
+beginchar(hooktop_T,9u#-width_adj#,cap_height#,0);
+italcorr cap_height#*slant-beak_jut#-.25u#;
+adjust_fit(4u#,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); % arm and beak
+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
+pickup crisp.nib;
+left_hook(1,1',21,22,23,24); % left hook
+math_fit(0,ic#-2.5u#); penlabels(1,2,3,4,21,22,23,24); endchar;
+
+
+endinput;