summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/fonts/source/public/ams/bsymbols.mf
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/fonts/source/public/ams/bsymbols.mf')
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/bsymbols.mf1645
1 files changed, 0 insertions, 1645 deletions
diff --git a/Master/texmf-dist/fonts/source/public/ams/bsymbols.mf b/Master/texmf-dist/fonts/source/public/ams/bsymbols.mf
deleted file mode 100644
index e1ae4391b00..00000000000
--- a/Master/texmf-dist/fonts/source/public/ams/bsymbols.mf
+++ /dev/null
@@ -1,1645 +0,0 @@
-%% @metafontfile{
-%% filename="bsymbols.mf",
-%% version="2.2",
-%% date="04-JAN-1995",
-%% filetype="Metafont: driver",
-%% copyright="Copyright (C) American Mathematical Society,
-%% all rights reserved. Copying of this file is
-%% authorized only if either:
-%% (1) you make absolutely no changes to your copy
-%% including name; OR
-%% (2) if you do make changes, you first rename it to some
-%% other name.",
-%% author="American Mathematical Society",
-%% address="American Mathematical Society,
-%% Technical Support, Electronic Products and Services,
-%% P. O. Box 6248,
-%% Providence, RI 02940,
-%% USA",
-%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
-%% email="Internet: Tech-Support@Math.AMS.org",
-%% codetable="ISO/ASCII",
-%% checksum = "24957 1645 5619 66280"
-%% keywords="amsfonts, tex, metafont , AMSSymbols ",
-%% abstract="This is the driver file for use with
-%% MSBM, the second extra symbol font in AMSFonts 2.2."
-%% docstring = "The checksum field above contains a CRC-16
-%% checksum as the first value, followed by the
-%% equivalent of the standard UNIX wc (word
-%% count) utility output of lines, words, and
-%% characters. This is produced by Robert
-%% Solovay's checksum utility.",
-%% }
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% This file defines the symbols of AMS special MSB font.
-
-def char_negate(suffix c,t,b) = %c is center point; t is top point; b is bottom
-pickup rule.nib;
-w-x.t=x.b; y.t-y.c=y.c-y.b; draw z.t--z.b;
-penlabels(t,c,b); enddef;
-def char_center(suffix c) = % find center of type character
-x.c=w/2; y.c=.5[-d,h]; enddef;
-
-cmchar "Less than or not (double) equals sign";
-compute_spread(.45x_height#,.55x_height#);
-spread#':=spread#; spread':=spread;
-compute_spread(5/4x_height#,3/2x_height#);
-beginchar(oct"000",14u#,v_center(2spread#'+spread#+2rule_thickness#));
-italcorr h#*slant-u#; adjust_fit(0,0); pickup rule.nib;
-lft x2=hround 1.5u-eps; x1=x3=w-x2; y1-y3=spread;
-y2=.5[y1,y3]; top y1=h;
-x2=x9=x7; x1=x8=x6; y7=y6; y8=y9;
-y7-y9=spread'; top y3-bot y6=spread';
-draw z1--z2--z3; % diagonals
-draw z6--z7; draw z8--z9; % equal sign
-z.c=.5[z7,z8]; x.t=x.c; y.t=2/3[y6,y3];
-char_negate(c,t,b);
-penlabels(1,2,3,6,7,8,9); endchar;
-
-cmchar "Greater than or not (double) equals sign";
-compute_spread(.45x_height#,.55x_height#);
-spread#':=spread#; spread':=spread;
-compute_spread(5/4x_height#,3/2x_height#);
-beginchar(oct"001",14u#,v_center(2spread#'+spread#+2rule_thickness#));
-italcorr h#*slant-u#; adjust_fit(0,0); pickup rule.nib;
-rt x2=hround(w-1.5u)+eps; x1=x3=w-x2; y1-y3=spread;
-x2=x7=x9; x1=x6=x8; y6=y7; y8=y9;
-y2=.5[y1,y3]; top y3-bot y6=spread'; top y1=h;
-y7-y9=spread';
-draw z1--z2--z3; % diagonals
-draw z6--z7; draw z8--z9;
-z.c=.5[z7,z8]; x.t=x.c; y.t=2/3[y6,y3];
-char_negate(c,t,b);
-penlabels(1,2,3,6,7,8,9); endchar;
-
-cmchar "Not less than or equal to sign";
-compute_spread(.45x_height#,.55x_height#);
-spread#':=spread#; spread':=spread; % the spread of `$=$'
-compute_spread(5/4x_height#,3/2x_height#);
-beginchar(oct"002",14u#,v_center(spread#'+spread#+rule_thickness#+6u#));
-italcorr h#*slant-u#;
-adjust_fit(0,0); pickup rule.nib;
-lft x2=hround 1.5u-eps; x1=x3=w-x2;
-y1-y3=spread; y2=.5[y1,y3]; top y1=h-3u;
-draw z1--z2--z3; % diagonals
-x8=x1; x9=x2; y8=y9; y3-y9=spread'; draw z8--z9; % bar
-char_center(100); x101=w-3u; y101=y1+3u;
-char_negate(100,101,102);
-labels(1,2,3,8,9,99,100); endchar;
-
-cmchar "Not greater than or equal to sign";
-compute_spread(.45x_height#,.55x_height#);
-spread#':=spread#; spread':=spread; % the spread of `$=$'
-compute_spread(5/4x_height#,3/2x_height#);
-beginchar(oct"003",14u#,v_center(spread#'+spread#+rule_thickness#+6u#));
-italcorr h#*slant-u#;
-adjust_fit(0,0); pickup rule.nib;
-lft x1=hround 1.5u-eps; x2=w-x1; x3=x1;
-y1-y3=spread; y2=.5[y1,y3]; top y1=h-3u;
-draw z1--z2--z3; % diagonals
-x8=x1; x9=x2; y8=y9; y3-y9=spread'; draw z8--z9; % bar
-char_center(100); x101=w-3u; y101=y1+3u;
-char_negate(100,101,102);
-labels(1,2,3,8,9,99,100); endchar;
-
-cmchar "Not less than sign";
-compute_spread(5/4x_height#,3/2x_height#);
-beginchar(oct"004",14u#,v_center(spread#+rule_thickness#+6u#));
-italcorr h#*slant-u#;
-adjust_fit(0,0); pickup rule.nib;
-lft x2=hround 1.5u-eps; x1=x3=w-x2;
-y1-y3=spread; y2=.5[y1,y3]=math_axis;
-draw z1--z2--z3; % diagonals
-char_center(100); x101=w-3u; y101=y1+3u;
-char_negate(100,101,102);
-labels(1,2,3); endchar;
-
-cmchar "Not greater than sign";
-compute_spread(5/4x_height#,3/2x_height#);
-beginchar(oct"005",14u#,v_center(spread#+rule_thickness#+6u#));
-italcorr math_axis#*slant-u#;
-adjust_fit(0,0); pickup rule.nib;
-rt x2=hround(w-1.5u)+eps; x1=x3=w-x2;
-y1-y3=spread; y2=.5[y1,y3]=math_axis;
-draw z1--z2--z3; % diagonals
-char_center(100); x101=w-3u; y101=y1+3u;
-char_negate(100,101,102);
-labels(1,2,3,99,100); endchar;
-
-cmchar "Not precedes sign";
-compute_spread(5/4x_height#,3/2x_height#);
-beginchar(oct"006",14u#,v_center(spread#+rule_thickness#+6u#));
-adjust_fit(0,0); pickup rule.nib; autorounded;
-lft x2=hround 1.5u-epsilon; x1=x3=w-x2;
-y1-y3=spread; y2=.5[y1,y3]; top y1=h-3u;
-draw z1{-u,-spread}...{left}z2; % upper diagonal
-draw z3{-u,spread}...{left}z2; % lower diagonal
-char_center(100); x101=w-3u; y101=y1+3u;
-char_negate(100,101,102);
-labels(1,2,3,99,100); endchar;
-
-cmchar "Not follows sign";
-compute_spread(5/4x_height#,3/2x_height#);
-beginchar(oct"007",14u#,v_center(spread#+rule_thickness#+6u#));
-adjust_fit(0,0); pickup rule.nib; autorounded;
-lft x1=hround 1.5u-epsilon; x2=w-x1; x3=x1;
-y1-y3=spread; y2=.5[y1,y3]; top y1=h-3u;
-draw z1{u,-spread}...{right}z2; % upper diagonal
-draw z3{u,spread}...{right}z2; % lower diagonal
-char_center(100); x101=w-3u; y101=y1+3u;
-char_negate(100,101,102);
-labels(1,2,3,99,100); endchar;
-
-cmchar "Less than or slanted not (double) equals sign";
-compute_spread(.45x_height#,.55x_height#);
-spread#':=spread#; spread':=spread;
-compute_spread(5/4x_height#,3/2x_height#);
-beginchar(oct"010",14u#,v_center(2spread#'+spread#+2rule_thickness#));
-italcorr h#*slant-u#; adjust_fit(0,0); pickup rule.nib;
-lft x2=hround 1.5u-eps; x1=x3=w-x2; y1-y3=spread;
-y2=.5[y1,y3]; top y1=h;
-x2=x9=x7; x1=x8=x6; y7=y6; y8=y9;
-y7-y9=spread'; top y3-bot y6=spread';
-draw z1--z2--z3; % diagonals
-draw z6--z7; draw z8--z9; % equal sign
-z.c=.5[z7,z8]; x.t=2/3[x.c, x3]; y.t=2/3[y6,y3];
-char_negate(c,t,b);
-penlabels(1,2,3,6,7,8,9); endchar;
-
-cmchar "Greater than or slanted not (double) equals sign";
-compute_spread(.45x_height#,.55x_height#);
-spread#':=spread#; spread':=spread;
-compute_spread(5/4x_height#,3/2x_height#);
-beginchar(oct"011",14u#,v_center(2spread#'+spread#+2rule_thickness#));
-italcorr h#*slant-u#; adjust_fit(0,0); pickup rule.nib;
-rt x2=hround(w-1.5u)+eps; x1=x3=w-x2; y1-y3=spread;
-x2=x7=x9; x1=x6=x8; y6=y7; y8=y9;
-y2=.5[y1,y3]; top y3-bot y6=spread'; top y1=h;
-y7-y9=spread';
-draw z1--z2--z3; % diagonals
-draw z6--z7; draw z8--z9;
-z.c=.5[z7,z8]; x.t=2/3[x.c, w-x3]; y.t=2/3[y6,y3];
-char_negate(c,t,b);
-penlabels(1,2,3,6,7,8,9); endchar;
-
-cmchar "Not less than or (slanted) equal sign";
-compute_spread(.45x_height#,.55x_height#);
-spread#':=spread#; spread':=spread;
-compute_spread(5/4x_height#,3/2x_height#);
-beginchar(oct"012",14u#,v_center(spread#'+spread#+rule_thickness#+6u#));
-italcorr h#*slant-u#; adjust_fit(0,0); pickup rule.nib;
-lft x2=hround 1.5u-eps; x1=x3=w-x2; y1-y3=spread;
-y2=.5[y1,y3]; y3-y8=y2-y9=spread'; top y1=h-3u;
-x2=x9; x1=x8;
-draw z1--z2--z3; % diagonals
-draw z8--z9; % equal sign
-char_center(c); x.t=w-3u; y.t=y1+3u;
-char_negate(c,t,b);
-penlabels(1,2,3,8,9); endchar;
-
-cmchar "Not greater than or (slanted) equal sign";
-compute_spread(.45x_height#,.55x_height#);
-spread#':=spread#; spread':=spread;
-compute_spread(5/4x_height#,3/2x_height#);
-beginchar(oct"13",14u#,v_center(spread#'+spread#+rule_thickness#+6u#));
-italcorr h#*slant-u#; adjust_fit(0,0); pickup rule.nib;
-rt x2=hround(w-1.5u)+eps; x1=x3=w-x2; y1-y3=spread;
-x2=x9; x1=x8;
-y2=.5[y1,y3]; y3-y8=y2-y9=spread'; top y1=h-3u;
-draw z1--z2--z3; % diagonals
-draw z8--z9;
-char_center(c); x.t=w-3u; y.t=y1+3u;
-char_negate(c,t,b);
-penlabels(1,2,3,8,9); endchar;
-
-cmchar "Less than or not equal to sign";
-compute_spread(.45x_height#,.55x_height#);
-spread#':=spread#; spread':=spread; % the spread of `$=$'
-compute_spread(5/4x_height#,3/2x_height#);
-beginchar(oct"014",14u#,v_center(spread#'+spread#+rule_thickness#));
-italcorr h#*slant-u#; adjust_fit(0,0); pickup rule.nib; lft
-x2=hround 1.5u-eps; x1=x3=w-x2; y1-y3=spread; y2=.5[y1,y3];
-top y1=h; draw z1--z2--z3; % diagonals
-x8=x1; x9=x2; y8=y9;
-y3-y9=spread'; draw z8--z9; % bar
-x100=w/2; y100=y8; % center point
-y101=.5[y8,y3]; x101-x100=y101-y100;
-char_negate(100,101,102);
-labels(1,2,3,8,9); endchar;
-
-cmchar "Greater than or not equal to sign";
-compute_spread(.45x_height#,.55x_height#);
-spread#':=spread#; spread':=spread; % the spread of `$=$'
-compute_spread(5/4x_height#,3/2x_height#);
-beginchar(oct"015",14u#,v_center(spread#'+spread#+rule_thickness#));
-italcorr h#*slant-u#; adjust_fit(0,0); pickup rule.nib; lft
-x1=hround 1.5u-eps; x2=w-x1; x3=x1; y1-y3=spread;
-y2=.5[y1,y3]; top y1=h; draw z1--z2--z3; % diagonals
-x8=x1;
-x9=x2; y8=y9; y3-y9=spread'; draw z8--z9; % bar
-x100=w/2; y100=y8; % center point
-y101=.5[y8,y3]; x101-x100=y101-y100;
-char_negate(100,101,102);
-labels(1,2,3,8,9); endchar;
-
-cmchar "Not precedes or equals sign";
-compute_spread(.45x_height#,.55x_height#);
-spread#':=spread#; spread':=spread; % the spread of `$=$'
-compute_spread(5/4x_height#,3/2x_height#);
-beginchar(oct"016",14u#,v_center(spread#'+spread#+rule_thickness#+6u#));
-adjust_fit(0,0); pickup rule.nib; autorounded; lft x2=hround
-1.5u-eps; x1=x3=w-x2; y1-y3=spread; y2=.5[y1,y3]; top y1=h-3u;
-draw z1{-u,-spread}...{left}z2; % upper diagonal
-draw z3{-u,spread}...{left}z2; % lower diagonal
-x8=x1; x9=x2;
-y8=y9; y3-y9=spread'; draw z8--z9; % bar
-char_center(100); x101=w-3u; y101=y1+3u;
-char_negate(100,101,102);
-labels(1,2,3,8,9,99,100); endchar;
-
-cmchar "Not follows or equals sign";
-compute_spread(.45x_height#,.55x_height#);
-spread#':=spread#; spread':=spread; % the spread of `$=$'
-compute_spread(5/4x_height#,3/2x_height#);
-beginchar(oct"017",14u#,v_center(spread#'+spread#+rule_thickness#+6u#));
-adjust_fit(0,0); pickup rule.nib; autorounded; lft x1=hround
-1.5u-eps; x2=w-x1; x3=x1; y1-y3=spread; y2=.5[y1,y3]; top
-y1=h-3u; draw z1{u,-spread}...{right}z2; % upper diagonal
-draw z3{u,spread}...{right}z2; % lower diagonal
-x8=x1; x9=x2;
-y8=y9; y3-y9=spread'; draw z8--z9; % bar
-char_center(100); x101=w-3u; y101=y1+3u;
-char_negate(100,101,102);
-labels(1,2,3,8,9,99,100); endchar;
-
-cmchar "Precedes or not approximately equals sign";
-compute_spread(.45x_height#,.55x_height#);
-spread#':=spread#; spread':=spread;
-compute_spread(.54x_height#,.55x_height#);
-spread#'':=spread#; spread'':=spread;
-compute_spread(5/4 x_height#,3/2 x_height#);
-beginchar(oct"020",14u#,v_center(spread#'+spread#+spread#''));
-adjust_fit(0,0); pickup rule.nib; autorounded;
-lft x2=hround 1.5u-eps; x1=x3=w-x2;
-y1-y3=spread; y2=.5[y1,y3]; top y1=h;
-draw z1{-u,-spread}...{left}z2; %upper `diagonal'
-draw z3{-u,spread}...{left}z2; % lower diagonal
-pickup pencircle xscaled .7rule_thickness yscaled
-1.4rule_thickness;
-if vair#>.8curve#: pickup rule.nib; autorounded; fi
-lft x11=hround u; x12=4u; x13=w-x12; x14=w-x11;
-bot y11=bot y13; top y12=top y14;
-top y12-bot y11=spread'';
- y3-y14=spread';
-draw z11{up}...z12{right}..{right}z13...{up}z14;
-x.c=w/2; y.c=.5[y12,y13]; x.t=3/8[x.c,x14]; y.t=2/3[y12,y3];
-char_negate(c,t,b);
-penlabels(1,2,3,11,12,13,14); endchar;
-
-cmchar "Follows or not equals sign";
-compute_spread(.45x_height#,.55x_height#);
-spread#':=spread#; spread':=spread; % spread of similarity sign
-compute_spread(.54 x_height#,.66 x_height#);
-spread#'':=spread#; spread'':=spread; % spread between symbols
-compute_spread(5/4 x_height#,3/2 x_height#); % spread of follows sign
-beginchar(oct"021",14u#,v_center(spread#'+spread#+spread#''));
-adjust_fit(0,0); pickup rule.nib; autorounded;
-lft x1=hround 1.5u-eps; x1=x3; x2=w-x1;
-y1-y3=spread; y2=.5[y1,y3]; top y1=h;
-draw z1{u,-spread}...{right}z2; %upper `diagonal'
-draw z3{u,spread}...{right}z2; % lower diagonal
-pickup pencircle xscaled .7rule_thickness yscaled
-1.4rule_thickness;
-if vair#>.8curve#: pickup rule.nib; autorounded; fi
-lft x11=hround u; x12=4u; x13=w-x12; x14=w-x11;
-bot y11=bot y13; top y12=top y14;
-top y12-bot y11=spread'';
-y3-y14=spread';
-draw z11{up}...z12{right}..{right}z13...{up}z14;
-x.c=w/2; y.c=.5[y12,y13]; x.t=3/8[x.c,x14]; y.t=2/3[y12,y3];
-char_negate(c,t,b);
-penlabels(1,2,3,11,12,13,14); endchar;
-
-
-
-cmchar "Less than or not similar to sign";
-compute_spread(.45x_height#,.55x_height#);
-spread#':=spread#; spread':=spread;
-compute_spread(.54x_height#,.55x_height#);
-spread#'':=spread#; spread'':=spread;
-compute_spread(5/4 x_height#,3/2 x_height#);
-beginchar(oct"022",14u#,v_center(spread#'+spread#+spread#''));
-adjust_fit(0,0); pickup rule.nib; autorounded;
-lft x2=hround 1.5u-eps; x1=x3=w-x2;
-y1-y3=spread; y2=.5[y1,y3]; top y1=h;
-draw z1--z2--z3;
-pickup pencircle xscaled .7rule_thickness yscaled
-1.4rule_thickness;
-if vair#>.8curve#: pickup rule.nib; autorounded; fi
-lft x11=hround u; x12=4u; x13=w-x12; x14=w-x11;
-bot y11=bot y13; top y12=top y14;
-top y12-bot y11=spread'';
- y3-y14=spread';
-draw z11{up}...z12{right}..{right}z13...{up}z14;
-x.c=w/2; y.c=.5[y12,y13]; x.t=3/8[x.c,x14]; y.t=2/3[y12,y3];
-char_negate(c,t,b);
-penlabels(1,2,3,4,11,12,13,14); endchar;
-
-
-
-cmchar "Greater than or not similar to sign";
-compute_spread(.45x_height#,.55x_height#);
-spread#':=spread#; spread':=spread;
-compute_spread(.54x_height#,.66x_height#);
-spread#'':=spread#; spread'':=spread;
-compute_spread(5/4 x_height#,3/2 x_height#);
-beginchar(oct"023",14u#,v_center(spread#'+spread#+spread#''));
-adjust_fit(0,0); pickup rule.nib; autorounded;
-lft x1=hround 1.5u-eps; x1=x3; x2=w-x1;
-y1-y3=spread; y2=.5[y1,y3]; top y1=h;
-draw z1--z2--z3;
-pickup pencircle xscaled .7rule_thickness yscaled
-1.4rule_thickness;
-if vair#>.8curve#: pickup rule.nib; autorounded; fi
-lft x11=hround u; x12=4u; x13=w-x12; x14=w-x11;
-bot y11=bot y13; top y12=top y14;
-top y12-bot y11=spread'';
- y3-y14=spread';
-draw z11{up}...z12{right}..{right}z13...{up}z14;
-z.c=.5[z12,z13]; x.t=3/8[x.c,x14]; y.t=2/3[y12,y3];
-char_negate(c,t,b);
-penlabels(1,2,3,4,11,12,13,14); endchar;
-
-
-cmchar "Negated less than or (double) equals sign";
-compute_spread(.45x_height#,.55x_height#);
-spread#':=spread#; spread':=spread;
-compute_spread(5/4x_height#,3/2x_height#);
-beginchar(oct"024",14u#,v_center(2spread#'+spread#+2rule_thickness#+6u#));
-italcorr h#*slant-u#; adjust_fit(0,0); pickup rule.nib;
-lft x2=hround 1.5u-eps; x1=x3=w-x2; y1-y3=spread;
-y2=.5[y1,y3]; top y1=h-3u;
-x2=x9=x7; x1=x8=x6; y7=y6; y8=y9;
-y7-y9=spread'; top y3-bot y6=spread';
-draw z1--z2--z3; % diagonals
-draw z6--z7; draw z8--z9; % equal sign
-char_center(c); x.t=w-3u; y.t=y1+3u;
-char_negate(c,t,b);
-penlabels(1,2,3,6,7,8,9); endchar;
-
-cmchar "Negated greater than or (double) equals sign";
-compute_spread(.45x_height#,.55x_height#);
-spread#':=spread#; spread':=spread;
-compute_spread(5/4x_height#,3/2x_height#);
-beginchar(oct"025",14u#,v_center(2spread#'+spread#+2rule_thickness#+6u#));
-italcorr h#*slant-u#; adjust_fit(0,0); pickup rule.nib;
-rt x2=hround(w-1.5u)+eps; x1=x3=w-x2; y1-y3=spread;
-x2=x7=x9; x1=x6=x8; y6=y7; y8=y9;
-y2=.5[y1,y3]; top y3-bot y6=spread'; top y1=h-3u;
-y7-y9=spread';
-draw z1--z2--z3; % diagonals
-draw z6--z7; draw z8--z9;
-char_center(c); x.t=w-3u; y.t=y1+3u;
-char_negate(c,t,b);
-penlabels(1,2,3,6,7,8,9); endchar;
-
-cmchar "Precedes or slanted not (double) equals sign";
-compute_spread(.45x_height#,.55x_height#);
-spread#':=spread#; spread':=spread;
-compute_spread(5/4x_height#,3/2x_height#);
-beginchar(oct"026",14u#,v_center(2spread#'+spread#+2rule_thickness#));
-italcorr h#*slant-u#; adjust_fit(0,0); pickup rule.nib;
-lft x2=hround 1.5u-eps; x1=x3=w-x2; y1-y3=spread;
-y2=.5[y1,y3]; top y1=h;
-x2=x9=x7; x1=x8=x6; y7=y6; y8=y9;
-y7-y9=spread'; top y3-bot y6=spread';
-draw z1{-u,-spread}..{left}z2; % diagonals
-draw z3{-u, spread}..{left}z2;
-draw z6--z7; draw z8--z9; % equal sign
-z.c=.5[z7,z8]; x.t=2/3[x.c, x3]; y.t=2/3[y6,y3];
-char_negate(c,t,b);
-penlabels(1,2,3,6,7,8,9); endchar;
-
-cmchar "Follows or slanted not (double) equals sign";
-compute_spread(.45x_height#,.55x_height#);
-spread#':=spread#; spread':=spread;
-compute_spread(5/4x_height#,3/2x_height#);
-beginchar(oct"027",14u#,v_center(2spread#'+spread#+2rule_thickness#));
-italcorr h#*slant-u#; adjust_fit(0,0); pickup rule.nib;
-rt x2=hround(w-1.5u)+eps; x1=x3=w-x2; y1-y3=spread;
-x2=x7=x9; x1=x6=x8; y6=y7; y8=y9;
-y2=.5[y1,y3]; top y3-bot y6=spread'; top y1=h;
-y7-y9=spread';
-draw z1{u,-spread}..{right}z2; % diagonals
-draw z3{u,spread}..{right}z2;
-draw z6--z7; draw z8--z9;
-z.c=.5[z7,z8]; x.t=2/3[x.c, w-x3]; y.t=2/3[y6,y3];
-char_negate(c,t,b);
-penlabels(1,2,3,6,7,8,9); endchar;
-
-cmchar "Precedes with not approximate equality sign";
-compute_spread(.45x_height#,.55x_height#);
-spread#':=spread#; spread':=spread; % the spread of `$=$'
-compute_spread(.54 x_height#,.66 x_height#);
-spread#'':=spread#; spread'':=spread; % the spread of `$=$'
-compute_spread(1.111 x_height#,1.333 x_height#);
-beginchar(oct"030",14u#,v_center(2spread#''+spread#+2rule_thickness#));
-adjust_fit(0,0);
-% now for precedes sign, using z9 (top), z10 (vertex), & z11 (bot)
-pickup rule.nib;
-lft x10= hround 1.5u-eps; x9=x11=w-x10;
-y9-y11=spread; y10=.5[y9,y11]; top y9=h;
-draw z9{-u,-spread}...{left}z10;
-draw z11{-u,spread}...{left}z10;
-pickup pencircle xscaled .7rule_thickness yscaled 1.4rule_thickness;
-if vair#>.8curve#: pickup rule.nib; autorounded; fi % monoline
-lft x1=hround u; x2=4u; x3=w-x2; x4=w-x1;
-top y3=top y1=bot y11-spread''; top y2=top y4=bot y1+spread';
-z1-z5=z2-z6=z3-z7=z4-z8=(0,spread'');
-draw z1{up}...z2{right}..{right}z3...{up}z4; % upper stroke
-draw z5{up}...z6{right}..{right}z7...{up}z8; % lower stroke
-z.c=.5[z2,z7]; x.t=3/8[x.c,x4]; y.t=1/3[y2,y11];
-char_negate(c,t,b);
-labels(1,2,3,4,5,6,7,8,9,10,11); endchar;
-
-
-cmchar "Follows with not approximate equality sign";
-compute_spread(.45x_height#,.55x_height#);
-spread#':=spread#; spread':=spread; % the spread of `$=$'
-compute_spread(.54 x_height#,.66 x_height#);
-spread#'':=spread#; spread'':=spread; % the spread of `$=$'
-compute_spread(1.111 x_height#,1.333 x_height#);
-beginchar(oct"031",14u#,v_center(2spread#''+spread#+2rule_thickness#));
-adjust_fit(0,0);
-% now for follow sign, using z9 (top), z10 (vertex), & z11 (bot)
-pickup rule.nib;
-lft x9 = hround 1.5u-eps; x10=w-x9; x11=x9;
-y9-y11=spread; y10=.5[y9,y11]; top y9=h;
-draw z9{u,-spread}...{right}z10;
-draw z11{u,spread}...{right}z10;
-pickup pencircle xscaled .7rule_thickness yscaled 1.4rule_thickness;
-if vair#>.8curve#: pickup rule.nib; autorounded; fi % monoline
-lft x1=hround u; x2=4u; x3=w-x2; x4=w-x1;
-top y3=top y1=bot y11-spread''; top y2=top y4=bot y1+spread';
-z1-z5=z2-z6=z3-z7=z4-z8=(0,spread'');
-draw z1{up}...z2{right}..{right}z3...{up}z4; % upper stroke
-draw z5{up}...z6{right}..{right}z7...{up}z8; % lower stroke
-z.c=.5[z2,z7]; x.t=3/8[x.c,x4]; y.t=1/3[y2,y11];
-char_negate(c,t,b);
-labels(1,2,3,4,5,6,7,8,9,10,11); endchar;
-
-
-cmchar "Less than or not approximately equal to sign";
-compute_spread(.45x_height#,.55x_height#);
-spread#':=spread#; spread':=spread;
-compute_spread(.54 x_height#,.66 x_height#);
-spread#'':=spread#; spread'':=spread; % the spread of `$=$'
-compute_spread(1.111 x_height#,1.333 x_height#);
-beginchar(oct"032",14u#,v_center(2spread#''+spread#+2rule_thickness#));
-adjust_fit(0,0); pickup rule.nib; autorounded;
-lft x2=hround 1.5u-eps; x1=x3=w-x2;
-y1-y3=spread; y2=.5[y1,y3]; top y1=h;
-draw z1--z2--z3;
-pickup pencircle xscaled .7rule_thickness yscaled
-1.4rule_thickness;
-if vair#>.8curve#: pickup rule.nib; autorounded; fi
-lft x11=hround u; x12=4u; x13=w-x12; x14=w-x11;
-top y13=top y11=bot y3-spread''; top y12=top y14=bot y11+spread';
-path p; p=z11{up}...z12{right}..{right}z13...{up}z14;
-draw p; draw p shifted (0,-spread'');
-x.c=w/2; y.c=.5[y12, y13-spread'']; x.t=3/8[x.c,x14]; y.t=2/3[y12,y3];
-char_negate(c,t,b);
-penlabels(1,2,3,4,11,12,13,14); endchar;
-
-cmchar "Greater than or not approximately equal to sign";
-compute_spread(.45x_height#,.55x_height#);
-spread#':=spread#; spread':=spread;
-compute_spread(.54 x_height#,.66 x_height#);
-spread#'':=spread#; spread'':=spread; % the spread of `$=$'
-compute_spread(1.111 x_height#,1.333 x_height#);
-beginchar(oct"033",14u#,v_center(2spread#''+spread#+2rule_thickness#));
-adjust_fit(0,0); pickup rule.nib; autorounded;
-lft x1=hround 1.5u-eps; x1=x3; x2=w-x1;
-y1-y3=spread; y2=.5[y1,y3]; top y1=h;
-draw z1--z2--z3;
-pickup pencircle xscaled .7rule_thickness yscaled
-1.4rule_thickness;
-if vair#>.8curve#: pickup rule.nib; autorounded; fi
-lft x11=hround u; x12=4u; x13=w-x12; x14=w-x11;
-bot y11=bot y13; top y12=top y14;
-top y12-bot y11=spread';
-bot y3- spread''=top y11;
-path p; p=z11{up}...z12{right}..{right}z13...{up}z14;
-draw p; draw p shifted (0,-spread'');
-x.c=w/2; y.c=.5[y12,y13-spread'']; x.t=3/8[x.c,x14]; y.t=2/3[y12,y3];
-char_negate(c,t,b);
-penlabels(1,2,3,4,11,12,13,14); endchar;
-
-cmchar "Thick not similar to sign";
-compute_spread(.45x_height#,.55x_height#);
-beginchar(oct"034",14u#,v_center(spread#+rule_thickness#));
-adjust_fit(0,0); pickup pencircle xscaled .8rule_thickness
-yscaled 1.87rule_thickness; if vair#>.8curve#: pickup
-rule.nib; autorounded; fi % monoline
-lft x1=hround u; x2=4u; x3=w-x2; x4=w-x1;
-bot y1=bot y3=-d; top y2=top y4=h;
-draw z1{up}...z2{right}..{right}z3...{up}z4; % stroke
-char_center(100); x101=w-4u; y101=y1+5u;
-char_negate(100,101,102);
-labels(1,2,3,4,99,100); endchar;
-
-
-cmchar "Not approximately equal to sign";
-compute_spread(.45x_height#,.55x_height#);
-beginchar(oct"035",14u#,v_center(3spread#+2rule_thickness#+8u#));
-adjust_fit(0,0);
-pickup pencircle xscaled .7rule_thickness yscaled
-1.4rule_thickness;
-if vair#>.8curve#: pickup rule.nib; autorounded; fi %
-lft x1=hround u; x2=4u; x3=w-x2; x4=w-x1;
-y1=y3; top y2=top y4=h-4u; top y2-bot y1=spread;
-draw z1{up}...z2{right}..{right}z3...{up}z4; % stroke
-pickup rule.nib;
-lft x5=lft x7=hround u-eps; x6=x8=w-x5;
-y5=y6=y1-spread; y7=y8=y5-spread;
-draw z5--z6; draw z7--z8; % double equal sign
-char_center(100); x101=w-3u; y101=y1+4u;
-char_negate(100,101,102);
-labels(1,2,3,4,5,6,7,8,99,100); endchar;
-
-cmchar "45 degree angle line";
-beginchar(oct"036",16u#,asc_height#,asc_depth#);
-adjust_fit(0,0); pickup rule.nib;
-bot y1 =-d-eps; .5[y1,y2]=math_axis;
-lft x1 = 0+eps =x0; % rt x2=;
-z0-z1=(z2-z1) rotated 45;
-draw z1--z2;
-labels(0,1,2); endchar;
-
-cmchar "135 degree angle line";
-beginchar(oct"037",16u#,body_height#,asc_depth#);
-adjust_fit(0,0); pickup rule.nib;
-bot y1 =-d-eps; .5[y1,y2]=math_axis;
-lft x2 = 0+eps= x0; % rt x2=;
-z0-z2=(z1-z2) rotated -45;
-draw z1--z2;
-labels(0,1,2); endchar;
-
-cmchar "Negated subset or equal to sign";
-compute_spread(.45x_height#,.55x_height#);
-spread#':=spread#; spread':=spread; % the spread of `$=$'
-compute_spread(5/4x_height#,3/2x_height#);
-beginchar(oct"040",14u#,v_center(spread#'+spread#+rule_thickness#));
-adjust_fit(0,0); pickup rule.nib; autorounded;
-lft x2=hround 1.5u-eps; x1=x3=w-x2;
-y1-y3=spread; y2=.5[y1,y3]; top y1=h;
-x4=x5=.5w; y4=y1; y5=y3;
-draw z1---z4...z2{down}...z5---z3; % arc and bars
-x8=x1; lft x9=x2; y8=y9; y3-y9=spread'; draw z8--z9; % lower bar
-x100=w/2; y100=.5[y3,y8]; x101=x3-2u; y101=y3+2u;
-char_negate(100,101,102);
-labels(1,2,3,4,5,8,9); endchar;
-
-cmchar "Negated superset or equal to sign";
-compute_spread(.45x_height#,.55x_height#);
-spread#':=spread#; spread':=spread; % the spread of `$=$'
-compute_spread(5/4x_height#,3/2x_height#);
-beginchar(oct"041",14u#,v_center(spread#'+spread#+rule_thickness#));
-adjust_fit(0,0); pickup rule.nib; autorounded;
-lft x1=hround 1.5u-eps; x2=w-x1; x3=x1;
-y1-y3=spread; y2=.5[y1,y3]; top y1=h;
-x4=x5=.5w; y4=y1; y5=y3;
-draw z1---z4...z2{down}...z5---z3; % arc and bars
-x8=x1; rt x9=x2; y8=y9; y3-y9=spread'; draw z8--z9; % lower bar
-x100=x3+2.5u; y100=.5[y8,y3]; x101=x100+2.5u; y101=y3+2u;
-y101-y100=y100-y102; x101-x100=x100-x102; draw z101--z102;
-labels(1,2,3,4,5,8,9); endchar;
-
-cmchar "Negated subset or (double) equal to sign";
-compute_spread(.45x_height#,.55x_height#);
-spread#':=spread#; spread':=spread; % the spread of `$=$'
-compute_spread(5/4x_height#,3/2x_height#);
-beginchar(oct"042",14u#,v_center(2spread#'+spread#+2rule_thickness#));
-adjust_fit(0,0); pickup rule.nib; autorounded; lft x2=hround
-1.5u-eps; x1=x3=w-x2; y1-y3=spread; y2=.5[y1,y3]; top y1=h;
-x4=x5=.5w; y4=y1; y5=y3; draw z1---z4...z2{down}...z5---z3;
-% arc and bars
-x8=x1; x9=x2;
-y8=y9; y3-y9=spread'; draw z8--z9; % lower bar
-x9'=x9; x8'=x8; y9'=y8'; y9-y9'=spread'; draw z8'--z9';
-char_center(c); x.t=w-2.5u; y.t=h+u; char_negate(c,t,b);
-penlabels(1,2,3,4,5,8,9,8',9'); endchar;
-
-cmchar "Negated superset or (double) equal to sign";
-compute_spread(.45x_height#,.55x_height#);
-spread#':=spread#; spread':=spread; % the spread of `$=$'
-compute_spread(5/4x_height#,3/2x_height#);
-beginchar(oct"043",14u#,v_center(2spread#'+spread#+2rule_thickness#));
-adjust_fit(0,0); pickup rule.nib; autorounded; lft x1=hround
-1.5u-eps; x2=w-x1; x3=x1; y1-y3=spread; y2=.5[y1,y3]; top
-y1=h; x4=x5=.5w; y4=y1; y5=y3; draw
-z1---z4...z2{down}...z5---z3; % arc and bars
-x8=x1;
-x9=x2;
-y8=y9; y3-y9=spread'; draw z8--z9; % lower bar
-x9'=x9; x8'=x8; y9'=y8'; y9-y9'=spread'; draw z8'--z9';
-char_center(c); x.t=w-2.5u; y.t=h+u; char_negate(c,t,b);
-labels(1,2,3,4,5,8,9); endchar;
-
-cmchar "Subset or not (double) equal to sign";
-compute_spread(.45x_height#,.55x_height#);
-spread#':=spread#; spread':=spread; % the spread of `$=$'
-compute_spread(5/4x_height#,3/2x_height#);
-beginchar(oct"044",14u#,v_center(2.33spread#'+spread#+2rule_thickness#));
-adjust_fit(0,0); pickup rule.nib; autorounded; lft x2=hround
-1.5u-eps; x1=x3=w-x2; y1-y3=spread; y2=.5[y1,y3]; top y1=h;
-x4=x5=.5w; y4=y1; y5=y3; draw z1---z4...z2{down}...z5---z3;
-% arc and bars
-x8=x1; x9=x2;
-y8=y9; y3-y9=1.33spread'; draw z8--z9; % lower bar
-x9'=x9; x8'=x8; y9'=y8'; y9-y9'=spread'; draw z8'--z9';
-x.c=w/2; y.c=.5[y9,y9']; x.t=1/2[x.c,w]; y.t=.5[y8,y3];
-char_negate(c,t,b);
-penlabels(1,2,3,4,5,8,9,8',9'); endchar;
-
-cmchar "Superset or not (double) equal to sign";
-compute_spread(.45x_height#,.55x_height#);
-spread#':=spread#; spread':=spread; % the spread of `$=$'
-compute_spread(5/4x_height#,3/2x_height#);
-beginchar(oct"045",14u#,v_center(2.33spread#'+spread#+2rule_thickness#));
-adjust_fit(0,0); pickup rule.nib; autorounded; lft x1=hround
-1.5u-eps; x2=w-x1; x3=x1; y1-y3=spread; y2=.5[y1,y3]; top
-y1=h; x4=x5=.5w; y4=y1; y5=y3; draw
-z1---z4...z2{down}...z5---z3; % arc and bars
-x8=x1;
-x9=x2;
-y8=y9; y3-y9=1.33spread'; draw z8--z9; % lower bar
-x9'=x9; x8'=x8; y9'=y8'; y9-y9'=spread'; draw z8'--z9';
-x.c=w/2; y.c=.5[y9,y9']; x.t=1/2[x.c,w]; y.t=.5[y8,y3];
-char_negate(c,t,b);
-labels(1,2,3,4,5,8,9); endchar;
-
-cmchar "Another not subset or (double) equal to sign";
-compute_spread(.45x_height#,.55x_height#);
-spread#':=spread#; spread':=spread; % the spread of `$=$'
-compute_spread(5/4x_height#,3/2x_height#);
-beginchar(oct"046",14u#,v_center(2spread#'+spread#+2rule_thickness#));
-adjust_fit(0,0); pickup rule.nib; autorounded; lft x2=hround
-1.5u-eps; x1=x3=w-x2; y1-y3=spread; y2=.5[y1,y3]; top y1=h;
-x4=x5=.5w; y4=y1; y5=y3; draw z1---z4...z2{down}...z5---z3;
-% arc and bars
-x8=x1; x9=x2;
-y8=y9; y3-y9=spread'; draw z8--z9; % lower bar
-x9'=x9; x8'=x8; y9'=y8'; y9-y9'=spread'; draw z8'--z9';
-x.t=w-2.5u; y.t=y3+2u; x.b=.5[x2,x5]; y.b=y9'-2u; z.c=.5[z.b,z.t];
-draw z.b--z.t; labels(c,b,t);
-penlabels(1,2,3,4,5,8,9,8',9'); endchar;
-
-cmchar "Another superset or (double) equal to sign";
-compute_spread(.45x_height#,.55x_height#);
-spread#':=spread#; spread':=spread; % the spread of `$=$'
-compute_spread(5/4x_height#,3/2x_height#);
-beginchar(oct"047",14u#,v_center(2spread#'+spread#+2rule_thickness#));
-adjust_fit(0,0); pickup rule.nib; autorounded; lft x1=hround
-1.5u-eps; x2=w-x1; x3=x1; y1-y3=spread; y2=.5[y1,y3]; top
-y1=h; x4=x5=.5w; y4=y1; y5=y3; draw
-z1---z4...z2{down}...z5---z3; % arc and bars
-x8=x1;
-x9=x2;
-y8=y9; y3-y9=spread'; draw z8--z9; % lower bar
-x9'=x9; x8'=x8; y9'=y8'; y9-y9'=spread'; draw z8'--z9';
-x.t=x5; y.t=y3+2u; x.b=2.5u; y.b=y9'-2u; z.c=.5[z.b,z.t];
-draw z.b--z.t; labels(c,b,t);
-labels(1,2,3,4,5,8,9); endchar;
-
-cmchar "Subset or not equal to sign";
-compute_spread(.45x_height#,.55x_height#);
-spread#':=spread#; spread':=spread; % the spread of `$=$'
-compute_spread(5/4x_height#,3/2x_height#);
-beginchar(oct"050",14u#,v_center(spread#'+spread#+rule_thickness#));
-adjust_fit(0,0); pickup rule.nib; autorounded;
-lft x2=hround 1.5u-eps; x1=x3=w-x2;
-y1-y3=spread; y2=.5[y1,y3]; top y1=h;
-x4=x5=.5w; y4=y1; y5=y3;
-draw z1---z4...z2{down}...z5---z3; % arc and bars
-x8=x1; lft x9=x2; y8=y9; y3-y9=spread'; draw z8--z9; % lower bar
-z100=.5[z8,z9]; y101=.5[y8,y3];x101-x100=y101-y100;
-char_negate(100,101,102);
-labels(1,2,3,4,5,8,9); endchar;
-
-cmchar "Superset or not equal to sign";
-compute_spread(.45x_height#,.55x_height#);
-spread#':=spread#; spread':=spread; % the spread of `$=$'
-compute_spread(5/4x_height#,3/2x_height#);
-beginchar(oct"051",14u#,v_center(spread#'+spread#+rule_thickness#));
-adjust_fit(0,0); pickup rule.nib; autorounded;
-lft x1=hround 1.5u-eps; x2=w-x1; x3=x1;
-y1-y3=spread; y2=.5[y1,y3]; top y1=h;
-x4=x5=.5w; y4=y1; y5=y3;
-draw z1---z4...z2{down}...z5---z3; % arc and bars
-x8=x1; rt x9=x2; y8=y9; y3-y9=spread'; draw z8--z9; % lower bar
-z100=.5[z8,z9]; y101=.5[y8,y3];x101-x100=y101-y100;
-char_negate(100,101,102);
-labels(1,2,3,4,5,8,9); endchar;
-
-cmchar "Not subset or equal to sign";
-compute_spread(.45x_height#,.55x_height#);
-spread#':=spread#; spread':=spread; % the spread of `$=$'
-compute_spread(5/4x_height#,3/2x_height#);
-beginchar(oct"052",14u#,v_center(spread#'+spread#+rule_thickness#+6u#));
-adjust_fit(0,0); pickup rule.nib; autorounded;
-lft x2=hround 1.5u-eps; x1=x3=w-x2;
-y1-y3=spread; y2=.5[y1,y3]; top y1=h-3u;
-x4=x5=.5w; y4=y1; y5=y3;
-draw z1---z4...z2{down}...z5---z3; % arc and bars
-x8=x1; lft x9=x2; y8=y9; y3-y9=spread'; draw z8--z9; % lower bar
-char_center(100); y101=y1+3u; x101=w-3u;
-char_negate(100,101,102);
-labels(1,2,3,4,5,8,9); endchar;
-
-cmchar "Not superset or equal to sign";
-compute_spread(.45x_height#,.55x_height#);
-spread#':=spread#; spread':=spread; % the spread of `$=$'
-compute_spread(5/4x_height#,3/2x_height#);
-beginchar(oct"053",14u#,v_center(spread#'+spread#+rule_thickness#+6u#));
-adjust_fit(0,0); pickup rule.nib; autorounded;
-lft x1=hround 1.5u-eps; x2=w-x1; x3=x1;
-y1-y3=spread; y2=.5[y1,y3]; top y1=h-3u;
-x4=x5=.5w; y4=y1; y5=y3;
-draw z1---z4...z2{down}...z5---z3; % arc and bars
-x8=x1; rt x9=x2; y8=y9; y3-y9=spread'; draw z8--z9; % lower bar
-char_center(100); y101=y1+3u; x101=w-3u;
-char_negate(100,101,102);
-labels(1,2,3,4,5,8,9); endchar;
-
-cmchar "Negated double vertical line (norm or cardinality)";
-beginchar(oct"054",9u#,body_height#,paren_depth#);
-adjust_fit(0,0); pickup rule.nib;
-x1=x2; top y1=h; .5[y1,y2]=math_axis;
-x3=x4=w-x1; y3=y1; y4=y2;
-compute_spread(.45x_height#,.55x_height#); x3-x1=spread;
-draw z1--z2; draw z3--z4; % stems
-char_center(c); x.t=w; y.t=2/3h;
-char_negate(c,t,b);
-labels(1,2,3,4); endchar;
-
-cmchar "Negated vertical line";
-beginchar(oct"055",5u#,body_height#,paren_depth#);
-italcorr body_height#*slant+.5rule_thickness#-2u#;
-adjust_fit(0,0); pickup rule.nib;
-x1=x2=good.x .5w; top y1=h+eps; bot y2=-d-eps;
-draw z1--z2; % stem
-x.t=w; x.b=w-x.t; y.t=2/3h; y.b=1/3h;
-draw z.b--z.t;
-labels(1,2,b,t); endchar;
-
-cmchar "Negated cute vertical bar";
-beginchar(oct"056",4u#,6u#+math_axis#,6u#-math_axis#);
-italcorr math_axis#*slant - .5u#;
-adjust_fit(0,0); pickup rule.nib;
-x1=x2=hround(w/2); top y1=x_height; bot y2=-o;
-draw z1--z2;
-char_center(c); x.t=w; y.t=5/8h;
-char_negate(c,t,b);
-labels(1,2); endchar;
-
-cmchar "Negated pair of cute vertical bars";
-beginchar(oct"057",7u#,6u#+math_axis#,6u#-math_axis#);
-italcorr math_axis#*slant - .5u#;
-adjust_fit(0,0); pickup rule.nib;
-lft x1=u; x2=x1; top y1=x_height; bot y2=-o;
-x3=w-x1; x4=x3; y3=y1; y4=y2;
-draw z1--z2; draw z3--z4;
-char_center(c); x.t=w; y.t=5/8h;
-char_negate(c,t,b);
-labels(1,2,3,4); endchar;
-
-cmchar "Negated left turnstile";
-beginchar(oct"060",11u#,asc_height#,0);
-adjust_fit(0,0); pickup rule.nib;
-.5[y1,y2]=y3=y4; x1=x2=x3;
-lft x3=hround u; x4=w-x3; top y1=h; bot y2=0;
-draw z1--z2; % stem
-draw z3--z4; % bar
-top rt z.t=(w-u,h); bot lft z.b=(-u,0); draw z.t--z.b;
-labels(1,2,3,4,b,t); endchar;
-
-cmchar "Negated forces symbol";
-beginchar(oct"061",13u#,asc_height#,0);
-adjust_fit(0,0); pickup rule.nib;
-top y1=h; bot y2=0; y3=y4=good.y .5h; y5=y1; y6=y2;
-lft x5=hround u; x4=w-x5;
-compute_spread(.45x_height#,.55x_height#);
-x1=x5+spread; x1=x2=x3; x6=x5;
-draw z6--z5; draw z2--z1; draw z3--z4;
-top rt z.t=(w-u,h); bot lft z.b=(-u,0); draw z.t--z.b;
-penlabels(1,2,3,4,5,6,b,t); endchar;
-
-cmchar "Negated satisfies symbol";
-beginchar(oct"062",11u#,asc_height#,0);
-adjust_fit(0,0); pickup rule.nib;
-compute_spread(.45x_height#,.55x_height#);
-top y1=h; bot y2=0; y0=good.y .5[y1,y2];
-y3=vround y0+.5spread;
-y5=vround y0- .5spread; y4=y3; y6=y5;
-lft x1=hround u; x4=w-x1;
-x1=x2=x3=x5; x4=x6; x0=x1;
-draw z1--z2; % vertical line
-draw z3--z4; % draw top horizontal piece
-draw z5--z6; % draw bottom horizontal piece
-top rt z.t=(w-u,h); bot lft z.b=(-u,0); draw z.t--z.b;
-penlabels(0,1,2,3,4,5,6,b,t); endchar;
-
-cmchar "Negated forces symbol with extra bar";
-beginchar(oct"063",13u#,asc_height#,0);
-adjust_fit(0,0); pickup rule.nib;
-top y1=h; bot y2=0; y3=y4=good.y .5h; y5=y1; y6=y2;
-lft x5=hround u; x4=w-x5;
-compute_spread(.45x_height#,.55x_height#);
-x1=x5+spread; x1=x2=x3; x6=x5;
-x3'=x3; x4'=x4; y3:=y3+.5spread; y4:=y3;
-y3'=y4'=y3-spread;
-draw z6--z5; draw z2--z1; draw z3--z4;
-draw z3'--z4'; % extra bar
-top rt z.t=(w-u,h); bot lft z.b=(-u,0); draw z.t--z.b;
-penlabels(1,2,3,4,5,6,b,t); endchar;
-
-
-cmchar "Negated rightward isosceles triangle with lower bar";
-compute_spread(.45x_height#,.55x_height#);
-spread#':=spread#; spread':=spread; % the spread of `$=$'
-compute_spread(5/4x_height#,3/2x_height#);
-beginchar(oct"064",14u#,v_center(spread#'+spread#+rule_thickness#+6u#));
-adjust_fit(0,0); pickup rule.nib; lft x2=hround(1.5u);
-x3=x2; x1=hround(w-x2);
-top y2=h-3u; y2-y3=spread; y1=.5[y2,y3];
-x4=x2; x5=x1; y3-y4=spread'; y5=y4;
-draw z1--z2--z3--cycle; draw z4--z5;
-char_center(c); x.t=1/2[x.c,w]; y.t=y2+3u;
-char_negate(c,t,b);
-penlabels(1,2,3,4,5); endchar;
-
-cmchar "Negated leftward isosceles triangle with lower bar";
-compute_spread(.45x_height#,.55x_height#);
-spread#':=spread#; spread':=spread; % the spread of `$=$'
-compute_spread(5/4x_height#,3/2x_height#);
-beginchar(oct"065",14u#,v_center(spread#'+spread#+rule_thickness#+6u#));
-adjust_fit(0,0); pickup rule.nib; rt x2=hround(w-1.5u-eps);
-x3=x2; x1=hround(w-x2);
-top y2=h-3u; y2-y3=spread; y1=.5[y2,y3];
-x4=x2; x5=x1; y3-y4=spread'; y5=y4;
-draw z1--z2--z3--cycle; draw z4--z5;
-char_center(c); x.t=1/2[x.c,w]; y.t=y2+3u;
-char_negate(c,t,b);
-penlabels(1,2,3,4,5); endchar;
-
-cmchar "Negated leftward pointing isosceles triangle";
-compute_spread(.45x_height#,.55x_height#);
-spread#':=spread#; spread':=spread; % the spread of `$=$'
-compute_spread(5/4x_height#,3/2x_height#);
-beginchar(oct"066",14u#,v_center(spread#+rule_thickness#+6u#));
-adjust_fit(0,0); pickup rule.nib; rt x2=hround(w-1.5u-eps);
-x3=x2; x1=hround(w-x2);
-top y2=h-3u; y2-y3=spread; y1=.5[y2,y3];
-draw z1--z2--z3--cycle;
-char_center(c); x.t=1/2[x.c,w]; y.t=y2+3u;
-char_negate(c,t,b);
-penlabels(1,2,3); endchar;
-
-cmchar "Negated rightward pointing isosceles triangle";
-compute_spread(.45x_height#,.55x_height#);
-spread#':=spread#; spread':=spread; % the spread of `$=$'
-compute_spread(5/4x_height#,3/2x_height#);
-beginchar(oct"067",14u#,v_center(spread#+rule_thickness#+6u#));
-adjust_fit(0,0); pickup rule.nib; lft x2=hround(1.5u);
-x3=x2; x1=hround(w-x2);
-top y2=h-3u; y2-y3=spread; y1=.5[y2,y3];
-draw z1--z2--z3--cycle;
-char_center(c); x.t=1/2[x.c,w]; y.t=y2+3u;
-char_negate(c,t,b);
-penlabels(1,2,3); endchar;
-
-cmchar "Negated leftward arrow";
-compute_spread(.45x_height#,.55x_height#);
-beginchar(oct"070",18u#,v_center(spread#+rule_thickness#));
-adjust_fit(0,0); pickup crisp.nib;
-pos1(rule_thickness,90); pos2(rule_thickness,90); pos3(bar,0); pos4(bar,0);
-y0=y1=y2=math_axis; x1+.5rule_thickness=hround(w-u); lft x0=hround u;
-y3-y0=y0-y4=.24asc_height+eps; x3=x4=x0+3u+eps;
-pos5(bar,angle(z4-z0)); z5l=z0; pos6(bar,angle(z3-z0)); z6l=z0;
-z9=.381966[.5[z3,z4],z0];
-numeric t; path p; p=z4r{z9-z4}..z6r;
-t=xpart(p intersectiontimes((0,y2l)--(w,y2l))); x2=xpart point t of p;
-filldraw z0..{z4-z9}z4l--subpath (0,t) of\\(z4r{z9-z4}..z6r)
- --z2l---z1l..z1r---z2r--subpath (t,0) of\\(z3r{z9-z3}..z5r)
- --z3l{z9-z3}..z0 & cycle; % arrowhead and stem
-char_center(100); top y101=top y3; x101=x100+2u;
-char_negate(100,101,102);
-penlabels(0,1,2,3,4,5,6,9); endchar;
-
-cmchar "Negated rightward arrow";
-compute_spread(.45x_height#,.55x_height#);
-beginchar(oct"071",18u#,v_center(spread#+rule_thickness#));
-adjust_fit(0,0); pickup crisp.nib;
-pos1(rule_thickness,90); pos2(rule_thickness,90); pos3(bar,0); pos4(bar,0);
-y0=y1=y2=math_axis; x1-.5rule_thickness=hround u; rt x0=hround(w-u);
-y3-y0=y0-y4=.24asc_height+eps; x3=x4=x0-3u-eps;
-pos5(bar,angle(z4-z0)); z5l=z0; pos6(bar,angle(z3-z0)); z6l=z0;
-z9=.381966[.5[z3,z4],z0];
-numeric t; path p; p=z4l{z9-z4}..z6r;
-t=xpart(p intersectiontimes((0,y2l)--(w,y2l))); x2=xpart point t of p;
-filldraw z0..{z4-z9}z4r--subpath (0,t) of\\(z4l{z9-z4}..z6r)
- --z2l---z1l..z1r---z2r--subpath (t,0) of\\(z3l{z9-z3}..z5r)
- --z3r{z9-z3}..z0 & cycle; % arrowhead and stem
-char_center(100); top y101=top y3; x101=x100+2u;
-char_negate(100,101,102);
-penlabels(0,1,2,3,4,5,6,9); endchar;
-
-cmchar "Negated left-and-right arrow";
-compute_spread(.45x_height#,.55x_height#);
-beginchar(oct"075",18u#,
- v_center(if monospace:.6asc_height#+fi spread#+rule_thickness#));
-adjust_fit(0,0); pickup crisp.nib;
-pos1(rule_thickness,90); pos2(rule_thickness,90); pos3(bar,0); pos4(bar,0);
-y0=y1=y2=math_axis if monospace:+vround.3asc_height fi; lft x0=hround u;
-if monospace: x1+.5rule_thickness=hround(w-u) else: x1=.5w fi;
-y3-y0=y0-y4=.24asc_height+eps; x3=x4=x0+3u+eps;
-pos5(bar,angle(z4-z0)); z5l=z0; pos6(bar,angle(z3-z0)); z6l=z0;
-z9=.381966[.5[z3,z4],z0];
-numeric t; path p; p=z4r{z9-z4}..z6r;
-t=xpart(p intersectiontimes((0,y2l)--(w,y2l))); x2=xpart point t of p;
-filldraw z0..{z4-z9}z4l--subpath (0,t) of\\(z4r{z9-z4}..z6r)
- --z2l---z1l..z1r---z2r--subpath (t,0) of\\(z3r{z9-z3}..z5r)
- --z3l{z9-z3}..z0 & cycle; % left arrowhead and stem
-pos11(rule_thickness,90); pos12(rule_thickness,90); pos13(bar,0); pos14(bar,0);
-y10=y11=y12=math_axis if monospace:-vround.3asc_height fi;
-rt x10=hround(w-u);
-if monospace: x11-.5rule_thickness=hround u else: x11=.5w fi;
-y13-y10=y10-y14=.24asc_height+eps; x13=x14=x10-3u-eps;
-pos15(bar,angle(z14-z10)); z15l=z10; pos16(bar,angle(z13-z10)); z16l=z10;
-z19=.381966[.5[z13,z14],z10];
-numeric t; path p; p=z14l{z19-z14}..z16r;
-t=xpart(p intersectiontimes((0,y12l)--(w,y12l))); x12=xpart point t of p;
-filldraw z10..{z14-z19}z14r--subpath (0,t) of\\(z14l{z19-z14}..z16r)
- --z12l---z11l..z11r---z12r--subpath (t,0) of\\(z13l{z19-z13}..z15r)
- --z13r{z19-z13}..z10 & cycle; % right arrowhead and stem
-char_center(100); top y101=top y3; x101=x100+2u;
-char_negate(100,101,102);
-penlabels(0,1,2,3,4,5,6,9,10,11,12,13,14,15,16,19); endchar;
-
-cmchar "Negated double leftward arrow";
-compute_spread(.45x_height#,.55x_height#);
-beginchar(oct"072",18u#,v_center(spread#+rule_thickness#));
-adjust_fit(0,0); pickup rule.nib;
-lft x7=hround u-eps; x8=x7; x1=x2=w-x7;
-y1=y7; y2=y8; y1-y2=spread; .5[y1,y2]=math_axis;
-draw z1--z7; draw z2--z8; % bars
-pickup crisp.nib; lft x0=hround u-eps; y0=good.y math_axis;
-pos3(rule_thickness,0); pos4(rule_thickness,0);
-y3-y1=y2-y4=.24asc_height+eps; x3=x4=x0+6u+eps;
-pos5(rule_thickness,angle(z4-z0)); z5l=z0;
-pos6(rule_thickness,angle(z3-z0)); z6l=z0;
-z9=.381966[.5[z3,z4],z0];
-erase filldraw z0..{z3-z9}z3--(0,y3)
- --(0,y4)--z4{z9-z4}..z0 & cycle; % erase excess
-numeric t; path p; p=z4r{z9-z4}..z6r;
-t=xpart(p intersectiontimes((0,y0)--(w,y0)));
-filldraw z0..{z4-z9}z4l--subpath (0,t) of\\(z4r{z9-z4}..z6r)
- --subpath (t,0) of\\(z3r{z9-z3}..z5r)--z3l{z9-z3}..z0 & cycle; % arrowhead
-pickup rule.nib; x100=.5[x9,x1]; y100=y9; x101=x100+2u; top y101=top y3;
-y101-y100=y100-y102; x101-x100=x100-x102; draw z101--z102;
-penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
-
-cmchar "Negated double rightward arrow";
-compute_spread(.45x_height#,.55x_height#);
-beginchar(oct"073",18u#,v_center(spread#+rule_thickness#));
-adjust_fit(0,0); pickup rule.nib;
-lft x1=hround u-eps; x2=x1; x7=x8=w-x1;
-y1=y7; y2=y8; y1-y2=spread; .5[y1,y2]=math_axis;
-draw z1--z7; draw z2--z8; % bars
-pickup crisp.nib; rt x0=hround(w-u)+eps; y0=good.y math_axis;
-pos3(rule_thickness,0); pos4(rule_thickness,0);
-y3-y1=y2-y4=.24asc_height+eps; x3=x4=x0-6u-eps;
-pos5(rule_thickness,angle(z4-z0)); z5l=z0;
-pos6(rule_thickness,angle(z3-z0)); z6l=z0;
-z9=.381966[.5[z3,z4],z0];
-erase filldraw z0..{z3-z9}z3--(w,y3)
- --(w,y4)--z4{z9-z4}..z0 & cycle; % erase excess
-numeric t; path p; p=z4l{z9-z4}..z6r;
-t=xpart(p intersectiontimes((0,y0)--(w,y0)));
-filldraw z0..{z4-z9}z4r--subpath (0,t) of\\(z4l{z9-z4}..z6r)
- --subpath (t,0) of\\(z3l{z9-z3}..z5r)--z3r{z9-z3}..z0 & cycle; % arrowhead
-pickup rule.nib; x100=.5[x9,x1]; y100=y9; x101=x100+2u; top y101=top y3;
-y101-y100=y100-y102; x101-x100=x100-x102; draw z101--z102;
-penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
-
-cmchar "Negated double left-and-right arrow";
-compute_spread(.45x_height#,.55x_height#);
-beginchar(oct"074",18u#,v_center(spread#+rule_thickness#));
-adjust_fit(if monospace: -u#,-u# else: 0,0 fi); pickup rule.nib;
-lft x7=hround u-eps; x8=x7; x1=x2=w-x7;
-y1=y7; y2=y8; y1-y2=spread; .5[y1,y2]=math_axis;
-draw z1--z7; draw z2--z8; % bars
-pickup crisp.nib; lft x0=hround u-o; y0=good.y math_axis;
-pos3(rule_thickness,0); pos4(rule_thickness,0);
-y3-y1=y2-y4=.24asc_height+eps; x3=x4=x0+5u+eps;
-pos5(rule_thickness,angle(z4-z0)); z5l=z0;
-pos6(rule_thickness,angle(z3-z0)); z6l=z0;
-z9=.381966[.5[z3,z4],z0];
-erase filldraw z0..{z3-z9}z3--(0,y3)
- --(0,y4)--z4{z9-z4}..z0 & cycle; % erase excess at left
-numeric t; path p; p=z4r{z9-z4}..z6r;
-t=xpart(p intersectiontimes((0,y0)--(w,y0)));
-filldraw z0..{z4-z9}z4l--subpath (0,t) of\\(z4r{z9-z4}..z6r)
- --subpath (t,0) of\\(z3r{z9-z3}..z5r)
- --z3l{z9-z3}..z0 & cycle; % left arrowhead
-rt x10=hround(w-u)+o; y10=good.y math_axis;
-pos13(rule_thickness,0); pos14(rule_thickness,0);
-y13=y3; y14=y4; x13=x14=x10-5u-eps;
-pos15(rule_thickness,angle(z14-z10)); z15l=z10;
-pos16(rule_thickness,angle(z13-z10)); z16l=z10;
-z19=.381966[.5[z13,z14],z10];
-erase filldraw z10..{z13-z19}z13--(w,y13)
- --(w,y14)--z14{z19-z14}..z10 & cycle; % erase excess at right
-numeric t; path p; p=z14l{z19-z14}..z16r;
-t=xpart(p intersectiontimes((0,y10)--(w,y10)));
-filldraw z10..{z14-z19}z14r--subpath (0,t) of\\(z14l{z19-z14}..z16r)
- --subpath (t,0) of\\(z13l{z19-z13}..z15r)
- --z13r{z19-z13}..z10 & cycle; % right arrowhead
-char_center(100); top y101=top y13; x101=x100+1.5u; char_negate(100,101,102);
-penlabels(0,1,2,3,4,5,6,7,8,9,10,13,14,15,16,19); endchar;
-
-cmchar "Times-division symbol";
-beginarithchar(oct"076");
-pickup rule.nib;
-x11=good.x(1/sqrt2)[.5w,rt u]; y11=good.y(1/sqrt2)[math_axis,bot h];
-x12=x13=w-x11; x14=x11; .5[y11,y12]=.5[y13,y14]=math_axis; y12=y14;
-draw z11--z12; draw z13--z14; % diagonals
-x3-.5dot_size=hround(.5w-.5dot_size); %center_on(x3);
-y3+.5dot_size=vround(math_axis+math_spread[.5x_height,.6x_height]+.5dot_size);
-lft x1=hround u-eps; x2=w-x1; y1=y2=math_axis;
-draw z1--z2; % bar
-pos3(dot_size,0); pos4(dot_size,90); z3=z4;
-pos5(dot_size,0); pos6(dot_size,90); z5=z6; x5=x3; .5[y3,y5]=math_axis;
-dot(3,4); dot(5,6); % dots
-penlabels(1,2,3,4,5,6,11,12,13,14); endchar;
-
-cmchar "Null set symbol";
-beginarithchar(oct"077");
-pickup rule.nib;
-z0=(w/2,h/2); % center of circle
-rt x1-lft x0=hround(h/2 + o); y1=y0;
-numeric theta; theta=45;
-for i=2 upto 8: z[i]-z0=(z1-z0) rotated ((i-1)*theta); endfor
-draw z8...z1 for i=2 upto 8: ...z[i] endfor;
-lft x9=u; x10=w-x9; bot y9=bot y7; top y10=top y3; draw z9--z10;
-labels(range 0 thru 10); endchar;
-
-cmchar "Negated existential quantifier";
-beginchar(oct"100",10u#,asc_height#,0);
-italcorr asc_height#*slant;
-adjust_fit(0,0); pickup rule.nib;
-lft x1=hround u-eps; x2=x3=x5=w-x1; x4=x6-.25u=x1;
-top y1=h; bot y4=0; y2=y1; y5=y6=.5[y1,y3]; y3=y4;
-draw z1--z2--z3--z4; % upper bar, stem, lower bar
-draw z5--z6; % middle bar
-char_center(100); x101=w-3u; y101=y1+3u;
-char_negate(100,101,102);
-labels(1,2,3,4,5,6); endchar;
-
-charlist oct"133": oct"134";
-charlist oct"135": oct"136";
-
-cmchar"Wider than widest circumflex (hat) accent";
-beginchar(oct"133",34u#,1.1body_height#,0);
-adjust_fit(0,0);
-pickup crisp.nib;
-pos2(.7[vair,curve],90); top y2r=h+o; x2=.5w;
-x1=w-x3=good.x-eps; y1=y3=.45[x_height,y2];
-pos1(1.2hair,angle(z2-z1)+90); pos3(1.2hair,angle(z3-z2)+90);
-filldraw stroke z1e--z2e--z3e;
-penlabels(1,2,3);
-%big_hat;
-endchar;
-
-cmchar"Very Widest circumflex (hat) accent";
-beginchar(oct"134",42u#,1.1body_height#,0);
-adjust_fit(0,0);
-pickup crisp.nib;
-pos2(.7[vair,curve],90); top y2r=h+o; x2=.5w;
-x1=w-x3=good.x-eps; y1=y3=.45[x_height,y2];
-pos1(1.2hair,angle(z2-z1)+90); pos3(1.2hair,angle(z3-z2)+90);
-filldraw stroke z1e--z2e--z3e;
-penlabels(1,2,3);
-%big_hat;
-endchar;
-
-cmchar"Even wider tilde (squiggle) accent";
-beginchar(oct"135",34u#,1.1body_height#,0);
-%big_tilde;
-adjust_fit(0,0); pickup crisp.nib;
-numeric theta; theta=angle(1/6(w-vair),1/4(h-x_height));
-numeric mid_width; mid_width=.4[vair,stem];
-pos1(1.5vair,theta+80); pos2(2vair,theta+80);
-pos3(2vair,theta+80); pos4(1.5vair,theta+80);
-z2-z1=z4-z3 = (mid_width-crisp)*dir theta;
-lft x1r=w-rt x4l=0; top y4r=h;
-bot y1l=vround(bot y1l+min(.6[x_height,h],y3l-.25vair)-top y1r);
-pair delta; ypart delta=3(y3l-y1l); delta=whatever*dir theta;
-filldraw z1l..controls(z1l+delta)and(z3l-delta)..z3l..z4l
---z4r..controls(z4r-delta)and(z2r+delta)..z2r..z1r--cycle;
-penlabels(1,2,3,4);
-endchar;
-
-cmchar"Very widest tilde (squiggle) accent";
-beginchar(oct"136",42u#,1.2body_height#,0);
-%big_tilde;
-adjust_fit(0,0); pickup crisp.nib;
-numeric theta; theta=angle(1/6(w-vair),1/4(h-x_height));
-numeric mid_width; mid_width=.4[vair,stem];
-pos1(1.5vair,theta+80); pos2(2vair,theta+80);
-pos3(2vair,theta+80); pos4(1.5vair,theta+80);
-z2-z1=z4-z3 = (mid_width-crisp)*dir theta;
-lft x1r=w-rt x4l=0; top y4r=h;
-bot y1l=vround(bot y1l+min(.6[x_height,h],y3l-.25vair)-top y1r);
-pair delta; ypart delta=3(y3l-y1l); delta=whatever*dir theta;
-filldraw z1l..controls(z1l+delta)and(z3l-delta)..z3l..z4l
---z4r..controls(z4r-delta)and(z2r+delta)..z2r..z1r--cycle;
-penlabels(1,2,3,4);
-endchar;
-
-cmchar "Reversed turned F";
-beginchar(oct"140",10u#,asc_height#,0);
-italcorr asc_height#*slant;
-adjust_fit(0,0); pickup rule.nib;
-lft x4=hround u-eps; x2=x3=x5=w-x4; x6=x4+.27w;
-top y2=h; bot y4=0; y5=y6=.5[y2,y3]; y3=y4;
-draw z2--z3--z4; % upper bar, stem, lower bar
-draw z5--z6; % middle bar
-labels(2,3,4,5,6); endchar;
-
-cmchar "The Reversed inverted letter G";
-beginchar(oct"141",12u#,cap_height#,0);
- italcorr cap_height#*slant-.5u#; adjust_fit(0,0);
- pickup rule.nib;
- rt x1=hround(w-1.35u); x2=x4=.5w+u;
- lft x3=hround max(u,2u-.5cap_curve); rt x5=hround(w-1.2u);
- top y1=vround .93h+o; top y2=h+o; y3=.5h;
- bot y4=-o; bot y5=vround .07h-o;
- draw z1...{left}z2...{down}z3{down}...{right}z4...{up}z5;
- z7=z5; x0=x7; top y0=1+vround .35[bar_height,x_height];
- draw z0--z7; % stem
- z0=z9; y8=y9; lft x8=hround x4;
- draw z8--z9; % bar
- math_fit(-.3cap_height#*slant-.5u#,.5ic#);
-picture rvchar;
- rvchar=currentpicture reflectedabout((.5w,0),(.5w,h));
-currentpicture:= rvchar;
-penlabels(0,1,1',2,3,4,5,6,7,8,9); endchar;
-
-cmchar "Upsidedown, uppercase Greek Omega";
-beginchar(oct"146",13u#,cap_height#,0);
-italcorr .75cap_height#*slant-.5u#;
-adjust_fit(0,0);
-pickup tiny.nib; pos1(vair,90); pos2(cap_curve,180);
-pos3(vair,180); pos4(cap_curve,0); pos5(vair,0);
-x1=.5w; top y1r=h+o; lft x2r=hround u; y2=y4=2/3h; x4=w-x2;
-rt x3l=hround(1/3(w+.5u)+.5hair); bot y3=bot y5=0; x5=w-x3;
-filldraw stroke z3e{up}...{up}z2e
- & pulled_super_arc.e(2,1)(.5superpull)
- & pulled_super_arc.e(1,4)(.5superpull)
- & z4e{down}...{down}z5e; % bowl
-numeric arm_thickness; path p; p=z3{up}...{up}z2;
-arm_thickness=Vround(if hefty:slab+2stem_corr else:.75[slab,cap_vstem] fi);
-pickup crisp.nib; pos6(arm_thickness,-90); pos7(fudged.hair,-180);
-bot y6r=0; x6=x3; lft x7r=hround .8u; y7=good.y(y6l+.5beak)+eps;
-(x,y)=p intersectionpoint((0,y6l)--(w,y6l)); x6l:=x;
-arm(6,7,a,.5beak_darkness,-1.2beak_jut); % left arm and beak
-pos8(arm_thickness,-90); pos9(fudged.hair,0);
-y8=y6; y9=y7; x8+x6=x9+x7=w; x8l:=w-x6l;
-arm(8,9,b,.5beak_darkness,1.2beak_jut); % right arm and beak
-%math_fit(0,.5ic#);
-picture v; v:=currentpicture;
-numeric t; t=h-d;
-v:=v reflectedabout((0,0),(w,0));
-currentpicture:=v shifted(0,aspect_ratio*cap_height);
-penlabels(1,2,3,4,5,6,7,8,9); endchar;
-
-cmchar "The letter Edh (Old English rune, like thorn)";
-% adapted from cm partial differential sign, vol E, p 233.
-beginchar(oct"147",10u#,asc_height#,0);
-italcorr .7asc_height#*slant+.5curve#-1.5u#;
-adjust_fit(0,0);
-numeric top_thickness,bot_thickness,side_thickness,pull;
-top_thickness=max(fine.breadth,vround(slab-2vair_corr));
-bot_thickness=max(fine.breadth,vround(slab-vair_corr));
-side_thickness=max(fine.breadth,hround 1/3[curve,cap_curve]);
-pull=min(.25,1.5superpull);
-pickup fine.nib; pos2(top_thickness,90);
-pos3(side_thickness,0); pos4(bot_thickness,-90);
-pos5(side_thickness,-180); pos6(vair,-270);
-lft x5r=w-rt x3r=hround max(.75u,1.5u-.5side_thickness);
-x4=x6+.1u=x2+u=.5w;
-top y2r=h+o; y3=.5[y2,y4]; bot y4r=-o;
-y5=.5[y4,y6]; top y6=vround 5/8h+o;
-path p; p=pulled_super_arc.l(3,4)(pull);
-numeric t; t=xpart(p intersectiontimes((x3r,y5)--(x4,y5)));
-pos7(thin_join,0); z7l=point t of p;
-(x,y6r)=whatever[z7l,z6l]; x6r:=max(x,.5[x5r,x6]);
-x2:=x5; x2l:=x2r:=x2;
-filldraw stroke pulled_super_arc.e(2,3)(pull)
- & {{interim superness:=more_super; pulled_super_arc.e(3,4)(pull)}}
- & {{less_tense; pulled_super_arc.e(4,5)(pull) & pulled_super_arc.e(5,6)(pull)}}
- & z6e{right}...{direction t of p}z7e; % arc and bowl
-%pos1(hair,180); pos0(flare,180); % commenting out the arc and bulb
-%lft x0r=min(lft x2-eps,hround 1.2u);
-%y0=vround min(.85h-.5flare,.8h+.5flare)+o;
-%{{less_tense; bulb(2,1,0)}}; % arc and bulb
-%math_fit(-.3x_height#*slant+.5curve#-u#,ic#-u#);
-pickup pencircle xscaled 1.4rule_thickness yscaled .5rule_thickness;
-x10=x11=x5; x12=x13=w-x10; y10=y13;
-y10-y11=y12-y13=cap_stem; .5[y11,y10]=.5[y6,y2];
-draw z10--z11--z12--z13; % cross piece
-penlabels(2,3,4,5,6,7,10,11,12,,13); endchar;
-
-cmchar "Equal or similar symbol";
-compute_spread(.45x_height#,.55x_height#);
-beginchar(oct"150",14u#,v_center(2spread#+rule_thickness#));
-adjust_fit(0,0);
-pickup pencircle xscaled .7rule_thickness yscaled 1.4rule_thickness;
-if vair#>.8curve#: pickup rule.nib; autorounded; fi % monoline
-lft x1=hround u; x2=4u; x3=w-x2; x4=w-x1;
-bot y1=bot y3=-d; top y2=top y4=y1+spread;
-draw z1{up}...z2{right}..{right}z3...{up}z4; % stroke
-pickup rule.nib;
-lft x5=hround u-eps; x6=w-x5; top y5=top y6=h;
-draw z5--z6;
-labels(1,2,3,4,5,6); endchar;
-
-
-%% parameters for Hebrew letters Beth, Gimel, Dalet
-numeric theta; theta=45;
-cmchar "Hebrew letter Beth";
-beginchar(oct"151", 12u#, asc_height#, 0);
-%currenttransform:=identity rotated -45 shifted (.75h, 0);
-adjust_fit(0,0);
-pickup rule.nib;
-top y0=1.1h; lft x0=u;
-pos1(cap_curve,90); x1=2.5u; y1r=h;
-pos2(cap_curve,90); x2=w-x1; y2r=y1r;
-rt x3=w-u; y2l-y3=y0-y1r;
-x4=x3;
-% now for the base.
-pos12(cap_curve/cosd theta, theta); pos11(cap_curve/cosd theta, theta);
-y11r=y12r=y4; y11l=0;
-x12=u; x11=w-x12;
-filldraw z0{down}..tension.8..z1l{right}..{right}z2l..{down}z3&
-z3{up}..tension.8..z2r{left}..{left}z1r..z0..cycle; % top
-pickup rule.nib; draw z3..z4; % down stroke at right of letter
-filldraw stroke z11e{left}..{left}z12e;
-penlabels(0,1,2,3,4,11,12);
-endchar;
-
-cmchar "Hebrew letter Gimel";
-beginchar(oct"152", 8u#, asc_height#, 0);
-%currenttransform:=identity rotated -45 shifted (.75h, 0);
-adjust_fit(0,0);
-pickup rule.nib;
-top y0=1.1h; lft x0=u;
-pos1(cap_curve,90); x1=2.5u; y1r=h;
-pos2(cap_curve,90); x2=w-x1+.5u; y2r=y1r;
-filldraw z0{down}..tension.8..z1l{right}..{right}z2l..tension.8..{left}z2r
- ..{left}z1r..z0..cycle; % top slab
-z3=z2l;x4=x3+.2stem; y4=-o; x5=x4+.3stem; y5=y3c;
-x3a=x3b=x3c=x3; y3a=.8h; y3b=.5h; y3c=cap_curve;
-y5:=.5y5; % reset y5
-path p, q; p=(z3---z3c..z4); q=(z4{1,1}..z5..{-.005,1}z3); % vertical
-filldraw p&q&cycle;
-% now for the base.
-pos12(cap_curve/cosd theta, theta); pos11(cap_curve/cosd theta, theta);
-pos13(cap_curve/cosd theta, theta); y13=y12; x13=w;
- % z13 is a dummy point for getting intersection
-y11r=y12r; y11l=0;
-x12=u;
-z10=p intersectionpoint (z12r--z13r); z11r=z10;
-filldraw stroke z11e{left}..{left}z12e;
-penlabels(0,1,2,3,3c,4,5,11,12);
-endchar;
-
-cmchar "Hebrew letter Daleth";
-beginchar(oct"153", 12u#, asc_height#, 0);
-%currenttransform:=identity rotated -45 shifted (.75h, 0);
-adjust_fit(0,0);
-pickup rule.nib;
-top y0=1.1h; lft x0=u;
-pos1(cap_curve,90); x1=2.5u; y1r=h;
-pos2(cap_curve,90); x2=w-x1+.5u; y2r=y1r;
-filldraw z0{down}..tension.8..z1l{right}..{right}z2l..tension.8..{left}z2r
- ..{left}z1r..z0..cycle; % top slab
-z3=z2l;x4=x3+.2stem; y4=-o; x5=x4+.3stem; y5=y3c;
-x3a=x3b=x3c=x3; y3a=.8h; y3b=.5h; y3c=cap_curve;
-y5:=.5y5; % reset y5
-path p, q; p=(z3---z3c..z4); q=(z4{1,1}..z5..{-.005,1}z3); % vertical
-filldraw p&q&cycle;
-penlabels(0,1,2,3,3c,4,5);
-endchar;
-
-cmchar "Dotted less than sign";
-compute_spread(5/4x_height#,3/2x_height#);
-beginchar(oct"154",14u#,v_center(spread#+rule_thickness#));
-italcorr h#*slant-u#;
-adjust_fit(0,0); pickup rule.nib;
-lft x2=hround 1.5u-eps; x1=x3=w-x2;
-y1-y3=spread; y2=.5[y1,y3]=math_axis;
-draw z1--z2--z3; % diagonals
-y4=y2; x4=.75[x2, x1]; z5=z4;
-pos4(dot_size,0); pos5(dot_size,90); dot(4,5);
-labels(1,2,3,4,5); endchar;
-
-cmchar "Dotted greater than sign";
-compute_spread(5/4x_height#,3/2x_height#);
-beginchar(oct"155",14u#,v_center(spread#+rule_thickness#));
-italcorr math_axis#*slant-u#;
-adjust_fit(0,0); pickup rule.nib;
-rt x2=hround(w-1.5u)+eps; x1=x3=w-x2;
-y1-y3=spread; y2=.5[y1,y3]=math_axis;
-draw z1--z2--z3; % diagonals
-y4=y2; x4=.75[x2, x1]; z5=z4;
-pos4(dot_size,0); pos5(dot_size,90); dot(4,5);
-labels(1,2,3,4,5); endchar;
-
-cmchar "Times operator with left vertical";
-beginarithchar(oct"156"); pickup rule.nib;
-x1=good.x(1/sqrt2)[.5w,rt u]; y1=good.y(1/sqrt2)[math_axis,bot h];
-x2=x3=w-x1; x4=x1; .5[y1,y2]=.5[y3,y4]=math_axis; y2=y4;
-draw z1--z2; draw z3--z4; % diagonals
-draw z1--z4;
-labels(1,2,3,4); endchar;
-
-cmchar "Times operator with right vertical";
-beginarithchar(oct"157"); pickup rule.nib;
-x1=good.x(1/sqrt2)[.5w,rt u]; y1=good.y(1/sqrt2)[math_axis,bot h];
-x2=x3=w-x1; x4=x1; .5[y1,y2]=.5[y3,y4]=math_axis; y2=y4;
-draw z1--z2; draw z3--z4; % diagonals
-draw z2--z3;
-labels(1,2,3,4); endchar;
-
-cmchar "Cute vertical bar";
-beginchar(oct"160",4u#,6u#+math_axis#,6u#-math_axis#);
-italcorr math_axis#*slant - .5u#;
-adjust_fit(0,0); pickup rule.nib;
-x1=x2=hround(w/2); top y1=x_height; bot y2=-o;
-draw z1--z2;
-labels(1,2); endchar;
-
-cmchar "Two cute vertical bars";
-beginchar(oct"161",7u#,6u#+math_axis#,6u#-math_axis#);
-italcorr math_axis#*slant - .5u#;
-adjust_fit(0,0); pickup rule.nib;
-lft x1=u; x2=x1; top y1=x_height; bot y2=-o;
-x3=w-x1; x4=x3; y3=y1; y4=y2;
-draw z1--z2; draw z3--z4;
-labels(1,2,3,4); endchar;
-
-cmchar "Integer division (reverse quotient) symbol";
-beginarithchar(oct"162"); pickup rule.nib;
-x1=2u; top y1=x_height;%
-x2=x3=w-x1; x4=x1; bot y2=-o;
-draw z1--z2; % diagonal
-labels(1,2,3,4); endchar;
-
-
-cmchar "Thick similarity sign";% taken from symbol.mf
-compute_spread(.45x_height#,.55x_height#);
-beginchar(oct"163",14u#,v_center(spread#+rule_thickness#));
-adjust_fit(0,0);
-pickup pencircle xscaled .8rule_thickness yscaled 1.87rule_thickness;
-if vair#>.8curve#: pickup rule.nib; autorounded; fi % monoline
-lft x1=hround u; x2=4u; x3=w-x2; x4=w-x1;
-bot y1=bot y3=-d; top y2=top y4=h;
-draw z1{up}...z2{right}..{right}z3...{up}z4; % stroke
-labels(1,2,3,4); endchar;
-
-
-cmchar "Approximate equality sign"; % taken fron symbol.mf
-compute_spread(.45x_height#,.55x_height#);
-spread#':=spread#; spread':=spread; % the spread of `$=$'
-compute_spread(.54x_height#,.66x_height#);
-beginchar(oct"164",14u#,v_center(spread#'+spread#+rule_thickness#));
-adjust_fit(0,0);
-pickup pencircle xscaled .8rule_thickness yscaled 1.87rule_thickness;
-if vair#>.8curve#: pickup rule.nib; autorounded; fi % monoline
-lft x1=hround u; x2=4u; x3=w-x2; x4=w-x1;
-y1=y3; top y2=top y4=h; top y2-bot y1=spread';
-draw z1{up}...z2{right}..{right}z3...{up}z4; % upper stroke
-z1-z5=z2-z6=z3-z7=z4-z8=(0,spread);
-draw z5{up}...z6{right}..{right}z7...{up}z8; % lower stroke
-labels(1,2,3,4,5,6,7,8); endchar;
-
-cmchar "Approximate equality plus lower bar sign";
-compute_spread(.45x_height#,.55x_height#);
-spread#':=spread#; spread':=spread; % the spread of `$=$'
-compute_spread(.54x_height#,.66x_height#);
-beginchar(oct"165",14u#,v_center(2spread#'+spread#+rule_thickness#));
-adjust_fit(0,0);
-pickup pencircle xscaled .7rule_thickness yscaled 1.4rule_thickness;
-if vair#>.8curve#: pickup rule.nib; autorounded; fi % monoline
-lft x1=hround u; x2=4u; x3=w-x2; x4=w-x1;
-y1=y3; top y2=top y4=h; top y2-bot y1=spread';
-draw z1{up}...z2{right}..{right}z3...{up}z4; % upper stroke
-z1-z5=z2-z6=z3-z7=z4-z8=(0,spread);
-draw z5{up}...z6{right}..{right}z7...{up}z8; % lower stroke
-y9=y10; x9=x1; x10=x8; y5-y9=spread';
-pickup rule.nib; draw z9--z10;
-labels(1,2,3,4,5,6,7,8,9,10); endchar;
-
-
-cmchar "Follows with approximate equality sign";
-compute_spread(.45x_height#,.55x_height#);
-spread#':=spread#; spread':=spread; % the spread of `$=$'
-compute_spread(.54 x_height#,.66 x_height#);
-spread#'':=spread#; spread'':=spread; % the spread of `$=$'
-compute_spread(1.111 x_height#,1.333 x_height#);
-beginchar(oct"166",14u#,v_center(2spread#''+spread#+2rule_thickness#));
-adjust_fit(0,0);
-% now for follow sign, using z9 (top), z10 (vertex), & z11 (bot)
-pickup rule.nib;
-lft x9 = hround 1.5u-eps; x10=w-x9; x11=x9;
-y9-y11=spread; top y9=h; y10=.5[y11, y9];
-draw z9{u,-spread}...{right}z10;
-draw z11{u,spread}...{right}z10;
-pickup pencircle xscaled .7rule_thickness yscaled 1.4rule_thickness;
-if vair#>.8curve#: pickup rule.nib; autorounded; fi % monoline
-lft x1=hround u; x2=4u; x3=w-x2; x4=w-x1;
-top y1=top y3=bot y11-spread''; top y2=top y4=bot y1+spread';
-z1-z5=z2-z6=z3-z7=z4-z8=(0,spread'');
-draw z1{up}...z2{right}..{right}z3...{up}z4; % upper stroke
-draw z5{up}...z6{right}..{right}z7...{up}z8; % lower stroke
-labels(1,2,3,4,5,6,7,8,9,10,11); endchar;
-
-cmchar "Precedes with approximate equality sign";
-compute_spread(.45x_height#,.55x_height#);
-spread#':=spread#; spread':=spread; % the spread of `$=$'
-compute_spread(.54x_height#,.66x_height#);
-spread#'':=spread#; spread'':=spread; % the spread of `$=$'
-compute_spread(1.111 x_height#,1.333 x_height#);
-beginchar(oct"167",14u#,v_center(spread#+2spread#''+2rule_thickness#));
-adjust_fit(0,0);
-% now for precedes sign, using z9 (top), z10 (vertex), & z11 (bot)
-pickup rule.nib;
-x9=x11=w-x10; lft x10=hround 1.5u-eps;
-y9-y11=spread; top y9=h; y10=.5[y11, y9];
-draw z9{-u,-spread}...{left}z10;
-draw z11{-u,spread}...{left}z10;
-pickup pencircle xscaled .7rule_thickness yscaled 1.4rule_thickness;
-if vair#>.8curve#: pickup rule.nib; autorounded; fi % monoline
-lft x1=hround u; x2=4u; x3=w-x2; x4=w-x1;
-top y3=top y1=bot y11-spread''; top y2=top y4=bot y1+spread';
-z1-z5=z2-z6=z3-z7=z4-z8=(0,spread'');
-draw z1{up}...z2{right}..{right}z3...{up}z4; % upper stroke
-draw z5{up}...z6{right}..{right}z7...{up}z8; % lower stroke
-labels(1,2,3,4,5,6,7,8,9,10,11); endchar;
-
-cmchar "Arch with left downward arrowhead";
-beginchar(oct"170",18u#,x_height#,0);
-adjust_fit(0,0); pickup crisp.nib;
-pos1(rule_thickness,0); pos2(rule_thickness,0);
-pos3(bar,90); pos4(bar,90);
-lft x1l=hround(.5w-.5rule_thickness); y1+.5rule_thickness=h;
-x0=x1=x2; bot y0=-d; x0-x3=x4-x0=3u+eps;
-y3=y4=y0+.24asc_height+eps;
-pos5(bar,angle(z4-z0)); z5l=z0;
-pos6(bar,angle(z3-z0)); z6l=z0;
-z9=.381966[.5[z3,z4],z0];
-numeric t; path p; p=z4r{z9-z4}..z6r;
-t=xpart(p intersectiontimes((x2r,-d)--(x2r,h))); y2=ypart point t of p;
-for i=0 upto 6: x[i]:=x[i]-5.5u; x[i]l:=x[i]l-5.5u; x[i]r:=x[i]r-5.5u; endfor
-x9:=x9-5.5u;
-filldraw z0..{z4-z9}z4l--subpath (0,t) of\\(z4r{z9-z4}..z6r)
- --z2r---z2l--subpath (t,0) of\\(z3r{z9-z3}..z5r)
- --z3l{z9-z3}..z0 & cycle; % arrowhead
-% arch represented by z2, z11 (top) z12
-rt x12=w-1u; bot y12=y0; top y11=h+o; x11=.5[x2, x12];
-pickup rule.nib; draw z2{up}...{right}z11...{down}z12;
-penlabels(0,1,2,3,4,5,6,9,11,12); endchar;
-
-cmchar "Arch with right downward arrowhead";
-beginchar(oct"171",18u#,x_height#,0);
-adjust_fit(0,0); pickup crisp.nib;
-pos1(rule_thickness,0); pos2(rule_thickness,0);
-pos3(bar,90); pos4(bar,90);
-lft x1l=hround(.5w-.5rule_thickness); y1+.5rule_thickness=h;
-x0=x1=x2; bot y0=-d; x0-x3=x4-x0=3u+eps;
-y3=y4=y0+.24asc_height+eps;
-pos5(bar,angle(z4-z0)); z5l=z0;
-pos6(bar,angle(z3-z0)); z6l=z0;
-z9=.381966[.5[z3,z4],z0];
-numeric t; path p; p=z4r{z9-z4}..z6r;
-t=xpart(p intersectiontimes((x2r,-d)--(x2r,h))); y2=ypart point t of p;
-for i=0 upto 6: x[i]:=x[i]+5.5u; x[i]l:=x[i]l+5.5u; x[i]r:=x[i]r+5.5u; endfor
-x9:=x9+5.5u;
-filldraw z0..{z4-z9}z4l--subpath (0,t) of\\(z4r{z9-z4}..z6r)
- --z2r---z2l--subpath (t,0) of\\(z3r{z9-z3}..z5r)
- --z3l{z9-z3}..z0 & cycle; % arrowhead
-% arch represented by z2, z11 (top) z12 (right)
-lft x12=u; bot y12=y0; top y11=h+o; x11=.5[x2, x12];
-pickup rule.nib; draw z2{up}...{left}z11...{down}z12;
-penlabels(0,1,2,3,4,5,6,9,11,12); endchar;
-
-cmchar "Stylized F";
-beginarithchar(oct"172");
-pickup pencircle xscaled 2.5rule_thickness yscaled .5rule_thickness;
-bot y1=-d; top y2=top y3=h+o; y4=y5=.5[y1, y2]; lft x1=u; x3=w-x1;
-numeric t; t=4; % t=slope of thck stem
-y2-y1=t*(x2-x1);
-z4=whatever[z1, z2]; x5-x4=.6(x3-x2);
-draw z1--z2--z3; draw z4--z5;
-penlabels(1,2,3,4,5); endchar;
-
-transform tt; tt:=currenttransform;
-currenttransform:=tt slanted 1/4;
-cmchar "Lowercase variation of Greek kappa";
-% will use same dimensions as standard Greek lowercase kappa
-% see vol E, p 155.
-beginchar(oct"173", 12u#, x_height#, 0);
-italcorr 1/3x_height#*slant+.5hair#+.5u#;
-adjust_fit(0,0); pickup rule.nib;
-pos1(stem,0); pos2(stem,0);x1l=hround(2u-.5stem); x2r=w-x1l;
-top y2+.3stem=h+oo; bot y1-.3stem=-oo;
-filldraw z1l---z2l...z2r---z1r...cycle;
-pickup crisp.nib;
-pos3(hair,180); x3=lft x1l; y3=3/4h; pos4(stem,90);
-top y4r+.15stem=h+oo; x4-x3=.05[x1,x2];
-pos4'(hair,0); y4'=y3; x4'=1/4[x1,x2];
-pos5(hair,90); z5=z1;
-filldraw super_arc.r(3,4)&super_arc.r(4,4')...{z1-z2}z5&z5{z2-z1}
-...super_arc.l(4',4)&super_arc.l(4,3)---cycle; % left arm
-pos8(hair,-90); pos6(hair,0);
-z8=z2; pos7(stem, -90); bot y7r-.15stem=-oo; x6-x7=x4-x3;
-x6=w-x3;
-pos7'(hair,180); y7'=y6; x7'=w-x4';
-y6=h-y3;
-filldraw super_arc.r(6,7)&super_arc.r(7,7')...{z2-z1}z8&z8{z1-z2}
-...super_arc.l(7',7)&super_arc.l(7,6)---cycle; % right arm
-%filldraw z8{z1-z2}..z7l...{up}z6r---z6l{-u,-2u}...z7r..{z2-z1}z8---cycle; %right arm
-penlabels(range 1 thru 8,4'); endchar;
-
-cmchar "H-bar symbol, slanted bar";
-beginchar(oct"175",9u#,asc_height#,0);
-italcorr 1/3x_height#*slant+.5hair#+.5u#;
-adjust_fit(0,0); pickup tiny.nib;
-pos1(stem,0); pos2(stem,0); x1=x2;
-lft x1l=hround(1.5u-.5stem); top y1=h; y2-.5stem=-oo;
-filldraw circ_stroke z2e--z1e; % left stem
-sloped_serif.l(1,2,a,1/3,jut,serif_drop); % serif
-pickup fine.nib; x4+.5stem=hround(w-2.5u+.5stem);
-x5=x4-.25u; ital_arch(2,3,4); % arch
-x7=w; hook_out(5,6,7)(skewed); % closing hook
-filldraw stroke z4e{down}..{-u,-x_height}z5e; % right stem
-pickup light_rule.nib;
-x8=x.a2; y8=.7h; x9=x4l; y9=7/8h;
-draw z8--z9;
-math_fit(0,ic#); penlabels(1,2,3,4,5,6,7,8,9); endchar;
-
-cmchar "H-bar symbol, vertical bar";
-beginchar(oct"176",9u#,asc_height#,0);
-italcorr 1/3x_height#*slant+.5hair#+.5u#;
-adjust_fit(0,0); pickup tiny.nib;
-pos1(stem,0); pos2(stem,0); x1=x2;
-lft x1l=hround(1.5u-.5stem); top y1=h; y2-.5stem=-oo;
-filldraw circ_stroke z2e--z1e; % left stem
-sloped_serif.l(1,2,a,1/3,jut,serif_drop); % serif
-pickup fine.nib; x4+.5stem=hround(w-2.5u+.5stem);
-x5=x4-.25u; ital_arch(2,3,4); % arch
-x7=w; hook_out(5,6,7)(skewed); % closing hook
-filldraw stroke z4e{down}..{-u,-x_height}z5e; % right stem
-pickup light_rule.nib;
-x8=x.a2; y8=y9=.81h; rt x9=x4l; draw z8--z9;
-math_fit(0,ic#); penlabels(1,2,3,4,5,6,7,8,9); endchar;
-
-cmchar "Reversed, reflected, lowercase Greek epsilon";
-beginchar(oct"177",8u#,x_height#,0);
-italcorr x_height#*slant+.5hair#-2u#;
-adjust_fit(0,0); pickup fine.nib;
-pos0(bar,90); pos1(bar,90); pos2(curve,180);
-pos3(vair,270); pos4(hair,300); pos6(bar,90); pos7(bar,90);
-x1=.5w+.5u; x0=x1+u; lft x2r=hround(1.5u-.5curve); x3=.5[x0,x1];
-x4r=good.x(w-u); x5=w+.5u; x6=x0; z7=z2l;
-top y0r=top y1r=h; y2=y5=y6=bar_height; bot y3r=-oo;
-path p; p=z3r{right}...{up}z5;
-numeric t; t=ypart(((x4r,y3r)--(x4r,y5))intersectiontimes p);
-y4r=ypart point t of p;
-filldraw circ_stroke z0e..pulled_arc.e(1,2) & pulled_arc.e(2,3)
- ...z4e{direction t of p}; % arc
-filldraw circ_stroke z6e--z7e; % bar
-math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
-picture v;
-v:=currentpicture;
-v:=v reflectedabout((0,h*aspect_ratio/2),(w,h*aspect_ratio/2));
-v:=v reflectedabout((w/2,-d),(w/2,h));
-currentpicture:=v shifted (2u,0);
-penlabels(0,1,2,3,4,5,6,7); endchar;
-
-currenttransform:=tt; %restore currenttrnasform
-