home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Fresh Fish 8
/
FreshFishVol8-CD2.bin
/
bbs
/
text
/
pastex-1.3-7of9.lha
/
PasTeX
/
MF
/
inputs
/
dc
/
dxpunct.mf
< prev
next >
Wrap
Text File
|
1994-04-12
|
10KB
|
308 lines
% This is DXPUNCT.MF in text format, as of March 24, 1992
%
% DC fonts Version 1.1 (prerelease of EC fonts)
%
% [ heavily borrowed from the Computer Modern Roman family of
% fonts by D. E. Knuth ]
%
% Content:
%
% punctuation
%
dcchar "guillemets (right)";
beginchar(oct"017",8u#,asc_height#,0);
italcorr h#*slant-u#;
adjust_fit(0,0);
pickup tiny.nib;
numeric distance,thickness;
thickness=hround(.5[cap_curve,hair]);
distance=hround(max(4u,thickness+1.5u));
pos1(hair,180);
pos2(thickness,180);
pos3(hair,180);
lft x1r=lft x3r=hround(1.7u+eps);
x2l=hround(w-1.7u-eps); %
bot y1=vair;
% y1-y2=y3-y1; % y1-y3=spread;
y2=.5[y1,y3]=bar_height; % math_axis;
filldraw stroke z1e--z2e--z3e;
%filldraw stroke (z1e--z2e--z3e) shifted (-distance,0); % diagonals
labels(1,2,3); endchar;
dcchar "guillemet left";
compute_spread(5/4x_height#,3/2x_height#);
beginchar(oct"016",8u#,v_center(spread#+rule_thickness#));
italcorr h#*slant-u#;
adjust_fit(0,0);
pickup tiny.nib;
numeric distance,thickness;
thickness=hround(.5[cap_curve,hair]);
distance=hround(max(4u,thickness+1.5u));
pos1(hair,0);
pos2(thickness,0);
pos3(hair,0);
lft x2l=hround 1.7u-eps; x1=x3=w-x2;
bot y1=vair;
% y1-y2=y3-y1; % y1-y3=spread;
y2=.5[y1,y3]=bar_height; % math_axis;
filldraw stroke z1e--z2e--z3e;
labels(1,2,3); endchar;
dcchar "guillemets left";
compute_spread(5/4x_height#,3/2x_height#);
beginchar(oct"023",12u#,v_center(spread#+rule_thickness#));
italcorr h#*slant-u#;
adjust_fit(0,0);
pickup tiny.nib;
numeric distance,thickness;
thickness=hround(.5[cap_curve,hair]);
distance=hround(max(4u,thickness+1.5u));
pos1(hair,0);
pos2(thickness,0);
pos3(hair,0);
lft x2l=hround 1.7u-eps; x1=x3=w-x2-distance;
bot y1=vair;
% y1-y2=y3-y1; % y1-y3=spread;
y2=.5[y1,y3]=bar_height; % math_axis;
filldraw stroke z1e--z2e--z3e;
filldraw stroke (z1e--z2e--z3e) shifted (distance,0); % diagonals
labels(1,2,3); endchar;
dcchar "guillemets (right)";
beginchar(oct"024",12u#,asc_height#,0);
italcorr h#*slant-u#;
adjust_fit(0,0);
pickup tiny.nib;
numeric distance,thickness;
thickness=hround(.5[cap_curve,hair]);
distance=hround(max(4u,thickness+1.5u));
pos1(hair,180);
pos2(thickness,180);
pos3(hair,180);
lft x1r=lft x3r=hround(distance+1.7u+eps);
x2l=hround(w-1.7u-eps); % x1=x3=x2-distance;
bot y1=vair;
% y1-y2=y3-y1; % y1-y3=spread;
y2=.5[y1,y3]=bar_height; % math_axis;
filldraw stroke z1e--z2e--z3e;
filldraw stroke (z1e--z2e--z3e) shifted (-distance,0); % diagonals
labels(1,2,3); endchar;
dcchar "German opening comma";
numeric dot_diam#; dot_diam#=if monospace: 5/4 fi\\ dot_size#;
define_whole_blacker_pixels(dot_diam);
beginchar(oct"015",5u#,dot_diam#,comma_depth#);
adjust_fit(0,0);
x1+.5dot_diam=hround(w-.5dot_diam); y1-.5dot_diam=0;
comma(1,a,dot_diam,.2u,comma_depth); % dot and tail
penlabels(1); endchar;
dcchar "German Opening quotes";
beginchar(oct"022",7u#+max(2u#,dot_size#),asc_height#,0);
italcorr asc_height#*slant+dot_size#-4.1u#;
adjust_fit(0,0);
x2-.5dot_size=w-hround 3u; y2-.5dot_size=0;
x2-x1=hround(1.5u+max(2u,dot_size)); y2=y1;
comma(1,a,dot_size,.25u,comma_depth); % left dot and tail
comma(2,b,dot_size,.25u,comma_depth); % right dot and tail
penlabels(1,2); endchar;
dcchar "Exclamation point";
beginchar("!",5u#+width_adj#,asc_height#,0);
italcorr asc_height#*slant-2u#-.5width_adj#+.5dot_size#;
adjust_fit(0,0);
pickup tiny.nib; pos3(dot_size,0); pos4(dot_size,90);
lft x3l=hround(.5w-.5dot_size); bot y4l=0; z3=z4; dot(3,4); % dot
numeric bot_width;
bot_width=if hefty:max(hround .8dot_size,fine.breadth) else: hair fi;
pickup fine.nib; pos1(dot_size,0); pos2(bot_width,0);
x1=x2=x3; bot y2=.25[top y4r,x_height]+1;
if square_dots: top y1=h;
filldraw stroke z1e--z2e; % stem
else: top z0=(x1,h+o); y1+.5dot_size=h+o;
filldraw z1r...z0...z1l---z2l--z2r---cycle; fi % stem and bulb
penlabels(0,1,2,3,4); endchar;
dcchar "Apostrophe";
beginchar("'",5u#,asc_height#,0);
italcorr asc_height#*slant+.5dot_size#-2u#;
adjust_fit(0,0);
x1-.5dot_size=hround(.5w-.5dot_size); y1+.5dot_size=h;
if monospace: comma(1,a,dot_size,.28u,vround 1.5comma_depth); % large comma
else: comma(1,a,dot_size,.25u,comma_depth); fi % comma with increased jut
penlabels(1); endchar;
dcchar "Asterisk";
beginchar("*",9u#,
if low_asterisk:math_axis#+.5x_height# else: body_height# fi,0);
italcorr h#*slant-.75u#;
adjust_fit(0,0);
numeric ast_flare; ast_flare=hround .7[thin_join,stem];
x0=.5w; y0=h-.5x_height;
for d=-150 step 60 until 150: z[d]=z0+.5dir d xscaled 7.5u yscaled x_height;
numeric theta; theta=angle(z[d]-z0);
fill z0+.5(0,-thin_join)rotated theta
---z[d]+.5(-ast_flare,-ast_flare)rotated theta
..z[d]..z[d]+.5(-ast_flare,ast_flare)rotated theta
---z0+.5(0,thin_join)rotated theta--cycle; endfor % diagonal at angle |d|
labels(0,[-150],[-90],[-30],30,90,150); endchar;
dcchar "Plus sign";
beginarithchar("+"); pickup extra_rule.nib;
x1=x2=good.x .5w; top y1=h+eps; .5[y1,y2]=math_axis;
lft x3=hround u-eps; x4=w-x3; y3=y4=math_axis;
draw z1--z2; % stem
draw z3--z4; % crossbar
labels(1,2,3,4); endchar;
dcchar "Comma";
numeric dot_diam#; dot_diam#=if monospace: 5/4 fi\\ dot_size#;
define_whole_blacker_pixels(dot_diam);
beginchar(",",5u#,dot_diam#,comma_depth#);
adjust_fit(0,0);
x1-.5dot_diam=hround(.5w-.5dot_diam); y1-.5dot_diam=0;
comma(1,a,dot_diam,.2u,comma_depth); % dot and tail
penlabels(1); endchar;
dcchar "Period";
numeric dot_diam#; dot_diam#=if monospace: 5/4 fi\\ dot_size#;
define_whole_blacker_pixels(dot_diam);
beginchar(".",5u#,dot_diam#,0);
adjust_fit(0,0); pickup fine.nib;
pos1(dot_diam,0); pos2(dot_diam,90);
lft x1l=hround(.5w-.5dot_diam); bot y2l=0; z1=z2; dot(1,2); % dot
penlabels(1,2); endchar;
dcchar "Virgule (slash)";
beginchar("/",9u#,body_height#,paren_depth#);
italcorr body_height#*slant-.5u#;
adjust_fit(0,0); pickup extra_rule.nib;
rt x1=hround(w-u)+eps; top y1=h+eps;
lft x2=hround u-eps; bot y2=-d-eps;
draw z1--z2; % diagonal
penlabels(1,2); endchar;
dcchar "Colon";
numeric dot_diam#; dot_diam#=if monospace: 5/4 fi\\ dot_size#;
define_whole_blacker_pixels(dot_diam);
beginchar(":",5u#,x_height#,0);
italcorr x_height#*slant+.5dot_diam#-2u#;
adjust_fit(0,0); pickup fine.nib;
pos1(dot_diam,0); pos2(dot_diam,90);
lft x1l=hround(.5w-.5dot_diam); top y2r=h; z1=z2; dot(1,2); % upper dot
pos3(dot_diam,0); pos4(dot_diam,90);
x3=x1; bot y4l=0; z3=z4; dot(3,4); % lower dot
penlabels(1,2,3,4); endchar;
dcchar "Semicolon";
numeric dot_diam#; dot_diam#=if monospace: 5/4 fi\\ dot_size#;
define_whole_blacker_pixels(dot_diam);
beginchar(";",5u#,x_height#,comma_depth#);
italcorr x_height#*slant+.5dot_diam#-2u#;
adjust_fit(0,0); pickup fine.nib;
pos1(dot_diam,0); pos2(dot_diam,90);
lft x1l=hround(.5w-.5dot_diam); top y2r=h; z1=z2; dot(1,2); % upper dot
x3-.5dot_diam=hround(.5w-.5dot_diam); y3-.5dot_diam=0;
comma(3,a,dot_diam,.05u,comma_depth); % lower dot and tail
penlabels(1,2,3); endchar;
dcchar "Equals sign";
compute_spread(.45x_height#,.55x_height#);
beginchar("=",14u#,v_center(spread#+rule_thickness#));
italcorr h#*slant-.5u#;
adjust_fit(0,0); pickup extra_rule.nib;
lft x1=hround u-eps; x3=x1; x2=x4=w-x1;
y1=y2; y3=y4; y1-y3=spread; .5[y1,y3]=math_axis;
draw z1--z2; % upper bar
draw z3--z4; % lower bar
labels(1,2,3,4); endchar;
dcchar "Reverse apostrophe";
beginchar("`",5u#,asc_height#,0);
italcorr asc_height#*slant+.5dot_size#-2u#;
adjust_fit(0,0);
x1-.5dot_size=hround(.5w-.5dot_size); y1+.5dot_size=h-comma_depth;
if monospace: ammoc(1,a,dot_size,.28u,vround 1.5comma_depth); % large ammoc
else: ammoc(1,a,dot_size,.25u,comma_depth); fi % normal ammoc
penlabels(1); endchar;
dcchar "Spanish open exclamation point";
beginchar(oct"275",5u#+width_adj#,asc_height#-desc_depth#,desc_depth#);
italcorr h#*slant-2u#-.5width_adj#+.5dot_size#;
adjust_fit(0,0);
pickup tiny.nib; pos3(dot_size,0); pos4(dot_size,90);
lft x3l=hround(.5w-.5dot_size); top y4r=h; z3=z4; dot(3,4); % dot
numeric top_width;
top_width=if hefty:max(hround .8dot_size,fine.breadth) else: hair fi;
pickup fine.nib; pos1(dot_size,0); pos2(top_width,0);
x1=x2=x3; top y2=.25[bot y4l,h-x_height]-1;
if square_dots: bot y1=-d;
filldraw stroke z1e--z2e; % stem
else: bot z0=(x1,-d-o); y1-.5dot_size=-d-o;
fil