diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
commit | e0c6872cf40896c7be36b11dcc744620f10adf1d (patch) | |
tree | 60335e10d2f4354b0674ec22d7b53f0f8abee672 /fonts/mathabx/source/mathineq.mf |
Initial commit
Diffstat (limited to 'fonts/mathabx/source/mathineq.mf')
-rw-r--r-- | fonts/mathabx/source/mathineq.mf | 416 |
1 files changed, 416 insertions, 0 deletions
diff --git a/fonts/mathabx/source/mathineq.mf b/fonts/mathabx/source/mathineq.mf new file mode 100644 index 0000000000..0bd25d606c --- /dev/null +++ b/fonts/mathabx/source/mathineq.mf @@ -0,0 +1,416 @@ +% mathematical symbols by Anthony Phan. +% file: mathineq.mf (inequalities) +% last modification: May 16, 2005. +% Only known charcodes will be generated. + +% Inequality signs and related things (relations). +% Some pictures overlap the bottom. It is necessary +% for correct centering of the whole box. +% Spreads for cross bars have been checked. +% Curly slants are strange: it is half way to two +% extreme solutions... + +def horizontal_rules_list=math_axis, + -body_depth,-desc_depth,x_height,cap_height,asc_height,body_height +enddef; + +use_rule1; +make_sim_picture; + +if (main_name_string="less") or (main_name_string="greater"): + + beginpicture(first, + 12u#+2appr#,v_center(spread4#+rth#)); + pickup tiny.nib; + y2r=0.5[y1,y3]=good.y math_axis; y1-y3=spread4; + rt x1=w-Appr; lft x2r=Appr; x1=x1r=x3=x3r; + adjust_slanted_bar(2r,1,2a,1a)(0.5(rth-tiny),-1); + adjust_slanted_bar(2r,3,2b,3b)(0.5(rth-tiny),1); + z1r=whatever[z2r,z1a]; z3r=whatever[z2r,z3b]; + z1r-z1=z1-z1l; z3r-z3=z3-z3l; + z2l-z1l=whatever*(z2r-z1r); + z2l-z3l=whatever*(z2r-z3r); + filldraw stroke z3e--z2e--z1e; + a:=2vround 0.5(spread1/abs cosd angle(z2r-z3r)); + endpicture; + + beginpicture(second, + 12u#+2appr#,v_center(spread4#+rth#)); + pickup tiny.nib; + y2r=0.5[y1,y3]=good.y math_axis; y1-y3=spread4; + lft x1=Appr; rt x2r=w-Appr; x1=x1r=x3=x3r; + adjust_slanted_bar(2r,1,2a,1a)(0.5(rth-tiny),1); + adjust_slanted_bar(2r,3,2b,3b)(0.5(rth-tiny),-1); + z1r=whatever[z2r,z1a]; z3r=whatever[z2r,z3b]; + z1r-z1=z1-z1l; z3r-z3=z3-z3l; + z2l-z1l=whatever*(z2r-z1r); + z2l-z3l=whatever*(z2r-z3r); + filldraw stroke z3e--z2e--z1e; + endpicture; + +else: + + beginpicture(first, + 12u#+2appr#,v_center(spread4#+rth#)); + pickup tiny.nib; pos2(rth,90); pos4(rth,90); + lft x2=Appr; rt x1r=rt x3l=w-Appr; x4=0.50[x2,x1r]; + y2=y4=math_axis; y3l-y2r=y2l-y1r=0.5spread4; y1r=y1l; y3r=y3l; + x1r-x1l=diag_width(rth-tiny,z4r-z1r); + x3l-x3r=diag_width(rth-tiny,z4l-z3l); + filldraw stroke z2e{right}...z1e{z1r-z4r}; + filldraw stroke z2e{right}...z3e{z3l-z4l}; + a:=spread1; + endpicture; + + beginpicture(second, + 12u#+2appr#,v_center(spread4#+rth#)); + pickup tiny.nib; pos2(rth,-90); pos4(rth,-90); + rt x2=w-Appr; lft x1l=lft x3r=Appr; x4=0.50[x2,x1l]; + y2=y4=math_axis; y3r-y2l=y2r-y1l=0.5spread4; y1r=y1l; y3r=y3l; + x1l-x1r=-diag_width(rth-tiny,z4l-z1l); + x3r-x3l=-diag_width(rth-tiny,z4r-z3r); + filldraw stroke z2e{left}...z1e{z1l-z4l}; + filldraw stroke z2e{left}...z3e{z3r-z4r}; + endpicture; +fi + +if (main_name_string="greater") or (main_name_string="successor"): + tmp_picture:=first_picture; first_picture:=second_picture; + second_picture:=tmp_picture; +fi + +% +% Let's go +% + +beginchar(main_name_with(), + 12u#+2appr#,v_center(spread4#+rth#)); + main_name_string&" sign"; + currentpicture:=first_picture; +endchar; + +beginchar(main_name_with(_not), + 12u#+2appr#,asc_height#,asc_depth#); + "not " & main_name_string&" sign"; + currentpicture:=first_picture; + pickup tiny.nib; + pos1(rth,0); pos2(rth,0); top y1l=h; bot y2l=-d; + lft x1l=lft x2l=hround 0.5(w-rth); + filldraw stroke z1e..z2e; penlabels(1,2); +endchar; + +beginchar(main_name_with(_slant), + 12u#+2appr#,v_center(spread4#+spread1#+rth#)); + main_name_string&"-slant sign"; + currentpicture:=first_picture shifted(0,0.5a); + save b; + pickup tiny.nib; + if (main_name_string="less") or (main_name_string="greater"): + y0=good.y math_axis; lft x1=Appr; rt x2=w-Appr; + b=(rth-tiny)/cosd angle(x2-x1,0.5spread4); + penpos1(b,90); penpos2(b,90); + if (main_name_string="less"): y1=y0-0.5a; y1-y2=0.5spread4; + else: y2=y0-0.5a; y1-y2=-0.5spread4; fi + filldraw stroke z1e..z2e; penlabels(1,2); + elseif main_name_string="predecessor": + pos2(rth,-90); pos3(rth,-90); + lft x2=Appr; y2=y3=math_axis-0.5spread1; + rt x1l=rt x1=w-Appr; y1=y2r-0.5spread4; + x3=0.50[x2,x1l]; + y1l=y1r=y2r-vround(0.5spread4 + *(0.5[1,1/abs cosd angle(z3l-z1)])); + x1l-x1r=diag_width(rth-tiny,z3l-z1l); + filldraw stroke z1e{z3l-z1l}...z2e{left}; + penlabels(1,2,3); + else: + pos2(rth,-90); pos3(rth,-90); + rt x2=w-Appr; y2=y3=math_axis-0.5spread1; + lft x1l=lft x1=Appr; y1=y2r-0.5spread4; + x3=0.50[x2,x1l]; + y1l=y1r=y2r-vround(0.5spread4 + *(0.5[1,1/abs cosd angle(z3l-z1)])); + x1l-x1r=-diag_width(rth-tiny,z3l-z1l); + filldraw stroke z1e{z3l-z1l}...z2e{right}; + penlabels(1,2,3); + fi + tmp_picture:=currentpicture; +endchar; + +beginchar(main_name_with(_not_slant), + 12u#+2appr#,asc_height#,asc_depth#); + "not "&main_name_string&"-slant sign"; + currentpicture:=tmp_picture; + pickup tiny.nib; + pos1(rth,0); pos2(rth,0); top y1l=h; bot y2l=-d; + lft x1l=lft x2l=hround 0.5(w-rth); + filldraw stroke z1e..z2e; penlabels(1,2); +endchar; + +beginchar(main_name_with(_eq), + 12u#+2appr#,v_center(spread4#+spread0#+rth#)); + main_name_string&"-bar sign"; + currentpicture:=first_picture shifted(0,0.5spread0); + pickup tiny.nib; + pos1(rth,90); pos2(rth,90); rt x2=w-Appr; lft x1=Appr; + y1=y2=math_axis-0.5(spread4+spread0); + filldraw stroke z1e..z2e; penlabels(1,2); + tmp_picture:=currentpicture; +endchar; + +beginchar(main_name_with(_not_eq), + 12u#+2appr#,asc_height#,asc_depth#); + "not "&main_name_string&"-bar sign"; + currentpicture:=tmp_picture; + pickup tiny.nib; + pos1(rth,0); pos2(rth,0); top y1l=h; bot y2l=-d; + lft x1l=lft x2l=hround 0.5(w-rth); + filldraw stroke z1e..z2e; penlabels(1,2); +endchar; + +beginchar(main_name_with(_eq_not), + 12u#+2appr#,v_center(spread4#+spread0#+rth#)); + main_name_string&"-not bar sign"; + currentpicture:=tmp_picture; + pickup tiny.nib; + y0=math_axis-0.5(spread4+spread0); + x0=0.5w; + v_adjust(1r,2l,y0,1.5spread1-0.5rth); + lft x2l-Appr=w-Appr-rt x1r=hround 3.5u; + adjust_slanted_bar(2l,1r,2r,1l)(rth-tiny,-1); + filldraw stroke z1e..z2e; penlabels(0,1,2); +endchar; + +beginchar(main_name_with(_eq_varnot), + 12u#+2appr#,v_center(spread4#+spread0#+rth#)); + main_name_string&"-varnot bar sign"; + currentpicture:=tmp_picture; + pickup tiny.nib; + y0=math_axis-0.5(spread4+spread0); + x0=0.5w; + v_adjust(1l,2l,y0,1.5spread1-0.5rth); + pos1(rth,0); pos2(rth,0); + lft x1l=lft x2l=hround 0.5(w-rth); + filldraw stroke z1e..z2e; penlabels(0,1,2); +endchar; + +beginchar(main_name_with(_eqq), + 12u#+2appr#,v_center(spread4#+spread1#+spread0#+rth#)); + main_name_string&" equal sign"; + currentpicture:=first_picture shifted(0,0.5(spread1+spread0)); + pickup tiny.nib; + pos1(rth,90); pos2(rth,90); pos3(rth,90); pos4(rth,90); + rt x2=rt x4=w-Appr; lft x1=lft x3=Appr; + y1=y2=math_axis-0.5(spread4-spread1+spread0); + y3=y4=y1-spread1; + filldraw stroke z1e..z2e; filldraw stroke z3e..z4e; + penlabels(1,2,3,4); + tmp_picture:=currentpicture; +endchar; + +beginchar(main_name_with(_not_eqq), + 12u#+2appr#,v_center(max(asc_height#+asc_depth#, + spread4#+spread1#+spread0#+rth#))); + "not "&main_name_string&" equal sign"; + currentpicture:=tmp_picture; + pickup tiny.nib; + pos1(rth,0); pos2(rth,0); + v_adjust(1l,2l,math_axis,max(h+d,spread4+spread0+2spread1)); + lft x1l=lft x2l=hround 0.5(w-rth); + filldraw stroke z1e..z2e; penlabels(1,2); +endchar; + +beginchar(main_name_with(_eqq_not), + 12u#+2appr#,v_center(spread4#+spread1#+spread0#+rth#)); + main_name_string&" but not equal sign"; + currentpicture:=tmp_picture; + pickup tiny.nib; + y0=math_axis-0.5(spread4+spread0); + x0=0.5w; + v_adjust(1r,2l,y0,2.5spread1-0.5rth); + lft x2l-Appr=w-Appr-rt x1r=hround 2.75u; + adjust_slanted_bar(2l,1r,2r,1l)(rth-tiny,-1); + filldraw stroke z1e..z2e; penlabels(0,1,2); +endchar; + +beginchar(main_name_with(_eqq_varnot), + 12u#+2appr#,v_center(spread4#+spread1#+spread0#+rth#)); + "variant "&main_name_string&" but not equal sign"; + currentpicture:=tmp_picture; + pickup tiny.nib; + y0=math_axis-0.5(spread4+spread0); + x0=0.5w; + v_adjust(1l,2l,y0,2.5spread1-0.5rth); + pos1(rth,0); pos2(rth,0); + lft x1l=lft x2l=hround 0.5(w-rth); + filldraw stroke z1e..z2e; penlabels(1,2); +endchar; + +beginchar(main_name_with(_upperslant), + 12u#+2appr#,v_center(spread4#+spread1#+rth#)); + main_name_string &"with upper slant sign"; + currentpicture:=first_picture shifted(0,-0.5a); + save b; + pickup tiny.nib; + if (main_name_string="less") or (main_name_string="greater"): + y0=good.y math_axis; lft x1=Appr; rt x2=w-Appr; + b=(rth-tiny)/cosd angle(x2-x1,0.5spread4); + penpos1(b,90); penpos2(b,90); + if (main_name_string="less"): y1=y0+0.5a; y1-y2=-0.5spread4; + else: y2=y0+0.5a; y1-y2=0.5spread4; fi + filldraw stroke z1e..z2e; penlabels(1,2); + elseif main_name_string="predecessor": + pos2(rth,90); pos3(rth,90); + lft x2=Appr; y2=y3=math_axis+0.5spread1; + rt x1l=rt x1=w-Appr; y1=y2r+0.5spread4; + x3=0.50[x2,x1l]; + y1l=y1r=y2r+vround(0.5spread4 + *(0.5[1,1/abs cosd angle(z3l-z1)])); + x1l-x1r=diag_width(rth-tiny,z3l-z1l); + filldraw stroke z1e{z3l-z1l}...z2e{left}; + penlabels(1,2,3); + else: + pos2(rth,90); pos3(rth,90); + rt x2=w-Appr; y2=y3=math_axis+0.5spread1; + lft x1l=lft x1=Appr; y1=y2r+0.5spread4; + x3=0.50[x2,x1l]; + y1l=y1r=y2r+vround(0.5spread4 + *(0.5[1,1/abs cosd angle(z3l-z1)])); + x1l-x1r=-diag_width(rth-tiny,z3l-z1l); + filldraw stroke z1e{z3l-z1l}...z2e{right}; + penlabels(1,2,3); + fi + tmp_picture:=currentpicture; +endchar; + +beginchar(main_name_with(_not_upperslant), + 12u#+2appr#,asc_height#,asc_depth#); + "not " & main_name_string&" upper slant sign"; + currentpicture:=tmp_picture; + pickup tiny.nib; + pos1(rth,0); pos2(rth,0); top y1l=h; bot y2l=-d; + lft x1l=lft x2l=hround 0.5(w-rth); + filldraw stroke z1e..z2e; penlabels(1,2); +endchar; + +beginchar(main_name_with(_opposite), + 12u#+2appr#,v_center(1.5spread4#+spread1#+rth#)); + main_name_string&" and opposite sign"; + currentpicture:=(first_picture + shifted(0,vround(0.5a+0.25spread4))) + +(second_picture + shifted(0,-vround(0.5a+0.25spread4))); +endchar; + +beginchar(main_name_with(_eq_opposite),12u#+2appr#, + v_center(2spread4#+2spread0#+rth#)); + main_name_string&" bar opposite sign"; + currentpicture:=(first_picture + shifted(0,vround(spread0+0.5spread4))) + +(second_picture + shifted(0,-vround(spread0+0.5spread4))); + pickup tiny.nib; pos1(rth,90); pos2(rth,90); + lft x1=Appr; rt x2=w-Appr; y1=y2=math_axis; + filldraw stroke z1e..z2e; penlabels(1,2); +endchar; + +beginchar(main_name_with(_eqq_opposite),12u#+2appr#, + v_center(2spread4#+2spread0#+spread1#+rth#)); + main_name_string&" equal opposite sign"; + pickup tiny.nib; + pos1(rth,90); pos2(rth,90); pos3(rth,90); pos4(rth,90); + lft x1=lft x3=Appr; rt x2=rt x4=w-Appr; + y1-y3=y2-y4=spread1; 0.5[y1,y3]=0.5[y2,y4]=math_axis; + currentpicture:=(first_picture + shifted(0,vround(spread0+0.5spread1+0.5spread4))) + +(second_picture + shifted(0,-vround(spread0+0.5spread1+0.5spread4))); + filldraw stroke z1e..z2e; filldraw stroke z3e..z4e; + penlabels(1,2,3,4); +endchar; + +beginchar(main_name_with(_sim),12u#+2appr#, + v_center(spread4#+spread1#+spread0#+rth#)); + main_name_string&" similarity sign"; + numeric b,c; b=vround(0.5spread1+0.5spread0); + c=b-vround(0.5(spread4+spread1)+spread0); + currentpicture:=(first_picture shifted(0,b)) + +(sim_picture shifted(0,c)); + tmp_picture:=currentpicture; +endchar; + +beginchar(main_name_with(_not_sim), + 12u#+2appr#,v_center(max(asc_height#+asc_depth#, + spread4#+spread1#+spread0#+rth#))); + "not "&main_name_string&" similarity sign"; + currentpicture:=tmp_picture; + pickup tiny.nib; + pos1(rth,0); pos2(rth,0); + v_adjust(1l,2l,math_axis,max(h+d,spread4+spread0+2spread1)); + lft x1l=lft x2l=hround 0.5(w-rth); + filldraw stroke z1e..z2e; penlabels(1,2); +endchar; + +beginchar(main_name_with(_sim_not), + 12u#+2appr#,v_center(spread4#+spread1#+spread0#+rth#)); + main_name_string&" but not similarity sign"; + currentpicture:=tmp_picture; + pickup tiny.nib; + y0=math_axis-0.5(spread4+spread0); + x0=0.5w; + v_adjust(1r,2l,y0,2spread1); + lft x2l-Appr=w-Appr-rt x1r=hround 2.75u; + adjust_slanted_bar(2l,1r,2r,1l)(rth-tiny,-1); + filldraw stroke z1e..z2e; penlabels(0,1,2); +endchar; + +beginchar(main_name_with(_approx), + 12u#+2appr#,v_center(spread4#+2spread1#+spread0#+2rth#)); + main_name_string&" approximative sign"; + numeric b,c; b=vround(spread1+0.5spread0+0.5rth); + c=b-vround(0.5(spread4+spread1)+spread0); + currentpicture:=(first_picture shifted(0,b)) + +(sim_picture shifted(0,c)) + +(sim_picture shifted(0,c-spread1-rth)); + tmp_picture:=currentpicture; +endchar; + +beginchar(main_name_with(_not_approx), + 12u#+2appr#,v_center(max(asc_height#+asc_depth#, + spread4#+2spread1#+spread0#+2rth#))); + main_name_string&" but not approximative sign"; + currentpicture:=tmp_picture; + pickup tiny.nib; + pos1(rth,0); pos2(rth,0); + v_adjust(1l,2l,math_axis,max(h+d,spread4+spread0+3spread1)); + lft x1l=lft x2l=hround 0.5(w-rth); + filldraw stroke z1e..z2e; penlabels(1,2); +endchar; + +beginchar(main_name_with(_approx_not), + 12u#+2appr#,v_center(spread4#+2spread1#+spread0#+2rth#)); + main_name_string&" but not approximative sign"; + currentpicture:=tmp_picture; + pickup tiny.nib; + y0=math_axis-0.5(spread4+spread0); + x0=0.5w; + v_adjust(1r,2l,y0,3spread1); + lft x2l-Appr=w-Appr-rt x1r=hround 2.5u; + adjust_slanted_bar(2l,1r,2r,1l)(rth-tiny,-1); + filldraw stroke z1e..z2e; penlabels(0,1,2); +endchar; + +beginchar(main_name_with(_dot), + 12u#+2appr#,v_center(spread4#+rth#)); + main_name_string&" with dot sign"; + currentpicture:=first_picture; pickup tiny.nib; + adjust_dot1(( + if (main_name_string="less") or (main_name_string="predecessor"): + w-Appr-u-0.5dtsz else: Appr+u+0.5dtsz fi, + good.y math_axis),dtsz,false,true); + dot(1,1'); +endchar; + + + + + |