summaryrefslogtreecommitdiff
path: root/language/ethiopia/ethiop/mf/eth_punc.mf
diff options
context:
space:
mode:
Diffstat (limited to 'language/ethiopia/ethiop/mf/eth_punc.mf')
-rw-r--r--language/ethiopia/ethiop/mf/eth_punc.mf422
1 files changed, 422 insertions, 0 deletions
diff --git a/language/ethiopia/ethiop/mf/eth_punc.mf b/language/ethiopia/ethiop/mf/eth_punc.mf
new file mode 100644
index 0000000000..c298af0cea
--- /dev/null
+++ b/language/ethiopia/ethiop/mf/eth_punc.mf
@@ -0,0 +1,422 @@
+%-------------------------------------------------------------
+% This is ETH_PUNC.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+iff known exclamation_mark:
+cmchar "Exclamation mark";
+beginchar(exclamation_mark,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;
+
+
+iff known spanish_shriek:
+cmchar "Spanish open exclamation point";
+beginchar(spanish_shriek,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;
+ filldraw z1l...z0...z1r---z2r--z2l---cycle; fi % stem and bulb
+penlabels(0,1,2,3,4); endchar;
+
+
+iff known question_mark:
+cmchar "Question mark";
+beginchar(question_mark,8.5u#,asc_height#,0);
+italcorr .8asc_height#*slant;
+adjust_fit(0,0);
+pickup tiny.nib; pos7(dot_size,0); pos8(dot_size,90);
+lft x7l=hround(.5w-.25u-.5dot_size); bot y8l=0; z7=z8; dot(7,8); % dot
+numeric bot_width;
+bot_width=if hefty:max(hround .8dot_size,fine.breadth) else: hair fi;
+pickup fine.nib; pos2(vair,90); pos3(curve,0);
+pos4(vair,-90); pos5(bot_width,0); pos6(bot_width,0);
+x2=x4=x5=x6=x7; rt x3r=hround(w-u); bot y6=1+.25[top y8r,x_height];
+top y2r=h+oo; y3=.75[y6,y2]; y4=.5[y6,y2]; y5=.1[y6,y2];
+{{interim superness:=more_super;
+filldraw stroke pulled_super_arc.e(2,3)(superpull)
+ & subpath (0,1) of super_arc.e(3,4) .. z5e---z6e\\}}; % arc and stem
+if serifs: pos1(hair,180); pos0(flare,180);
+ lft x1r=hround u; y1=y3; bulb(2,1,0); % bulb
+else: pos1(Vround 5/7[vair,flare],110);
+ lft x1r=hround u; top y1r=vround .9[y6,top y2r];
+ filldraw stroke term.e(2,1,left,1,4); fi % terminal
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+
+iff known spanish_query:
+cmchar "Spanish open question mark";
+beginchar(spanish_query,8.5u#,asc_height#-desc_depth#,desc_depth#);
+adjust_fit(0,0);
+pickup tiny.nib; pos7(dot_size,0); pos8(dot_size,90);
+lft x7l=hround(.5w-.25u-.5dot_size); top y8r=h; z7=z8; dot(7,8); % dot
+numeric top_width;
+top_width=if hefty:max(hround .8dot_size,fine.breadth) else: hair fi;
+pickup fine.nib; pos2(vair,270); pos3(curve,180);
+pos4(vair,90); pos5(top_width,180); pos6(top_width,180);
+x2=x4=x5=x6=x7; lft x3r=hround u; top y6=.25[bot y8l,h-x_height]-1;
+bot y2r=-d-oo; y3=.75[y6,y2]; y4=.5[y6,y2]; y5=.1[y6,y2];
+{{interim superness:=more_super;
+filldraw stroke pulled_super_arc.e(2,3)(superpull)
+ & subpath (0,1) of super_arc.e(3,4) .. z5e---z6e\\}}; % arc and stem
+if serifs: pos1(hair,0); pos0(flare,0);
+ rt x1r=hround(w-u); y1=y3; bulb(2,1,0); % bulb
+else: pos1(Vround 5/7[vair,flare],-70);
+ rt x1r=hround(w-u); bot y1r=vround .9[y6,bot y2r];
+ filldraw stroke term.e(2,1,right,1,4); fi % terminal
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+
+iff known dollar:
+cmchar "Dollar sign";
+beginchar(dollar,9u#,body_height#,body_height#-asc_height#);
+italcorr fig_height#*slant-.5u#; % same as for digits
+adjust_fit(0,0);
+numeric theta; theta=90-angle(50u,asc_height); slope:=-asc_height/50u;
+pickup fine.nib; pos2(slab,-90);
+pos0(cap_stem,theta); pos7(slab,-90);
+x2=x0=x7=.5w; top y2l=asc_height+oo; bot y7r=-oo;
+y0=.52asc_height; lft x3l=hround u; rt x6r=hround(w-u);
+x3r-x3l=x6r-x6l=hround .35[slab,cap_stem]-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,0); pos8(hair,180);
+ pos10(flare,0); pos9(flare,180);
+ rt x1r=hround(w-u); lft x8r=hround u; y1=.5[y0,y2]; y8=.5[y0,y7];
+ {{less_tense; pos2'(slab,90); z2'=z2; bulb(2',1,10); % upper arc and bulb
+ bulb(7,8,9)}}; % lower arc and bulb
+else: pos1(.6[slab,flare],-100); pos8(flare,-100);
+ rt x1l=hround(w-1.3u); lft x8r=hround .8u;
+ top y1l=vround .92asc_height+oo; bot y8r=vround .1asc_height-oo;
+ 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
+pickup crisp.nib; pos12(bar,0); pos11(bar,0);
+lft x12l=lft x11l=hround(.5w-.5bar); top y12=h; bot y11=-d;
+filldraw stroke z12e--z11e; % vertical crossbar
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12); endchar;
+
+
+iff known slash:
+cmchar "Slash";
+beginchar(slash,9u#,body_height#,paren_depth#);
+italcorr body_height#*slant-.5u#;
+adjust_fit(0,0); pickup 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;
+
+
+iff known period:
+cmchar "Period";
+beginchar(period,5u#,dot_size#,0);
+adjust_fit(0,0); pickup fine.nib;
+pos1(dot_size,0); pos2(dot_size,90);
+lft x1l=hround(.5w-.5dot_size); bot y2l=0; z1=z2; dot(1,2); % dot
+penlabels(1,2); endchar;
+
+
+iff known zero_hyph:
+cmchar "Invisible hyphen";
+beginchar(zero_hyph,0,0,0);
+endchar;
+
+
+iff known eth_white_space:
+cmchar "Ethiopic white space";
+beginchar(eth_white_space,4u#,0,0);
+endchar;
+
+
+iff known lt_parenthesis:
+cmchar "Left parenthesis";
+beginchar(lt_parenthesis,7u# if monospace: -u# fi,body_height#,paren_depth#);
+italcorr body_height#*slant-.5u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(vair,0); pos2(.75[hair,stem],0); pos3(vair,0);
+rt x1r=rt x3r=hround(w-u); lft x2l=hround(x1-4u if monospace: +4/3u fi);
+top y1=h; y2=.5[y1,y3]=math_axis;
+filldraw stroke z1e{3(x2e-x1e),y2-y1}...z2e
+ ...{3(x3e-x2e),y3-y2}z3e; % arc
+penlabels(1,2,3); endchar;
+
+
+iff known rt_parenthesis:
+cmchar "Right parenthesis";
+beginchar(rt_parenthesis, 7u# if monospace: -u# fi,body_height#,paren_depth#);
+italcorr math_axis#*slant-.5u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(vair,0); pos2(.75[hair,stem],0); pos3(vair,0);
+lft x1l=lft x3l=hround u; rt x2r=hround(x1+4u if monospace: -4/3u fi);
+top y1=h; y2=.5[y1,y3]=math_axis;
+filldraw stroke z1e{3(x2e-x1e),y2-y1}...z2e
+ ...{3(x3e-x2e),y3-y2}z3e; % arc
+penlabels(1,2,3); endchar;
+
+
+iff known lt_bracket:
+cmchar "Left bracket";
+numeric wd#; wd#=max(5u#,4.5u#+.5if hefty:stem# else:rule_thickness# fi);
+beginchar(lt_bracket,wd#,body_height#,paren_depth#);
+italcorr body_height#*slant;
+adjust_fit(0,0);
+numeric top_thickness,side_thickness;
+if hefty: top_thickness=vair;
+ side_thickness=max(crisp.breadth,stem-2stem_corr);
+else: top_thickness=side_thickness=rule_thickness; fi;
+pickup crisp.nib; pos1(side_thickness,0); pos2(side_thickness,0);
+top y1=h; bot y2=-d; lft x1l=lft x2l=hround(2.5u-.5side_thickness)-1-eps;
+filldraw stroke z1e--z2e; % stem
+pos3(top_thickness,90); pos4(top_thickness,90);
+pos5(top_thickness,90); pos6(top_thickness,90);
+x3=x5=x1l; rt x4=rt x6=ceiling(w-.4u)+eps; y3r=y4r=y1; y5l=y6l=y2;
+filldraw stroke z3e--z4e; % upper bar
+filldraw stroke z5e--z6e; % lower bar
+penlabels(1,2,3,4,5,6); endchar;
+
+
+iff known rt_bracket:
+cmchar "Right bracket";
+numeric wd#; wd#=max(5u#,4.5u#+.5if hefty:stem# else:rule_thickness# fi);
+beginchar(rt_bracket,wd#,body_height#,paren_depth#);
+italcorr body_height#*slant-2u#+.5if hefty:stem# else:rule_thickness# fi;
+adjust_fit(0,0);
+numeric top_thickness,side_thickness;
+if hefty: top_thickness=vair;
+ side_thickness=max(crisp.breadth,stem-2stem_corr);
+else: top_thickness=side_thickness=rule_thickness; fi;
+pickup crisp.nib; pos1(side_thickness,0); pos2(side_thickness,0);
+top y1=h; bot y2=-d; rt x1r=rt x2r=hround(w-2.5u+.5side_thickness)+1+eps;
+filldraw stroke z1e--z2e; % stem
+pos3(top_thickness,90); pos4(top_thickness,90);
+pos5(top_thickness,90); pos6(top_thickness,90);
+x3=x5=x1r; lft x4=lft x6=floor .4u-eps; y3r=y4r=y1; y5l=y6l=y2;
+filldraw stroke z3e--z4e; % upper bar
+filldraw stroke z5e--z6e; % lower bar
+penlabels(1,2,3,4,5,6); endchar;
+
+
+iff known lt_quote:
+cmchar "Opening quote";
+beginchar(lt_quote,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;
+
+
+iff known rt_quote:
+cmchar "Closing quote";
+beginchar(rt_quote,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;
+
+
+iff known lt_quotes:
+cmchar "Opening quotes";
+beginchar(lt_quotes,7u#+max(2u#,dot_size#),asc_height#,0);
+italcorr asc_height#*slant-.1u#;
+adjust_fit(0,0);
+x2+.5dot_size=hround(w-.6u); y1+.5dot_size=h-comma_depth;
+x2-x1=hround(1.5u+max(2u,dot_size)); y2=y1;
+ammoc(1,a,dot_size,.25u,comma_depth); % left dot and tail
+ammoc(2,b,dot_size,.25u,comma_depth); % right dot and tail
+penlabels(1,2); endchar;
+
+
+iff known rt_quotes:
+cmchar "Closing quotes";
+beginchar(rt_quotes,7u#+max(2u#,dot_size#),asc_height#,0);
+italcorr asc_height#*slant+dot_size#-4.1u#;
+adjust_fit(0,0);
+x1-.5dot_size=hround .6u; y2+.5dot_size=h;
+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;
+
+
+iff known less:
+cmchar "French quotation left";
+beginchar(less,7u#,x_height#,0);
+adjust_fit(0,0);
+pickup fine.nib;
+penpos1(stem,10); penpos2(stem,0); penpos3(stem,-10); penpos4(stem,0);
+lft x2=hround(1u)-eps; x1=x3=w-x2; x4=x2+1u;
+bot y1=0; top y3=h; y2=.5[y1,y3]; y4=y2;
+filldraw stroke z1e..controls z4e..z2e..controls z4e..z3e; % diagonals
+labels(1,2,3); endchar;
+
+
+iff known greater:
+cmchar "French quotation right";
+beginchar(greater,7u#,x_height#,0);
+adjust_fit(0,0);
+pickup fine.nib;
+penpos1(stem,-10); penpos2(stem,0); penpos3(stem,10); penpos4(stem,0);
+rt x2=hround(w-1u)+eps; x1=x3=w-x2; x4=x2-1u;
+bot y1=0; top y3=h; y2=.5[y1,y3]; y4=y2;
+filldraw stroke z1e..controls z4e..z2e..controls z4e..z3e; % diagonals
+labels(1,2,3); endchar;
+
+
+iff known eth_full_stop:
+cmchar "Full stop";
+beginchar(eth_full_stop,8u#,fig_height#,0);
+adjust_fit(2u#,0);
+pickup fine.nib;
+x0=x1=w-1u; x2=x3=w-3u; y0=.275h; y3=.25h; y1=.425h; y2=.4h;
+filldraw z0--z1--z2--z3--cycle;
+x4=x5=w-1u; x6=x7=w-3u; y4=.625h; y7=.6h; y5=.775h; y6=.75h;
+filldraw z4--z5--z6--z7--cycle;
+penlabels(0,1,2,3,4,5,6,7);
+x0'=x1'=3u; x2'=x3'=1u; y0'=.275h; y3'=.25h; y1'=.425h; y2'=.4h;
+filldraw z0'--z1'--z2'--z3'--cycle;
+x4'=x5'=3u; x6'=x7'=1u; y4'=.625h; y7'=.6h; y5'=.775h; y6'=.75h;
+filldraw z4'--z5'--z6'--z7'--cycle;
+penlabels(0',1',2',3',4',5',6',7'); endchar;
+
+
+iff known eth_semicolon:
+cmchar"Semicolon (der-ebe-serez)";
+beginchar(eth_semicolon,5u#,fig_height#,0);
+adjust_fit(1u#,1u#);
+pickup fine.nib;
+x0=x1=w-1.5u; x2=x3=w-3.5u; y0=.325h; y3=.3h; y1=.475h; y2=.45h;
+filldraw z0--z1--z2--z3--cycle;
+x4=x5=w-1.5u; x6=x7=w-3.5u; y4=.625h; y7=.6h; y5=.775h; y6=.75h;
+filldraw z4--z5--z6--z7--cycle;
+pickup rule.nib;
+top lft z8=(0,.95h); top rt z9=(w,h); draw z8--z9;
+bot lft z8'=(0,.075h); bot rt z9'=(w,.125h); draw z8'--z9';
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+
+iff known eth_minus:
+cmchar"Bar";
+beginchar(eth_minus,5u#,fig_height#,0);
+adjust_fit(1u#,1u#);
+pickup rule.nib;
+lft z1=(0,.5h); rt z2=(w,.55h); draw z1--z2;
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+
+iff known eth_space:
+cmchar "Old style space (nettib)";
+beginchar(eth_space,4u#,fig_height#,0);
+adjust_fit(0,0);
+pickup fine.nib;
+x0=x1=w-1u; x2=x3=w-3u; y0=.275h; y3=.25h; y1=.425h; y2=.4h;
+filldraw z0--z1--z2--z3--cycle;
+x4=x5=w-1u; x6=x7=w-3u; y4=.625h; y7=.6h; y5=.775h; y6=.75h;
+filldraw z4--z5--z6--z7--cycle;
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+
+iff known eth_preface_colon:
+cmchar "Preface Colon";
+beginchar(eth_preface_colon,9u#,fig_height#,0);
+adjust_fit(0,0);
+pickup fine.nib;
+x0=x1=3u; x2=x3=1u; y0=.275h; y3=.25h; y1=.425h; y2=.4h;
+filldraw z0--z1--z2--z3--cycle;
+x4=x5=3u; x6=x7=1u; y4=.625h; y7=.6h; y5=.775h; y6=.75h;
+filldraw z4--z5--z6--z7--cycle;
+pickup rule.nib;
+lft z11=(w-6u,.5h); rt z12=(w-1u,.55h); draw z11--z12;
+penlabels(0,1,2,3,4,5,6,7,11,12); endchar;
+
+
+iff known eth_three_dot:
+cmchar "Three dot question mark";
+beginchar(eth_three_dot,4u#,fig_height#,0);
+adjust_fit(0,0);
+pickup fine.nib;
+x0=x1=w-1u; x2=x3=w-3u; y0=.1h; y3=.075h; y1=.25h; y2=.225h;
+filldraw z0--z1--z2--z3--cycle;
+x4=x5=w-1u; x6=x7=w-3u; y4=.45h; y7=.425h; y5=.6h; y6=.575h;
+filldraw z4--z5--z6--z7--cycle;
+x8=x9=w-1u; x10=x11=w-3u; y8=.8h; y11=.775h; y9=.95h; y10=.925h;
+filldraw z8--z9--z10--z11--cycle;
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+
+iff known eth_seven_dot:
+cmchar "Seven dot paragraph terminator";
+beginchar(eth_seven_dot,12u#,fig_height#,0);
+adjust_fit(0,0);
+pickup fine.nib;
+x20=x21=3u; x22=x23=1u; y20=.275h; y23=.25h; y21=.425h; y22=.4h;
+filldraw z20--z21--z22--z23--cycle;
+x24=x25=3u; x26=x27=1u; y24=.625h; y27=.6h; y25=.775h; y26=.75h;
+filldraw z24--z25--z26--z27--cycle;
+
+x0=x1=7u; x2=x3=5u; y0=.1h; y3=.075h; y1=.25h; y2=.225h;
+filldraw z0--z1--z2--z3--cycle;
+x4=x5=7u; x6=x7=5u; y4=.45h; y7=.425h; y5=.6h; y6=.575h;
+filldraw z4--z5--z6--z7--cycle;
+x8=x9=7u; x10=x11=5u; y8=.8h; y11=.775h; y9=.95h; y10=.925h;
+filldraw z8--z9--z10--z11--cycle;
+
+x30=x31=11u; x32=x33=9u; y30=.275h; y33=.25h; y31=.425h; y32=.4h;
+filldraw z30--z31--z32--z33--cycle;
+x34=x35=11u; x36=x37=9u; y34=.625h; y37=.6h; y35=.775h; y36=.75h;
+filldraw z34--z35--z36--z37--cycle;
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,20,21,22,23,24,25,26,27,
+ 30,31,32,33,34,35,36,37);
+endchar;
+
+
+iff known eth_colon:
+cmchar "Colon (ie-kete-lale)";
+beginchar(eth_colon,7u#,fig_height#,0);
+adjust_fit(1u#,1u#);
+pickup fine.nib;
+x0=x1=w-2.5u; x2=x3=w-4.5u; y0=.2h; y3=.175h; y1=.35h; y2=.325h;
+filldraw z0--z1--z2--z3--cycle;
+x4=x5=w-2.5u; x6=x7=w-4.5u; y4=.7h; y7=.675h; y5=.85h; y6=.825h;
+filldraw z4--z5--z6--z7--cycle;
+pickup rule.nib;
+lft z8=(0,.48h); rt z9=(w,.54h); draw z8--z9;
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+
+iff known eth_comma:
+cmchar"Comma (netela-serez)";
+beginchar(eth_comma,5u#,fig_height#,0);
+adjust_fit(1u#,1u#);
+pickup fine.nib;
+x0=x1=w-1.5u; x2=x3=w-3.5u; y0=.175h; y3=.15h; y1=.325h; y2=.3h;
+filldraw z0--z1--z2--z3--cycle;
+x4=x5=w-1.5u; x6=x7=w-3.5u; y4=.525h; y7=.5h; y5=.675h; y6=.65h;
+filldraw z4--z5--z6--z7--cycle;
+pickup rule.nib;
+top lft z8=(0,.85h); top rt z9=(w,.9h); draw z8--z9;
+penlabels(0,1,2,3,4,5,6,7); endchar;