home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Mega Top 1
/
os2_top1.zip
/
os2_top1
/
APPS
/
TEKST
/
TEXDISK
/
EMSY.ZIP
/
EMTEX
/
MFINPUT
/
EMSY.MF
next >
Wrap
Text File
|
1990-09-18
|
4KB
|
131 lines
% This is EMSY.MF
font_coding_scheme:="em symbols";
mode_setup; font_setup;
% proofing:=2;
% Define
% boolean test;
% to omit tested characters
def tested = iff (not boolean test) : enddef;
% This character is stolen from italms.mf (oct"176")
tested cmchar "Leftward arrow (vector) accent";
beginchar(hex"00",9u#,asc_height#+.5rule_thickness#,0);
italcorr .7[x_height#,asc_height#]*slant;
adjust_fit(0,0); pickup rule.nib;
lft x1=hround .5u; x2=w-x1; y1=y2=good.y .7[x_height,asc_height];
draw z1--z2; % bar
lft x3=lft x4=hround(x1+u);
y3=y2+.3(asc_height-x_height); y4=y2-.3(asc_height-x_height);
draw z3{x1-x3,2(y1-y3)}...{2(x1-x3),y1-y3}z1; % upper point
draw z4{x1-x4,2(y1-y4)}...{2(x1-x4),y1-y4}z1; % lower point
labels(1,2,3,4); endchar;
% The remaining characters will not be slanted
% TFM data
font_slant slant; font_x_height x_height#;
font_quad 18u#+4letter_fit#;
slant:=mono_charic#:=0;
currenttransform:=identity yscaled aspect_ratio scaled granularity;
% This is a fat upward arrow used for printing the shift key
tested cmchar "Fat upward arrow (shift key)";
beginchar(hex"10",20u#,cap_height#,0); % use capitals height
italcorr .4cap_height#*slant; % .4: see below
adjust_fit(0,0); pickup rule.nib;
lft x7=w-rt x2=hround .5u;
x6=hround(x7+.25[x7,x2]); % the stem width is half the arrow head width
x6-x7=x2-x3;
x5=x6; x4=x3;
x1=.5w; top y1=h;
y7=y6=y3=y2=vround(.4h); % arrow head height / stem height = 3/2
bot y5=bot y4=0;
draw z1--z2--z3--z4--z5--z6--z7--cycle;
labels(range 1 thru 7); endchar;
% This is a fat downward arrow used for printing lock keys
tested cmchar "Fat downward arrow (lock key)";
beginchar(hex"11",20u#,cap_height#,0); % use capitals height
italcorr .6cap_height#*slant; % .6: see below
adjust_fit(0,0); pickup rule.nib;
lft x7=w-rt x2=hround .5u;
x6=hround(x7+.25[x7,x2]); % the stem width is half the arrow head width
x6-x7=x2-x3;
x5=x6; x4=x3;
x1=.5w; bot y1=0;
y7=y6=y3=y2=vround(.6h); % arrow head height / stem height = 3/2
top y5=top y4=h;
draw z1--z2--z3--z4--z5--z6--z7--cycle;
labels(range 1 thru 7); endchar;
% This is a equiliteral triangle pointing to the left
% used for printing the backspace and return keys
tested cmchar "Leftward triangle";
beginchar(hex"12",10u#,cap_height#,0); % use capitals height
adjust_fit(0,0); % no pickup
w-x1=w-x2=x3=0; % no space at either side
y3=.5h;
z1-z2=(z3-z2) rotated 60;
fill z1--z2--z3--cycle;
italcorr y1*slant;
labels(1,2,3); endchar;
% This is a padlock for printing lock keys
cmchar "Padlock";
beginchar(hex"13",10u#,asc_height#,0); % use lower case ascenders height
adjust_fit(0,0);
pickup light_rule.nib;
if .5w<>good.x .5w: change_width; fi
top y8=0; % overshoot
y6=y10=good.y(.6[0,h]);
y7=y9=good.y(.6[0,y10]);
lft x6=w-rt x10=hround .5u;
x7=x6; x9=x10;
x8=hround .5w;
draw z6--z7{down}..z8{right}..{up}z9--z10--cycle;
pickup fine.nib;
bot y3r=h; % overshoot
y2r=vround(.3[y10,h]);
y5r=y5l=y1l=y1r=y10;
y4l=y4r=y2l=y2r;
x3l=x3r=x8;
x5r=good.x(1/16[x6,x10]);
x1r=good.x(1/16[x10,x6]);
x1r-x1l=x2r-x2l=x4l-x4r=x5l-x5r=hround(h/15);
y3r-y3l=vround(h/15);
x1r=x2r; x4r=x5r;
forsuffixes $=l,r:
draw z1$--z2${up}..z3${left}..{down}z4$--z5$;
endfor
z11=(hround .5w,vround(.7[0,y10]));
fill fullcircle xscaled hround(h/8) yscaled vround(h/8) shifted z11;
y12=y13=vround(.35[0,y10]);
x12=hround(x11-.5h/8+eps);
x13=hround(x11+.5h/8-eps);
% show z11; show z12; show z13;
fill z11--z12--z13--cycle;
italcorr y10*slant;
penlabels(range 1 thru 13); endchar;
bye