summaryrefslogtreecommitdiff
path: root/fonts/cmbright/fonts/source/public/cmbright/ebpunct.mf
diff options
context:
space:
mode:
Diffstat (limited to 'fonts/cmbright/fonts/source/public/cmbright/ebpunct.mf')
-rw-r--r--fonts/cmbright/fonts/source/public/cmbright/ebpunct.mf340
1 files changed, 340 insertions, 0 deletions
diff --git a/fonts/cmbright/fonts/source/public/cmbright/ebpunct.mf b/fonts/cmbright/fonts/source/public/cmbright/ebpunct.mf
new file mode 100644
index 0000000000..a057a36b44
--- /dev/null
+++ b/fonts/cmbright/fonts/source/public/cmbright/ebpunct.mf
@@ -0,0 +1,340 @@
+% ebpunct.mf
+% [= expunct.mf, changed by Walter Schmidt, see (CMBR)]
+%
+% (c) Copyright 1995, 1996, 1997 J"org Knappen
+% (c) Copyright 1990, 1992 Norbert Schwarz
+%
+% This file is part of the EC Bright fonts version 1.0
+%
+% Content:
+%
+% punctuation
+
+%%% italcorr corrital
+
+version_check(1,0); % |version_check| was introduced in dc1.3
+
+ecchar "Single left guillemet"; % jk % (CMBR)
+beginchar(oct"016",7u#,2bar_height#,0);
+italcorr h#*slant-u#;
+adjust_fit(0,0);
+ pickup fine.nib;
+ pos1(qvair,0); pos2(if monospace: qvair else: stem fi,0); pos3(qvair,0);
+ rt x1r=rt x3r=w-2u-eps;
+ lft x2l=hround(if not monospace: 2 fi\\ u)-eps;
+ bot y3=vair; y2=.5[y1,y3]=bar_height;
+ if not serifs or monospace:
+ filldraw stroke z1e--z2e--z3e;
+ else:
+ filldraw stroke
+ z1e{(x2e-x1e),1.8(y2e-y1e)}..{curl1}z2e{curl1}..
+ {(x3e-x2e),1.8(y3e-y2e)}z3e;
+ fi
+ penlabels(1,2,3);
+endchar;
+
+ecchar "Single right guillemet"; % jk % (CMBR)
+beginchar(oct"017",7u#,2bar_height#,0);
+italcorr h#*slant-u#;
+adjust_fit(0,0);
+ pickup fine.nib;
+ pos1(qvair,0); pos2(if monospace: qvair else: stem fi,0); pos3(qvair,0);
+ lft x1l=lft x3l=2u+eps;
+ rt x2r=w-hround(if not monospace: 2 fi\\ u)+eps;
+ bot y3=vair; y2=.5[y1,y3]=bar_height;
+ if not serifs or monospace:
+ filldraw stroke z1e--z2e--z3e;
+ else:
+ filldraw stroke
+ z1e{(x2e-x1e),1.8(y2e-y1e)}..{curl1}z2e{curl1}..
+ {(x3e-x2e),1.8(y3e-y2e)}z3e;
+ fi
+penlabels(1,2,3); endchar;
+
+ecchar "French opening quotes"; % from pl_cud (plfonts) % (CMBR)
+beginchar_twice(oct"023",9u#,2bar_height#,0);
+adjust_fit(0,0);
+ pickup fine.nib;
+ numeric the_shift,shift_corr;
+ the_shift=hround(max(3u,1.7stem)); shift_corr=the_shift-3u;
+ pos1(qvair,0); pos2(if monospace: qvair else: stem fi,0); pos3(qvair,0);
+ rt x1r=rt x3r=hround(.6w-shift_corr)-eps;
+ lft x2l=hround(if not monospace: 2 fi\\ u-shift_corr)-eps;
+ bot y3=vair; y2=.5[y1,y3]=bar_height;
+ for i:=1,2,3:
+ forsuffixes $:=r, ,l: z[i]'$=z[i]$ + the_shift*right; endfor
+ endfor
+ if not serifs or monospace:
+ filldraw stroke z1e--z2e--z3e; filldraw stroke z1'e--z2'e--z3'e;
+ else:
+ filldraw stroke
+ z1e{(x2e-x1e),1.8(y2e-y1e)}..{curl1}z2e{curl1}..
+ {(x3e-x2e),1.8(y3e-y2e)}z3e;
+ filldraw stroke
+ z1'e{(x2'e-x1'e),1.8(y2'e-y1'e)}..{curl1}z2'e{curl1}..
+ {(x3'e-x2'e),1.8(y3'e-y2'e)}z3'e;
+ fi;
+% italic correction is set to |0| in |beginchar|, so let's correct it
+ corrital z1'r;
+ penlabels(1,2,3,1',2',3');
+repeat_once;
+endchar;
+
+ecchar "French closing quotes"; % from pl_cud (plfonts) % (CMBR)
+beginchar_twice(oct"024",9u#,2bar_height#,0);
+adjust_fit(0,0)
+ pickup fine.nib;
+ numeric the_shift,shift_corr;
+ the_shift=hround(max(3u,1.7stem)); shift_corr=the_shift-3u;
+ pos1(qvair,0); pos2(if monospace: qvair else: stem fi,0); pos3(qvair,0);
+ lft x1l=lft x3l=w-hround(.6w-shift_corr)+eps;
+ rt x2r=w-hround(if not monospace: 2 fi\\ u-shift_corr)+eps;
+ bot y3=vair; y2=.5[y1,y3]=bar_height;
+ for i:=1,2,3:
+ forsuffixes $:=r, ,l: z[i]'$=z[i]$ + the_shift*left; endfor
+ endfor
+ if not serifs or monospace:
+ filldraw stroke z1e--z2e--z3e; filldraw stroke z1'e--z2'e--z3'e;
+ else:
+ filldraw stroke
+ z1e{(x2e-x1e),1.8(y2e-y1e)}..{curl1}z2e{curl1}..
+ {(x3e-x2e),1.8(y3e-y2e)}z3e;
+ filldraw stroke
+ z1'e{(x2'e-x1'e),1.8(y2'e-y1'e)}..{curl1}z2'e{curl1}..
+ {(x3'e-x2'e),1.8(y3'e-y2'e)}z3'e;
+ fi;
+% italic correction is set to |0| in |beginchar|, so let's correct it
+ corrital z2r;
+ penlabels(1,2,3,1',2',3');
+repeat_once;
+endchar;
+
+ecchar "German opening comma";
+beginchar(oct"015",5u#,pdot_diam#,comma_depth#);
+adjust_fit(0,0);
+x1-.5pdot_diam=hround(.5w-.5pdot_diam); y1-.5pdot_diam=0;
+comma(1,a,pdot_diam,.2u,comma_depth); % dot and tail
+penlabels(1); endchar;
+
+ecchar "German Opening quotes"; % (CMBR)
+beginchar(oct"022",3u#+pdot_diam#,pdot_diam#,comma_depth#);
+italcorr asc_height#*slant+pdot_diam#-4.1u#;
+adjust_fit(.5u#,.5u#);
+x2+.5pdot_diam=hround(w-.6u+.5pdot_diam); y2-.5pdot_diam=0;
+x1=w-x2; y2=y1;
+comma(1,a,pdot_diam,.25u,comma_depth); % left dot and tail
+comma(2,b,pdot_diam,.25u,comma_depth); % right dot and tail
+penlabels(1,2); endchar;
+
+ecchar "Exclamation point";
+beginchar("!",5u#+width_adj#,asc_height#,0);
+italcorr asc_height#*slant-2u#-.5width_adj#+.5pdot_diam#;
+adjust_fit(0,0);
+pickup tiny.nib; pos3(pdot_diam,0); pos4(pdot_diam,90);
+lft x3l=hround(.5w-.5pdot_diam); bot y4l=0; z3=z4; dot(3,4); % dot
+numeric bot_width;
+bot_width=if hefty:max(hround .8pdot_diam,fine.breadth) else: hair fi;
+pickup fine.nib; pos1(pdot_diam,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+.5pdot_diam=h+o;
+ filldraw z1r...z0...z1l---z2l--z2r---cycle; fi % stem and bulb
+penlabels(0,1,2,3,4); endchar;
+
+
+
+ecchar "Apostrophe";
+beginchar("'",5u#,asc_height#,0);
+italcorr asc_height#*slant+.5pdot_diam#-2u#;
+adjust_fit(0,0);
+x1-.5pdot_diam=hround(.5w-.5pdot_diam); y1+.5pdot_diam=h;
+if monospace: comma(1,a,pdot_diam,.28u,vround 1.5comma_depth); % large comma
+else: comma(1,a,pdot_diam,.25u,comma_depth); fi % comma with increased jut
+penlabels(1); endchar;
+
+
+ecchar "Asterisk"; % (CMBR)
+beginchar("*",9u#,
+ if low_asterisk:math_axis#+.5sym_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-.5sym_height;
+for d=-150 step 60 until 150:
+ z[d]=z0+.5dir d xscaled 7.5sym_u yscaled sym_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;
+
+ecchar "Plus sign"; % (CMBR)
+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;
+
+ecchar "Comma";
+beginchar(",",5u#,pdot_diam#,comma_depth#);
+adjust_fit(0,0);
+x1-.5pdot_diam=hround(.5w-.5pdot_diam); y1-.5pdot_diam=0;
+comma(1,a,pdot_diam,.2u,comma_depth); % dot and tail
+penlabels(1); endchar;
+
+ecchar "Period";
+beginchar(".",5u#,pdot_diam#,0);
+adjust_fit(0,0); pickup fine.nib;
+pos1(pdot_diam,0); pos2(pdot_diam,90);
+lft x1l=hround(.5w-.5pdot_diam); bot y2l=0; z1=z2; dot(1,2); % dot
+penlabels(1,2); endchar;
+
+ecchar "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;
+
+ecchar "Colon";
+beginchar(":",5u#,x_height#,0);
+italcorr x_height#*slant+.5pdot_diam#-2u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(pdot_diam,0); pos2(pdot_diam,90);
+lft x1l=hround(.5w-.5pdot_diam); top y2r=h; z1=z2; dot(1,2); % upper dot
+pos3(pdot_diam,0); pos4(pdot_diam,90);
+x3=x1; bot y4l=0; z3=z4; dot(3,4); % lower dot
+penlabels(1,2,3,4); endchar;
+
+ecchar "Semicolon";
+beginchar(";",5u#,x_height#,comma_depth#);
+italcorr x_height#*slant+.5pdot_diam#-2u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(pdot_diam,0); pos2(pdot_diam,90);
+lft x1l=hround(.5w-.5pdot_diam); top y2r=h; z1=z2; dot(1,2); % upper dot
+x3-.5pdot_diam=hround(.5w-.5pdot_diam); y3-.5pdot_diam=0;
+comma(3,a,pdot_diam,.2u,comma_depth); % lower dot and tail
+penlabels(1,2,3); endchar;
+
+ecchar "Equals sign"; % (CMBR)
+compute_spread(.45sym_height#,.55sym_height#);
+beginchar("=",11u#,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;
+
+
+
+ecchar "Reverse apostrophe";
+beginchar("`",5u#,asc_height#,0);
+italcorr asc_height#*slant+.5pdot_diam#-2u#;
+adjust_fit(0,0);
+x1-.5pdot_diam=hround(.5w-.5pdot_diam); y1+.5pdot_diam=h-comma_depth;
+if monospace: ammoc(1,a,pdot_diam,.28u,vround 1.5comma_depth); % large ammoc
+else: ammoc(1,a,pdot_diam,.25u,comma_depth); fi % normal ammoc
+penlabels(1); endchar;
+
+
+ecchar "Spanish open exclamation point";
+beginchar(oct"275",5u#+width_adj#,asc_height#-desc_depth#,desc_depth#);
+italcorr h#*slant-2u#-.5width_adj#+.5pdot_diam#;
+adjust_fit(0,0);
+pickup tiny.nib; pos3(pdot_diam,0); pos4(pdot_diam,90);
+lft x3l=hround(.5w-.5pdot_diam); top y4r=h; z3=z4; dot(3,4); % dot
+numeric top_width;
+top_width=if hefty:max(hround .8pdot_diam,fine.breadth) else: hair fi;
+pickup fine.nib; pos1(pdot_diam,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-.5pdot_diam=-d-o;
+ filldraw z1l...z0...z1r---z2r--z2l---cycle; fi % stem and bulb
+penlabels(0,1,2,3,4); endchar;
+
+
+ecchar "Closing quotes";% (CMBR)
+beginchar(oct"021",3u#+pdot_diam#,asc_height#,0);
+italcorr asc_height#*slant+pdot_diam#-4.1u#;
+adjust_fit(.5u#,.5u#);
+x1+.5pdot_diam=hround(.6u+.5pdot_diam); y2+.5pdot_diam=h;
+x2=w-x1; y2=y1;
+comma(1,a,pdot_diam,.25u,comma_depth); % left dot and tail
+comma(2,b,pdot_diam,.25u,comma_depth); % right dot and tail
+penlabels(1,2); endchar;
+
+ecchar "Hyphen";
+beginchar("-",6u#,x_height#,0);
+italcorr .5x_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric thickness; thickness=if hefty:bar else:.75[hair,stem] fi;
+pickup crisp.nib; pos1(thickness,90); pos2(thickness,90);
+top y1r=top y2r=vround(.5h+.5thickness); rt x2=hround(w-u)+eps;
+if monospace: x2=w-x1 else: lft x1=hround .2u-eps fi;
+filldraw stroke z1e--z2e; % bar
+penlabels(1,2); endchar;
+
+ecchar "Opening quotes";% (CMBR)
+beginchar(oct"20",3u#+pdot_diam#,asc_height#,0);
+italcorr asc_height#*slant-.1u#;
+adjust_fit(.5u#,.5u#);
+x2+.5pdot_diam=hround(w-.6u+.5pdot_diam); y1+.5pdot_diam=h-comma_depth;
+x1=w-x2; y2=y1;
+ammoc(1,a,pdot_diam,.25u,comma_depth); % left dot and tail
+ammoc(2,b,pdot_diam,.25u,comma_depth); % right dot and tail
+penlabels(1,2); endchar;
+
+iff not monospace:
+ecchar "En dash";
+beginchar(oct"025",9u#,x_height#,0);
+italcorr .61803x_height#*slant+.5u#;
+adjust_fit(0,0);
+pickup crisp.nib; pos1(vair,90); pos2(vair,90);
+top y1r=top y2r=vround(.61803h+.5vair); lft x1=-eps; rt x2=w+eps;
+filldraw stroke z1e--z2e; % bar
+penlabels(1,2); endchar;
+
+
+iff monospace:
+ecchar "Hyphen";
+beginchar(oct"025",6u#,x_height#,0);
+italcorr .5x_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric thickness; thickness=if hefty:bar else:.75[hair,stem] fi;
+pickup crisp.nib; pos1(thickness,90); pos2(thickness,90);
+top y1r=top y2r=vround(.5h+.5thickness); rt x2=hround(w-u)+eps;
+if monospace: x2=w-x1 else: lft x1=hround .2u-eps fi;
+filldraw stroke z1e--z2e; % bar
+penlabels(1,2); endchar;
+
+iff not monospace:
+ecchar "Em dash";
+beginchar(oct"026",18u#,x_height#,0);
+italcorr .61803x_height#*slant+.5u#;
+adjust_fit(letter_fit#,letter_fit#);
+pickup crisp.nib; pos1(vair,90); pos2(vair,90);
+top y1r=top y2r=vround(.61803h+.5vair); lft x1=-eps; rt x2=w+eps;
+filldraw stroke z1e--z2e; % bar
+penlabels(1,2); endchar;
+
+iff monospace:
+ecchar "Hyphen";
+beginchar(oct"026",6u#,x_height#,0);
+italcorr .5x_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric thickness; thickness=if hefty:bar else:.75[hair,stem] fi;
+pickup crisp.nib; pos1(thickness,90); pos2(thickness,90);
+top y1r=top y2r=vround(.5h+.5thickness); rt x2=hround(w-u)+eps;
+if monospace: x2=w-x1 else: lft x1=hround .2u-eps fi;
+filldraw stroke z1e--z2e; % bar
+penlabels(1,2); endchar;
+
+endinput;