summaryrefslogtreecommitdiff
path: root/fonts/mathabx/source/mathineq.mf
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /fonts/mathabx/source/mathineq.mf
Initial commit
Diffstat (limited to 'fonts/mathabx/source/mathineq.mf')
-rw-r--r--fonts/mathabx/source/mathineq.mf416
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;
+
+
+
+
+