summaryrefslogtreecommitdiff
path: root/fonts/sansmathfonts/source/sans-bigop.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/sansmathfonts/source/sans-bigop.mf
Initial commit
Diffstat (limited to 'fonts/sansmathfonts/source/sans-bigop.mf')
-rw-r--r--fonts/sansmathfonts/source/sans-bigop.mf428
1 files changed, 428 insertions, 0 deletions
diff --git a/fonts/sansmathfonts/source/sans-bigop.mf b/fonts/sansmathfonts/source/sans-bigop.mf
new file mode 100644
index 0000000000..e58aa5abcc
--- /dev/null
+++ b/fonts/sansmathfonts/source/sans-bigop.mf
@@ -0,0 +1,428 @@
+% Based on the Computer Modern source file bigop.mf by D E Knuth.
+
+% Edited by Ariel Barton to produce better sans serif symbols
+
+% Date: 2013/03/22
+
+% This file contains pairs of large operators for math extension fonts.
+
+% Each operator has a `{\tt\char`\\textstyle}' form, for math in text,
+% and a `{\tt\char`\\displaystyle}' form, for displayed formulas.
+
+% Character codes \0106--\0141 are generated.
+
+charlist oct"106": oct"107"; % square union signs
+charlist oct"110": oct"111"; % contour integral signs
+charlist oct"112": oct"113"; % circle-dot operators
+charlist oct"114": oct"115"; % circle-plus operators
+charlist oct"116": oct"117"; % circle-times operators
+charlist oct"120": oct"130"; % summation signs
+charlist oct"121": oct"131"; % product signs
+charlist oct"122": oct"132"; % integral signs
+charlist oct"123": oct"133"; % union signs
+charlist oct"124": oct"134"; % intersection signs
+charlist oct"125": oct"135"; % multiset union signs
+charlist oct"126": oct"136"; % lattice infimum signs
+charlist oct"127": oct"137"; % lattice supremum signs
+charlist oct"140": oct"141"; % coproduct signs
+
+cmchar "\textstyle square set union sign";
+beginchar(oct"106",15u#,0,10/6dh#);
+adjust_fit(0,0); pickup pencircle scaled stem;
+lft x1=hround u; x2=x1; x4=x5=w-x1;
+top y1=eps; bot y2=-d; y4=y2; y5=y1;
+draw z1---z2---z4---z5; % stems and bar
+labels(1,2,4,5); endchar;
+
+cmchar "\displaystyle square set union sign";
+beginchar(oct"107",20u#,0,14/6dh#); padded 1/6dh#;
+adjust_fit(0,0); pickup pencircle scaled curve;
+lft x1=hround u; x2=x1; x4=x5=w-x1;
+top y1=eps; bot y2=-d; y4=y2; y5=y1;
+draw z1---z2---z4---z5; % stems and bar
+labels(1,2,4,5); endchar;
+
+cmchar "\textstyle circle-dot operator";
+beginchar(oct"112",20u#,0,10/6dh#);
+adjust_fit(0,0); pickup pencircle scaled stem;
+lft x6=hround u; x2=w-x6; top y8=0; bot y4=-d;
+circle_points; draw_circle; % circle
+fill fullcircle scaled(bold+4bigdw+eps) shifted(.5[z4,z8]); % dot
+labels(1,2,3,4,5,6,7,8); endchar;
+
+cmchar "\displaystyle circle-dot operator";
+beginchar(oct"113",27.2u#,0,14/6dh#); padded 1/6dh#;
+adjust_fit(0,0); pickup pencircle scaled curve;
+lft x6=hround u; x2=w-x6; top y8=0; bot y4=-d;
+circle_points; draw_circle; % circle
+fill fullcircle scaled(bold+6bigdw+eps) shifted(.5[z4,z8]); % dot
+labels(1,2,3,4,5,6,7,8); endchar;
+
+cmchar "\textstyle circle-plus operator";
+beginchar(oct"114",20u#,0,10/6dh#);
+adjust_fit(0,0); pickup pencircle scaled stem;
+lft x6=hround u; x2=w-x6; top y8=0; bot y4=-d;
+circle_points; draw_circle; % circle
+draw z2--z6; draw z4--z8; % plus
+labels(1,2,3,4,5,6,7,8); endchar;
+
+cmchar "\displaystyle circle-plus operator";
+beginchar(oct"115",27.2u#,0,14/6dh#); padded 1/6dh#;
+adjust_fit(0,0); pickup pencircle scaled curve;
+lft x6=hround u; x2=w-x6; top y8=0; bot y4=-d;
+circle_points; draw_circle; % circle
+draw z2--z6; draw z4--z8; % plus
+labels(1,2,3,4,5,6,7,8); endchar;
+
+cmchar "\textstyle circle-times operator";
+beginchar(oct"116",20u#,0,10/6dh#);
+adjust_fit(0,0); pickup pencircle scaled stem;
+lft x6=hround u; x2=w-x6; top y8=0; bot y4=-d;
+circle_points; draw_circle; % circle
+draw z1--z5; draw z3--z7; % times
+labels(1,2,3,4,5,6,7,8); endchar;
+
+cmchar "\displaystyle circle-times operator";
+beginchar(oct"117",27.2u#,0,14/6dh#); padded 1/6dh#;
+adjust_fit(0,0); pickup pencircle scaled curve;
+lft x6=hround u; x2=w-x6; top y8=0; bot y4=-d;
+circle_points; draw_circle; % circle
+draw z1--z5; draw z3--z7; % times
+labels(1,2,3,4,5,6,7,8); endchar;
+
+cmchar "\textstyle summation sign";
+beginchar(oct"120",19u#,0,10/6dh#);
+adjust_fit(0,0); pickup tiny.nib;
+numeric top_arm_thickness, bot_arm_thickness, thick_stem, thin_stem;
+if serifs:
+ thick_stem = curve;
+ thin_stem = rule_thickness;
+ top_arm_thickness=Vround rule_thickness;
+ bot_arm_thickness=Vround .9(.5[rule_thickness,curve]);
+else:
+ thick_stem = cap_stem+2bigdw; % Sigma is cap_stem
+ thin_stem = cap_hair; % Sigma is cap_hair
+ top_arm_thickness=Vround thin_stem;
+ bot_arm_thickness=Vround thick_stem;
+fi
+lft x1l=hround u; x1l=x2l=x4l; x3l-x1l=4/11(w-2u);
+top y1=0; bot y2=-top_arm_thickness-eps; bot y4=-d; y3=-.5d;
+numeric alpha[]; alpha1=((x3l-x1l)++(y2-y3))/(y2-y3);
+penpos1(alpha1*(thick_stem-tiny),0);
+penpos2(alpha1*(thick_stem-tiny),0);
+penpos3(alpha1*(thick_stem-tiny),0);
+alpha2=diag_ratio(1,thin_stem-tiny,y3-y4,x3r-x4l);
+penpos4(alpha2*(thin_stem-tiny),0);
+z0=whatever[z2l,z3l]=z4l+whatever*(z3r-z4r);
+filldraw z1l--z2l--z0--z4l--z4r--z3r--z2r--z1r--cycle; % diagonals
+pickup crisp.nib; pos5(top_arm_thickness,90); pos6(hair,0);
+top y5r=0; x5=x1; rt x6r=hround(w-u); y6=good.y(y5l-beak)-eps;
+arm(5,6,a,.45,17/11u); % upper arm and beak
+pos7(bot_arm_thickness,-90); pos8(hair,0);
+bot y7r=-d; z7l=whatever[z4,z3]; x7r:=x4; x8=x6; y8=good.y(y7l+beak)+eps;
+arm(7,8,b,.45,17/11u); % lower arm and beak
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+cmchar "\displaystyle summation sign";
+beginchar(oct"130",26u#,0,14/6dh#); padded 1/6dh#;
+adjust_fit(0,0); pickup tiny.nib;
+numeric top_arm_thickness, bot_arm_thickness, thick_stem, thin_stem;
+if serifs:
+ thick_stem=bold+4bigdw; thin_stem=rule_thickness+bigdw;
+ top_arm_thickness=Vround .9thin_stem;
+ bot_arm_thickness=Vround .9(.5[thin_stem,thick_stem]);
+else:
+ thin_stem=cap_hair;
+ thick_stem=cap_stem+4bigdw;
+ top_arm_thickness = Vround thin_stem;
+ bot_arm_thickness = Vround thick_stem;
+fi
+lft x1l=hround u; x1l=x2l=x4l; x3l-x1l=4/11(w-2u);
+top y1=0; bot y2=-top_arm_thickness-eps; bot y4=-d; y3=-.5d;
+numeric alpha[]; alpha1=((x3l-x1l)++(y2-y3))/(y2-y3);
+penpos1(alpha1*(thick_stem-tiny),0);
+penpos2(alpha1*(thick_stem-tiny),0);
+penpos3(alpha1*(thick_stem-tiny),0);
+alpha2=diag_ratio(1,thin_stem-tiny,y3-y4,x3r-x4l);
+penpos4(alpha2*(thin_stem-tiny),0);
+z0=whatever[z2l,z3l]=z4l+whatever*(z3r-z4r);
+filldraw z1l--z2l--z0--z4l--z4r--z3r--z2r--z1r--cycle; % diagonals
+pickup crisp.nib; pos5(top_arm_thickness,90); pos6(hair,0);
+top y5r=0; x5=x1; rt x6r=hround(w-u); y6=good.y(y5l-1.2beak)-eps;
+arm(5,6,a,.45,24/11u); % upper arm and beak
+pos7(bot_arm_thickness,-90); pos8(hair,0);
+bot y7r=-d; z7l=whatever[z4,z3]; x7r:=x4; x8=x6; y8=good.y(y7l+1.2beak)+eps;
+arm(7,8,b,.45,24/11u); % lower arm and beak
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+cmchar "\textstyle product sign";
+beginchar(oct"121",17u#,0,10/6dh#);
+adjust_fit(0,0); pickup crisp.nib;
+numeric heavy_stem,light_stem;
+heavy_stem=hround(bold+bigdw); light_stem=rule_thickness if hefty: + 0.5bigdw fi;
+pos1(heavy_stem,0);pos2(heavy_stem,0); pos1'(heavy_stem,0);pos2'(heavy_stem,0);
+pos11(light_stem,90); pos12(light_stem,90); pos22(light_stem,90);
+lft x11=hround u;
+x1l-x11=hround I_cap_jut;
+x2l-x12=x22-x2r=hround cap_jut;
+x1=x1'=x2=x2';
+top y1=0; bot y2=-d; y11r=y1; y12l=y22l=y2;
+y11l-y1'=y2'-y12r=1.2bracket;
+filldraw z1r--z11r--serif_arc(11l,1'l)--reverse serif_arc(12r,2'l)
+ --z12l--z22l--serif_arc(22r,2'r)--cycle; % left stem and serifs
+pos3(heavy_stem,0);pos4(heavy_stem,0); pos3'(heavy_stem,0);pos4'(heavy_stem,0);
+pos13(light_stem,90); pos14(light_stem,90); pos24(light_stem,90);
+x3=x3'=x4=x4'=w-x1; x13=w-x11; x14=w-x12; x24=w-x22;
+y3=y13r=y1; y3'=y1'; y4'=y2'; y4=y14l=y24l=y2;
+filldraw z3l--z13r--serif_arc(13l,3'r)--reverse serif_arc(14r,4'r)
+ --z14l--z24l--serif_arc(24r,4'l)--cycle; % right stem and serifs
+filldraw stroke z11e--z13e; % bar
+penlabels(1,1',2,2',3,3',4,4',11,12,13,14,22,24); endchar;
+
+cmchar "\displaystyle product sign";
+beginchar(oct"131",23u#,0,14/6dh#); padded 1/6dh#;
+adjust_fit(0,0); pickup crisp.nib;
+numeric heavy_stem,light_stem;
+heavy_stem=hround(bold+5bigdw); light_stem=Vround(rule_thickness+bigdw);
+pos1(heavy_stem,0);pos2(heavy_stem,0); pos1'(heavy_stem,0);pos2'(heavy_stem,0);
+pos11(light_stem,90); pos12(light_stem,90); pos22(light_stem,90);
+lft x11=hround u;
+x1l-x11=hround 1.6 I_cap_jut;
+x2l-x12=x22-x2r=hround 1.6cap_jut;
+x1=x1'=x2=x2';
+top y1=0; bot y2=-d; y11r=y1; y12l=y22l=y2;
+y11l-y1'=y2'-y12r=1.8bracket;
+filldraw z1r--z11r--serif_arc(11l,1'l)--reverse serif_arc(12r,2'l)
+ --z12l--z22l--serif_arc(22r,2'r)--cycle; % left stem and serifs
+pos3(heavy_stem,0);pos4(heavy_stem,0); pos3'(heavy_stem,0);pos4'(heavy_stem,0);
+pos13(light_stem,90); pos14(light_stem,90); pos24(light_stem,90);
+x3=x3'=x4=x4'=w-x1; x13=w-x11; x14=w-x12; x24=w-x22;
+y3=y13r=y1; y3'=y1'; y4'=y2'; y4=y14l=y24l=y2;
+filldraw z3l--z13r--serif_arc(13l,3'r)--reverse serif_arc(14r,4'r)
+ --z14l--z24l--serif_arc(24r,4'l)--cycle; % right stem and serifs
+filldraw stroke z11e--z13e; % bar
+penlabels(1,1',2,2',3,3',4,4',11,12,13,14,22,24); endchar;
+
+cmchar "\textstyle coproduct sign";
+beginchar(oct"140",17u#,0,10/6dh#);
+adjust_fit(0,0); pickup crisp.nib;
+numeric heavy_stem,light_stem;
+heavy_stem=hround(bold+bigdw); light_stem=rule_thickness if hefty: + 0.5bigdw fi;
+pos1(heavy_stem,0);pos2(heavy_stem,0); pos1'(heavy_stem,0);pos2'(heavy_stem,0);
+pos11(light_stem,-90); pos12(light_stem,-90); pos22(light_stem,-90);
+lft x11=hround u;
+x1l-x11=hround I_cap_jut;
+x2l-x12=x22-x2r=hround cap_jut;
+x1=x1'=x2=x2';
+bot y1=-d; top y2=0; y11r=y1; y12l=y22l=y2;
+y1'-y11l=y12r-y2'=1.2bracket;
+filldraw z1r--z11r--serif_arc(11l,1'l)--reverse serif_arc(12r,2'l)
+ --z12l--z22l--serif_arc(22r,2'r)--cycle; % left stem and serifs
+pos3(heavy_stem,0);pos4(heavy_stem,0); pos3'(heavy_stem,0);pos4'(heavy_stem,0);
+pos13(light_stem,-90); pos14(light_stem,-90); pos24(light_stem,-90);
+x3=x3'=x4=x4'=w-x1; x13=w-x11; x14=w-x12; x24=w-x22;
+y3=y13r=y1; y3'=y1'; y4'=y2'; y4=y14l=y24l=y2;
+filldraw z3l--z13r--serif_arc(13l,3'r)--reverse serif_arc(14r,4'r)
+ --z14l--z24l--serif_arc(24r,4'l)--cycle; % right stem and serifs
+filldraw stroke z11e--z13e; % bar
+penlabels(1,1',2,2',3,3',4,4',11,12,13,14,22,24); endchar;
+
+cmchar "\displaystyle coproduct sign";
+beginchar(oct"141",23u#,0,14/6dh#); padded 1/6dh#;
+adjust_fit(0,0); pickup crisp.nib;
+numeric heavy_stem,light_stem;
+heavy_stem=hround(bold+5bigdw); light_stem=Vround(rule_thickness+bigdw);
+pos1(heavy_stem,0);pos2(heavy_stem,0); pos1'(heavy_stem,0);pos2'(heavy_stem,0);
+pos11(light_stem,-90); pos12(light_stem,-90); pos22(light_stem,-90);
+lft x11=hround u;
+x1l-x11=hround 1.6 I_cap_jut;
+x2l-x12=x22-x2r=hround 1.6cap_jut;
+x1=x1'=x2=x2';
+bot y1=-d; top y2=0; y11r=y1; y12l=y22l=y2;
+y1'-y11l=y12r-y2'=1.8bracket;
+filldraw z1r--z11r--serif_arc(11l,1'l)--reverse serif_arc(12r,2'l)
+ --z12l--z22l--serif_arc(22r,2'r)--cycle; % left stem and serifs
+pos3(heavy_stem,0);pos4(heavy_stem,0); pos3'(heavy_stem,0);pos4'(heavy_stem,0);
+pos13(light_stem,-90); pos14(light_stem,-90); pos24(light_stem,-90);
+x3=x3'=x4=x4'=w-x1; x13=w-x11; x14=w-x12; x24=w-x22;
+y3=y13r=y1; y3'=y1'; y4'=y2'; y4=y14l=y24l=y2;
+filldraw z3l--z13r--serif_arc(13l,3'r)--reverse serif_arc(14r,4'r)
+ --z14l--z24l--serif_arc(24r,4'l)--cycle; % right stem and serifs
+filldraw stroke z11e--z13e; % bar
+penlabels(1,1',2,2',3,3',4,4',11,12,13,14,22,24); endchar;
+
+cmchar "\textstyle integral sign";
+beginchar(oct"122",12u#,0,100/54dh#);
+italcorr 3.5u#; % \TeX\ kerning between upper limit and lower limit
+adjust_fit(0,-ic#); pickup fine.nib;
+if serifs:
+pos2(hair,0); pos8(hair,-180);
+else:
+pos2(vair,0); pos8(vair,-180);
+fi
+pos1(curve,0); pos3(vair,90); pos4(stem,180);
+pos5(curve,180); pos5'(curve,0); z5'=z5; pos6(stem,0);
+pos7(vair,-90); pos9(curve,-180);
+rt x1r=hround(w-u); x9=w-x1; x7=w-x3=3u;
+x5=.5[x4,x6]; x4-x6=1.2u; lft x5r=hround(.5w-.5curve);
+top y3r=0; bot y7r=-d; y9-.5curve=vround(top y7l+.25curve);
+y3-y1=y9-y7; y5=.5[y3,y7]=.5[y4,y6]; y4-y6=.6(y3-y7);
+sansbulb(3,2,1); sansbulb(7,8,9); % bulbs
+filldraw stroke z3e{left}...z4e{(z5e-z4e)xscaled 1.1}
+ ..tension atleast 1 and atleast .8..{z5-z4}z5e; % upper stem
+filldraw stroke z5'e{z6-z5}..tension atleast.8 and atleast 1
+ ..{(z6e-z5'e)xscaled 1.1}z6e...{left}z7e; % lower stem
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "\displaystyle integral sign";
+beginchar(oct"132",18u#,0,200/54dh#);
+italcorr 8u#; % \TeX\ kerning between upper limit and lower limit
+adjust_fit(0,-ic#); pickup fine.nib;
+numeric bulb_size, max_size;
+bulb_size=hround(bold+bigdw); max_size=hround(bold+2bigdw);
+pos1(bulb_size,0); pos2(hair,0); pos3(vair,90); pos4(bold,180);
+pos5(max_size,180); pos5'(max_size,0); z5'=z5; pos6(bold,0);
+pos7(vair,-90); pos8(hair,-180); pos9(bulb_size,-180);
+rt x1r=hround(w-u); x9=w-x1; x7=w-x3=3u;
+x5=.5[x4,x6]; x4-x6=4.8u; lft x5r=hround(.5w-.5max_size);
+top y3r=0; bot y7r=-d;
+y9-.5bulb_size=vround(top y7l+.25bulb_size); y3-y1=y9-y7;
+y5=.5[y3,y7]=.5[y4,y6]; y4-y6=.6(y3-y7);
+sansbulb(3,2,1); sansbulb(7,8,9); % bulbs
+filldraw stroke z3e{left}...z4e{(z5e-z4e)xscaled 1.1}
+ ..tension atleast 1 and atleast .8..{z5-z4}z5e; % upper stem
+filldraw stroke z5'e{z6-z5}..tension atleast.8 and atleast 1
+ ..{(z6e-z5'e)xscaled 1.1}z6e...{left}z7e; % lower stem
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "\textstyle contour integral sign";
+beginchar(oct"110",12u#,0,100/54dh#);
+italcorr 3.5u#; % \TeX\ kerning between upper limit and lower limit
+adjust_fit(0,-ic#); pickup fine.nib;
+if serifs:
+pos2(hair,0); pos8(hair,-180);
+else:
+pos2(vair,0); pos8(vair,-180);
+fi
+pos1(curve,0); pos3(vair,90); pos4(stem,180);
+pos5(curve,180); pos5'(curve,0); z5'=z5; pos6(stem,0);
+pos7(vair,-90); pos9(curve,-180);
+rt x1r=hround(w-u); x9=w-x1; x7=w-x3=3u;
+x5=.5[x4,x6]; x4-x6=1.2u; lft x5r=hround(.5w-.5curve);
+top y3r=0; bot y7r=-d; y9-.5curve=vround(top y7l+.25curve);
+y3-y1=y9-y7; y5=.5[y3,y7]=.5[y4,y6]; y4-y6=.6(y3-y7);
+sansbulb(3,2,1); sansbulb(7,8,9); % bulbs
+filldraw stroke z3e{left}...z4e{(z5e-z4e)xscaled 1.1}
+ ..tension atleast 1 and atleast .8..{z5-z4}z5e; % upper stem
+filldraw stroke z5'e{z6-z5}..tension atleast.8 and atleast 1
+ ..{(z6e-z5'e)xscaled 1.1}z6e...{left}z7e; % lower stem
+pickup rule.nib; autorounded;
+draw fullcircle scaled .5w shifted z5; % contour
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "\displaystyle contour integral sign";
+beginchar(oct"111",18u#,0,200/54dh#);
+italcorr 8u#; % \TeX\ kerning between upper limit and lower limit
+adjust_fit(0,-ic#); pickup fine.nib;
+numeric bulb_size, max_size;
+bulb_size=hround(bold+bigdw); max_size=hround(bold+2bigdw);
+pos1(bulb_size,0); pos2(hair,0); pos3(vair,90); pos4(bold,180);
+pos5(max_size,180); pos5'(max_size,0); z5'=z5; pos6(bold,0);
+pos7(vair,-90); pos8(hair,-180); pos9(bulb_size,-180);
+rt x1r=hround(w-u); x9=w-x1; x7=w-x3=3u;
+x5=.5[x4,x6]; x4-x6=4.8u; lft x5r=hround(.5w-.5max_size);
+top y3r=0; bot y7r=-d;
+y9-.5bulb_size=vround(top y7l+.25bulb_size); y3-y1=y9-y7;
+y5=.5[y3,y7]=.5[y4,y6]; y4-y6=.6(y3-y7);
+sansbulb(3,2,1); sansbulb(7,8,9); % bulbs
+filldraw stroke z3e{left}...z4e{(z5e-z4e)xscaled 1.1}
+ ..tension atleast 1 and atleast .8..{z5-z4}z5e; % upper stem
+filldraw stroke z5'e{z6-z5}..tension atleast.8 and atleast 1
+ ..{(z6e-z5'e)xscaled 1.1}z6e...{left}z7e; % lower stem
+pickup rule.nib; autorounded;
+draw fullcircle scaled .5w shifted z5; % contour
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "\textstyle set union sign";
+beginchar(oct"123",15u#,0,10/6dh#);
+adjust_fit(0,0); pickup pencircle scaled stem;
+lft x1=hround u; x2=x1; x3=w-x3; x4=x5=w-x1;
+top y1=eps; bot y3=-d; y2=y4=2/3[y1,y3]; y5=y1;
+draw z1---z2...z3...z4---z5; % stems and cup
+labels(1,2,3,4,5); endchar;
+
+cmchar "\displaystyle set union sign";
+beginchar(oct"133",20u#,0,14/6dh#); padded 1/6dh#;
+adjust_fit(0,0); pickup pencircle scaled curve;
+lft x1=hround u; x2=x1; x3=w-x3; x4=x5=w-x1;
+top y1=eps; bot y3=-d; y2=y4=2/3[y1,y3]; y5=y1;
+draw z1---z2...z3...z4---z5; % stems and cup
+labels(1,2,3,4,5); endchar;
+
+cmchar "\textstyle set intersection sign";
+beginchar(oct"124",15u#,0,10/6dh#);
+adjust_fit(0,0); pickup pencircle scaled stem;
+lft x1=hround u; x2=x1; x3=w-x3; x4=x5=w-x1;
+top y3=0; bot y1=-d-eps; y2=y4=2/3[y1,y3]; y5=y1;
+draw z1---z2...z3...z4---z5; % stems and cap
+labels(1,2,3,4,5); endchar;
+
+cmchar "\displaystyle set intersection sign";
+beginchar(oct"134",20u#,0,14/6dh#); padded 1/6dh#;
+adjust_fit(0,0); pickup pencircle scaled curve;
+lft x1=hround u; x2=x1; x3=w-x3; x4=x5=w-x1;
+top y3=0; bot y1=-d-eps; y2=y4=2/3[y1,y3]; y5=y1;
+draw z1---z2...z3...z4---z5; % stems and cap
+labels(1,2,3,4,5); endchar;
+
+cmchar "\textstyle multiset union sign";
+beginchar(oct"125",15u#,0,10/6dh#);
+adjust_fit(0,0); pickup pencircle scaled stem;
+lft x1=hround u; x2=x1; x3=w-x3; x4=x5=w-x1;
+top y1=eps; bot y3=-d; y2=y4=2/3[y1,y3]; y5=y1;
+draw z1---z2...z3...z4---z5; % stems and cup
+y8=y9=.47[y1,y3]; x8=w-x9=x1+2stem+eps; x6=x7=x3;
+.5[y6,y7]=y8; y7-y6=x9-x8; draw z8--z9; draw z6--z7; % enclosed `$+$'
+labels(1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "\displaystyle multiset union sign";
+beginchar(oct"135",20u#,0,14/6dh#); padded 1/6dh#;
+adjust_fit(0,0); pickup pencircle scaled curve;
+lft x1=hround u; x2=x1; x3=w-x3; x4=x5=w-x1;
+top y1=eps; bot y3=-d; y2=y4=2/3[y1,y3]; y5=y1;
+draw z1---z2...z3...z4---z5; % stems and cup
+y8=y9=.47[y1,y3]; x8=w-x9=x1+2curve+eps; x6=x7=x3;
+.5[y6,y7]=y8; y7-y6=x9-x8; draw z8--z9; draw z6--z7; % enclosed `$+$'
+labels(1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "\textstyle lattice infimum sign";
+beginchar(oct"126",15u#,0,10/6dh#);
+adjust_fit(0,0); pickup pencircle scaled stem;
+lft x1=hround u-eps; x3=w-x3; x5=w-x1;
+top y3=0; bot y1=-d-eps; y5=y1;
+draw z1--z3--z5; % diagonals
+labels(1,3,5); endchar;
+
+cmchar "\displaystyle lattice infimum sign";
+beginchar(oct"136",20u#,0,14/6dh#); padded 1/6dh#;
+adjust_fit(0,0); pickup pencircle scaled curve;
+lft x1=hround u-eps; x3=w-x3; x5=w-x1;
+top y3=0; bot y1=-d-eps; y5=y1;
+draw z1--z3--z5; % diagonals
+labels(1,3,5); endchar;
+
+cmchar "\textstyle lattice supremum sign";
+beginchar(oct"127",15u#,0,10/6dh#);
+adjust_fit(0,0); pickup pencircle scaled stem;
+lft x1=hround u-eps; x3=w-x3; x5=w-x1;
+top y1=eps; bot y3=-d; y5=y1;
+draw z1--z3--z5; % diagonals
+labels(1,3,5); endchar;
+
+cmchar "\displaystyle lattice supremum sign";
+beginchar(oct"137",20u#,0,14/6dh#); padded 1/6dh#;
+adjust_fit(0,0); pickup pencircle scaled curve;
+lft x1=hround u-eps; x3=w-x3; x5=w-x1;
+top y1=eps; bot y3=-d; y5=y1;
+draw z1--z3--z5; % diagonals
+labels(1,3,5); endchar;