Google
 

Trailing-Edge - PDP-10 Archives - SRI_NIC_PERM_SRC_3_19910112 - metafont/zmsy10.mf
There are no other files named zmsy10.mf in the archive.
% font parameters

 fontidentifier "ZMSY";	% for Dover
 ptsize=10;

% to run:
% .r mf
% *mode=<mode>;
% *input zmsy10
% *end

% where mode is
% 0 for proofmode
% 1 for XGP
% 2 for Alphatype
% 3 for Dover
% 4 for Canon
% or -mode for magnified font.  Also specify mag=<magnification>;  (e.g., 1.1)
designsize ptsize; % ignore error messages you get with old MF!
if mode<0: mmode=-mode; new mode; mode=mmode;	% negative modes assume \\{mag} is set
else: mag=1;
fi;
magnification mag;
if mode=0: proofmode; drawdisplay; titletrace;
	pixels=18*mag; blacker=0; overcorr=1;	% for initial design of characters
else:	if mode=1: fntmode; tfxmode; no modtrace;
		magnification (3.6/200/.013837)mag;
		pixels=3.6mag; blacker=.6; overcorr=.4;	% XGP, Versatec, Varian, etc.
	else: if mode=2: crsmode; tfxmode; titletrace; no modtrace;
			pixels=73.7973; blacker=5; overcorr=1;	% Alphatype
		else: if mode=3: ocmode; tfmmode; dotwdmode; no modtrace;
				overcorr=.6;
				pixels=384*.013837*mag; blacker=0.75;  % Dover
			else: if mode=4: chrmode; tfxmode; no modtrace;
					pixels=240*.013837*mag;
					blacker=.2; overcorr=.4;	% Canon
				else: input mode;
				fi;
			fi;
		fi;
	fi;
fi;
fontfacebyte 254-2*ptsize;
hresolution pixels; vresolution pixels.

pt=pixels;
% TRIANGLE Parameters  (in raster units)

trlen=17; trhht=5; trbas=3; trmarg=3; w0=1.5;
trht=2trhht;

%	trlen = Length;  
%	trhht = half the height;  
%	trbas = height from baseline
%		Thus, top of triangle is 2trhht+trbas units from baseline
%	trmarg = space on either side of triangle
%	w0 = width of lines used
% ARROW LOOP Parameters

alvert=8pt;  alhorz=13pt;  alhgt=4pt; alhed=4.5pt;  alart=23.5pt;
alhedb=alhgt-alhed;  alhedt=alhgt+alhed;

%	alvert = vertical radius of ellipse
%	alhorz = horizontal radius of ellipse
%	alhgt = height of center of ellipse from baseline
%	alart = x posn of arrow start
%	alhed = vertical difference between arrow start and center
% POINTER Parameters

lphht=2pt;  lplen=5pt; lpbht=3pt;

%	lphht = half height
%	lplen = length of new triangle
%	lpbht = center line height
% TURNSTILE Parameters

tht=6pt;  twd=4pt;  tlmarg=1pt;

%	tht = height
%	twd = width
%	tmarg = space to left


maxht 60.
"triL";		%	'a
charcode `a;
x1=trmarg;  y2=trbas; y1=trhht+trbas; x2=x3=trmarg+trlen; y3=trht+trbas;
cpen;
w0 draw 1..2; 
w0 draw 1..3; 
w0 draw 2..3; 

charht (trbas+trht)/pt; charwd (2trmarg+trlen)/pt; chardp 0; chardw 2trmarg+trlen;
.
"triR";		%	'b
charcode `b;
x2=x3=trmarg;  y2=trbas; y1=trhht+trbas; x1=trmarg+trlen; y3=trht+trbas;
cpen;
w0 draw 1..2; 
w0 draw 1..3; 
w0 draw 2..3; 

charht (trbas+trht)/pt; charwd (2trmarg+trlen)/pt; chardp 0; chardw 2trmarg+trlen;
.
"circle"; 	%	'c
charcode `c;		%   CIRCLE
x1=11pt; y1=4pt;	%  Set x1 to desired radius
cpen;			%  Set y1 to desired height of center from baseline
2x1 draw 1; 
cpen#;
2x1-1pt draw 1; 

charht (x1+y1)/pt; charwd 2x1/pt; chardp x1-y1; chardw 2x1;
.
"ellipse"; 	%	'd
charcode `d;			%  ELLIPSE
x1=11pt; y2=4pt; x2=15pt;	%  Set x1 to desired vertical radius
hpenht 2x1;			%  Set x2 to desired horizontal radius
hpen;  2x2 draw 2; 		%  Set y2 to height of center from baseline
hpenht 2x1-1pt; 
hpen#; 2x2-1pt draw 2; 

charht (x1+y2)/pt; charwd 2x2/pt; chardp (x1-y2)/pt; chardw 2x2;
.
"left top arrow loop"; 		%	'e
charcode `e;			%  LEFT ARROW LOOP (TOP)
x1=alhorz; x2=alart; y1=y2=alhgt; 	%  x1 is horizontal radius
x6=alvert;			%  x6 is vertical radius
				%  y1 is height of center of ellipse
				%  x2 is x posn of arrow start
hpenht 2x6;
hpen;  2x1 draw 1; 
hpenht 2x6-1pt; 
hpen#; 2x1-1pt draw 1; 
rpenht 2x6;
rpen#; 2x1-x2+2pt draw 2;

x3=x2; y3=alhedt; x4=x3-3.5pt; x5=x3-1pt; y4=alhedt-1pt; y5=alhedt+3.5pt;
cpen;
1pt draw 3..4;
1pt draw 3..5;

charht (x6+y1)/pt; charwd x2/pt; chardp (x6-y1)/pt; chardw x2;
.
"left bottom arrow loop"; 	%	'f
charcode `f;			%  LEFT ARROW LOOP (BOTTOM)
x1=alhorz; x2=alart; y1=y2=alhgt; 	%  x1 is horizontal radius
x6=alvert;			%  x6 is vertical radius
				%  y1 is height of center of ellipse
				%  x2 is x posn of arrow start
hpenht 2x6;
hpen;  2x1 draw 1; 
hpenht 2x6-1pt; 
hpen#; 2x1-1pt draw 1; 
rpenht 2x6;
rpen#; (2x1-x2+2pt) draw 2;

x3=x2; y3=alhedb; x4=x3-3.5pt; x5=x3-1pt; y4=alhedb+1pt; y5=alhedb-3.5pt;
cpen;
1pt draw 3..4;
1pt draw 3..5;

charht (x6+y1)/pt; charwd x2/pt; chardp (x6-y1)/pt; chardw x2;
.
"right bottom arrow loop"; 	%	'g
charcode `g;			%  RIGHT ARROW LOOP (BOTTOM)
x1=alart-alhorz;		%  center of ellipse
x2=0;

y1=y2=alhgt; 			%  x1 is horizontal radius
x6=alvert;			%  x6 is vertical radius
				%  y1 is height of center of ellipse
				%  x2 is x posn of arrow start
hpenht 2x6;
hpen;  2alhorz draw 1; 
hpenht 2x6-1pt; 
hpen#; 2alhorz-1pt draw 1; 
lpenht 2x6;
lpen#; (alhorz-x1+2pt) draw 2;

x3=x2; y3=alhedb; x4=x3+3.5pt; x5=x3+1pt; y4=alhedb+1pt; y5=alhedb-3.5pt;
cpen;
1pt draw 3..4;
1pt draw 3..5;

charht (x6+y1)/pt; charwd alart/pt; chardp (x6-y1)/pt; chardw alart;
.
"right top arrow loop";		%	'h
charcode `h;			%  RIGHT ARROW LOOP (TOP)
x1=alart-alhorz;		%  center of ellipse
x2=0;

y1=y2=alhgt; 			%  x1 is horizontal radius
x6=alvert;			%  x6 is vertical radius
				%  y1 is height of center of ellipse
				%  x2 is x posn of arrow start
hpenht 2x6;
hpen;  2alhorz draw 1; 
hpenht 2x6-1pt; 
hpen#; 2alhorz-1pt draw 1; 
lpenht 2x6;
lpen#; (alhorz-x1+2pt) draw 2;

x3=x2; y3=alhedt; x4=x3+3.5pt; x5=x3+1pt; y4=alhedt-1pt; y5=alhedt+3.5pt;
cpen;
1pt draw 3..4;
1pt draw 3..5;

charht (x6+y1)/pt; charwd alart/pt; chardp (x6-y1)/pt; chardw alart;
.
"right arrow head";		%	'i
charcode `i;			%  RIGHT ARROW HEAD
x1=y1=0;
x2=x3=-3pt;
y2=-y3=2pt;
cpen;
1pt draw 1..2;
1pt draw 1..3;

charht y2/pt;  charwd 0; chardp y2/pt; chardw 0;
.
"left arrow head";		%	'j
charcode `j;			%  LEFT ARROW HEAD
x1=y1=0;
x2=x3=3pt;
y2=-y3=2pt;
cpen;
1pt draw 1..2;
1pt draw 1..3;

charht y2/pt;  charwd 0; chardp y2/pt; chardw 0;
.
"left pointer";			%	'k
charcode `k;			%  LEFT POINTER
%drawdisplay;

x1=x2=0;  x3=lplen;
y3=lpbht; y1=y3-lphht;  y2=y3+lphht;
cpen;
3 draw 1..2;
3 draw 1..3;
3 draw 2..3;

charht y2/pt;  charwd x3/pt; chardp 0; chardw x3;
.
"special right arrow";		%	'l
charcode `l;			%  SPECIAL CURLY RIGHT ARROW
%drawdisplay;

bz=1.5pt;
x1=0bz; x2=16bz; x3=21bz; x4=18bz; x5=14bz; x6=21bz; x7=36bz;
y1=0bz; y2=7bz; y3=8.5bz; y4=5bz;  y5=1bz;  y6=3bz;  y7=9bz;
x8=28bz; x9=29bz;
y8=y7; y9=y7-6bz;

cpen;
3 draw 1..2..3..4..5..6..7;
3 draw 7..8;
3 draw 7..9;

charht y7/pt;  charwd x7/pt; chardp 0; chardw x7;
.
"right pointer"; 		%	'm
charcode `m;			%  RIGHT POINTER
%drawdisplay;

x1=x2=lplen;  x3=0;
y3=lpbht; y1=y3-lphht;  y2=y3+lphht;
cpen;
3 draw 1..2;
3 draw 1..3;
3 draw 2..3;

charht y2/pt;  charwd x1/pt; chardp 0; chardw x1;
.
"right solid pointer";		%	'n
charcode `n;			%  RIGHT SOLID POINTER
%drawdisplay;

x1=x2=lplen;  x3=0;
y3=lpbht; y1=y3-lphht;  y2=y3+lphht;
cpen;
3 ddraw 1..2,1..3;

charht y2/pt;  charwd x1/pt; chardp 0; chardw x1;
.
"left solid pointer";		%	'o
charcode `o;			%  LEFT SOLID POINTER
%drawdisplay;

x1=x2=0;  x3=lplen;
y3=lpbht; y1=y3-lphht;  y2=y3+lphht;
cpen;
3 ddraw 1..2,1..3;

charht y2/pt;  charwd x3/pt; chardp 0; chardw x3;
.
"turnstile 1";			% 	'p
charcode `p;			%  SINGLE TURNSTILE
%drawdisplay;

x1=x2=x3=tlmarg;  x4=tlmarg+twd;
y1=0; y2=tht; y3=y4=tht/2;
cpen;
1pt draw 1..2;
1pt draw 3..4;

charht y2/pt;  charwd x4/pt; chardp 0; chardw x4;
.
"turnstile 2";			% 	'q
charcode `q;			%  DOUBLE TURNSTILE
%drawdisplay;

x1=x2=x3=x5=tlmarg;  x4=x6=tlmarg+twd;
y1=0; y2=tht; y3=y4=tht/3; y5=y6=(2*tht)/3;
cpen;
1pt draw 1..2;
1pt draw 3..4;
1pt draw 5..6;

charht y2/pt;  charwd x4/pt; chardp 0; chardw x4;
.
"turnstile 3";			% 	'r
charcode `r;			%  TRIPLE TURNSTILE
%drawdisplay;

x1=x2=x3=x5=x7=tlmarg;  x4=x6=x8=tlmarg+twd;
y1=0; y2=tht; y3=y4=tht*3/4; y5=y6=tht/2; y7=y8=tht/4;
cpen;
1pt draw 1..2;
1pt draw 3..4;
1pt draw 5..6;
1pt draw 7..8;

charht y2/pt;  charwd x4/pt; chardp 0; chardw x4;
.
"long ellipse"; 	%	's
proofmode;
charcode `s;			%  ELLIPSE
x1=11pt; y2=4pt; x2=20pt;	%  Set x1 to desired vertical radius
hpenht 2x1;			%  Set x2 to desired horizontal radius
hpen;  2x2 draw 2; 		%  Set y2 to height of center from baseline
hpenht 2x1-1pt; 
hpen#; 2x2-1pt draw 2; 

charht (x1+y2)/pt; charwd 2x2/pt; chardp (x1-y2)/pt; chardw 2x2;
.
"big left top arrow loop"; 		%	't
charcode `t;			%  LEFT ARROW LOOP (TOP)
x1=1.5*alhorz; x2=1.5*alart; y1=y2=alhgt; 	%  x1 is horizontal radius
x6=1.5*(alvert);			%  x6 is vertical radius
				%  y1 is height of center of ellipse
				%  x2 is x posn of arrow start
hpenht 2x6;
hpen;  2x1 draw 1; 
hpenht 2x6-1pt; 
hpen#; 2x1-1pt draw 1; 
rpenht 2x6;
rpen#; 2x1-x2+2pt draw 2;

x3=x2; y3=alhgt+1.5*alhed; x4=x3-3.5pt; x5=x3-1pt; y4=y3-1pt; y5=y3+3.5pt;
cpen;
1pt draw 3..4;
1pt draw 3..5;

charht (x6+y1)/pt; charwd x2/pt; chardp (x6-y1)/pt; chardw x2;
.
"big left bottom arrow loop"; 	%	'u
charcode `u;			%  LEFT ARROW LOOP (BOTTOM)
x1=1.5*alhorz; x2=1.5*alart; y1=y2=alhgt; 	%  x1 is horizontal radius
x6=1.5*alvert;			%  x6 is vertical radius
				%  y1 is height of center of ellipse
				%  x2 is x posn of arrow start
hpenht 2x6;
hpen;  2x1 draw 1; 
hpenht 2x6-1pt; 
hpen#; 2x1-1pt draw 1; 
rpenht 2x6;
rpen#; (2x1-x2+2pt) draw 2;

x3=x2; y3=alhgt-1.5*alhed; x4=x3-3.5pt; x5=x3-1pt; y4=y3+1pt; y5=y3-3.5pt;
cpen;
1pt draw 3..4;
1pt draw 3..5;

charht (x6+y1)/pt; charwd x2/pt; chardp (x6-y1)/pt; chardw x2;
.
"big right bottom arrow loop"; 	%	'v
charcode `v;			%  RIGHT ARROW LOOP (BOTTOM)
x1=1.5*alart-1.5*alhorz;		%  center of ellipse
x2=0;

y1=y2=alhgt; 			%  x1 is horizontal radius
x6=1.5*alvert;			%  x6 is vertical radius
				%  y1 is height of center of ellipse
				%  x2 is x posn of arrow start
hpenht 2x6;
hpen;  3alhorz draw 1; 
hpenht 2x6-1pt; 
hpen#; 3alhorz-1pt draw 1; 
lpenht 2x6;
lpen#; (1.5*alhorz-x1+2pt) draw 2;

x3=x2; y3=alhgt-1.5*alhed; x4=x3+3.5pt; x5=x3+1pt; y4=y3+1pt; y5=y3-3.5pt;
cpen;
1pt draw 3..4;
1pt draw 3..5;

charht (x6+y1)/pt; charwd 1.5*alart/pt; chardp (x6-y1)/pt; chardw 1.5*alart;
.
"big right top arrow loop";		%	'w
charcode `w;			%  RIGHT ARROW LOOP (TOP)
x1=1.5*alart-1.5*alhorz;		%  center of ellipse
x2=0;

y1=y2=alhgt; 			%  x1 is horizontal radius
x6=1.5*alvert;			%  x6 is vertical radius
				%  y1 is height of center of ellipse
				%  x2 is x posn of arrow start
hpenht 2x6;
hpen;  3alhorz draw 1; 
hpenht 2x6-1pt; 
hpen#; 3alhorz-1pt draw 1; 
lpenht 2x6;
lpen#; (1.5*alhorz-x1+2pt) draw 2;

x3=x2; y3=alhgt+1.5*alhed; x4=x3+3.5pt; x5=x3+1pt; y4=y3-1pt; y5=y3+3.5pt;
cpen;
1pt draw 3..4;
1pt draw 3..5;

charht (x6+y1)/pt; charwd alart/pt; chardp (x6-y1)/pt; chardw alart;
.