%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /data/old/usr/share/texlive/texmf-dist/fonts/source/public/mnsymbol/
Upload File :
Create Path :
Current File : //data/old/usr/share/texlive/texmf-dist/fonts/source/public/mnsymbol/Sym-Operators.mf

for scale = 1, 1.4:
  beginsquarebigop(scale, scale); "big plus";
    pickup pencircle scaled (4/3rule_thickness * sqrt scale);

    draw (centre + op_height/2 * dir  0) -- (centre + op_height/2 * dir 180);
    draw (centre + op_height/2 * dir 90) -- (centre + op_height/2 * dir 270);
  endchar;
endfor;
charlist current_char - 1: current_char;

for scale = 1, 1.4:
  beginbigop(scale, scale); "big times";
    pickup pencircle scaled (4/3rule_thickness * sqrt scale);

    z1 - z0 = z3 - z2 = op_width * dir 0;
    z2 - z0 = op_width * dir 90;

    1/2[1/2[z0,z1], 1/2[z2,z3]] = centre;

    draw z0 -- z3;
    draw z1 -- z2;
  endchar;
endfor;
charlist current_char - 1: current_char;

for sign = 1, -1:
  for scale = 1, 1.4:
    beginbigop(scale, scale); "big wedge";

      pickup pencircle scaled (4/3rule_thickness * sqrt scale);

      z3 - z0 = z2 - z1 = op_width * dir 0;
      z1 - z0 = sign * op_height * dir 90;

      1/2[1/2[z0,z1], 1/2[z2,z3]] = centre;

      draw z0 -- 1/2[z1, z2] -- z3;
    endchar;
  endfor;
  charlist current_char - 1: current_char;
endfor;

for sign = 1, -1:
  for scale = 1, 1.4:
    beginbigop(scale, scale); "big wedge dot";

      pickup pencircle scaled (4/3rule_thickness * sqrt scale);

      z3 - z0 = z2 - z1 = op_width * dir 0;
      z1 - z0 = sign * op_height * dir 90;

      1/2[1/2[z0,z1], 1/2[z2,z3]] = centre;

      draw z0 -- 1/2[z1, z2] -- z3;
      fill circle(centre - sign * 1/4op_height * dir 90, 4/3dot_size * sqrt scale);
    endchar;
  endfor;
  charlist current_char - 1: current_char;
endfor;

for sign = 1, -1:
  for scale = 1, 1.4:
    beginbigop(6/5scale, scale); "double big wedge";

      pickup pencircle scaled (4/3rule_thickness * sqrt scale);

      z3 - z0 = z2 - z1 = 5/6op_width * dir 0;
      z1 - z0 = sign * op_height * dir 90;

      1/2[1/2[z0,z1], 1/2[z2,z3]] = centre;

      1/2[z0a,z0b] = z0;
      1/2[z1a,z1b] = 1/2[z1, z2];
      1/2[z2a,z2b] = z3;
      z0b - z0a = z1b - z1a = z2b - z2a = 1/3(plus_size + 11/5rule_thickness) * dir 0;

      draw z0a -- z1a -- z2a;
      draw z0b -- z1b -- z2b;
    endchar;
  endfor;
  charlist current_char - 1: current_char;
endfor;

for sign = 1, -1:
  for scale = 1, 1.4:
    beginbigop(scale, scale); "big curly wedge";

      pickup pencircle scaled (4/3rule_thickness * sqrt scale);

      draw prec(centre + sign * op_height/2 * dir 90,
                centre - sign * op_height/2 * dir 90,
                op_width);
    endchar;
  endfor;
  charlist current_char - 1: current_char;
endfor;

for sign = 1, -1:
  for scale = 1, 1.4:
    beginbigop(scale, scale); "big curly wedge dot";

      pickup pencircle scaled (4/3rule_thickness * sqrt scale);

      draw prec(centre + sign * op_height/2 * dir 90,
                centre - sign * op_height/2 * dir 90,
                op_width);
      fill circle(centre - sign * 3/8op_height * dir 90, 4/3dot_size * sqrt scale);
    endchar;
  endfor;
  charlist current_char - 1: current_char;
endfor;

for sign = 1, -1:
  for scale = 1, 1.4:
    beginbigop(6/5scale, scale); "double big curly wedge";

      pickup pencircle scaled (4/3rule_thickness * sqrt scale);

      1/2[z0,z1] = centre;
      z1 - z0 = 1/3(plus_size + 11/5rule_thickness) * dir 0;

      draw prec(z0 + sign * op_height/2 * dir 90,
                z0 - sign * op_height/2 * dir 90,
                5/6op_width);
      draw prec(z1 + sign * op_height/2 * dir 90,
                z1 - sign * op_height/2 * dir 90,
                5/6op_width);
    endchar;
  endfor;
  charlist current_char - 1: current_char;
endfor;

for sign = 1, -1:
  for scale = 1, 1.4:
    beginbigop(scale, scale); "big union";

      pickup pencircle scaled (4/3rule_thickness * sqrt scale);

      draw subset(centre + sign * op_height/2 * dir 90,
                  centre - sign * op_height/2 * dir 90,
                  op_width);
    endchar;
  endfor;
  charlist current_char - 1: current_char;
endfor;

for sign = 1, -1:
  for scale = 1, 1.4:
    beginbigop(scale, scale); "big union dot";

      pickup pencircle scaled (4/3rule_thickness * sqrt scale);

      draw subset(centre + sign * op_height/2 * dir 90,
                  centre - sign * op_height/2 * dir 90,
                  op_width);
      fill circle(centre - sign * 1/8op_height * dir 90, 4/3dot_size * sqrt scale);
    endchar;
  endfor;
  charlist current_char - 1: current_char;
endfor;

for sign = 1, -1:
  for scale = 1, 1.4:
    beginbigop(scale, scale); "big union plus";

      pickup pencircle scaled (4/3rule_thickness * sqrt scale);

      draw subset(centre + sign * op_height/2 * dir 90,
                  centre - sign * op_height/2 * dir 90,
                  op_width);

      t := 2rule_thickness;
      r := 3/8op_width - t;

      draw (centre - sign * 1/8op_width * dir 90 + r * dir  0)
        -- (centre - sign * 1/8op_width * dir 90 + r * dir 180);
      draw (centre + (r - sign * 1/8op_width) * dir 90)
        -- (centre + (r + sign * 1/8op_width) * dir 270);
    endchar;
  endfor;
  charlist current_char - 1: current_char;
endfor;

for sign = 1, -1:
  for scale = 1, 1.4:
    beginbigop(scale, scale); "big square union";

      pickup pencircle scaled (4/3rule_thickness * sqrt scale);

      z3 - z0 = z2 - z1 = op_width * dir 0;
      z1 - z0 = sign * op_height * dir 90;

      1/2[1/2[z0,z1], 1/2[z2,z3]] = centre;

      draw z0 -- z1 -- z2 -- z3;
    endchar;
  endfor;
  charlist current_char - 1: current_char;
endfor;

for sign = 1, -1:
  for scale = 1, 1.4:
    beginbigop(scale, scale); "big square union dot";

      pickup pencircle scaled (4/3rule_thickness * sqrt scale);

      z3 - z0 = z2 - z1 = op_width * dir 0;
      z1 - z0 = sign * op_height * dir 90;

      1/2[1/2[z0,z1], 1/2[z2,z3]] = centre;

      draw z0 -- z1 -- z2 -- z3;
      fill circle(centre - sign * 1/8op_height * dir 90, 4/3dot_size * sqrt scale);
    endchar;
  endfor;
  charlist current_char - 1: current_char;
endfor;

for sign = 1, -1:
  for scale = 1, 1.4:
    beginbigop(scale, scale); "big square union plus";

      pickup pencircle scaled (4/3rule_thickness * sqrt scale);

      z3 - z0 = z2 - z1 = op_width * dir 0;
      z1 - z0 = sign * op_height * dir 90;

      1/2[1/2[z0,z1], 1/2[z2,z3]] = centre;

      draw z0 -- z1 -- z2 -- z3;

      t := 2rule_thickness;
      r := 3/8op_width - t;

      draw (centre - sign * 1/8op_width * dir 90 + r * dir  0)
        -- (centre - sign * 1/8op_width * dir 90 + r * dir 180);
      draw (centre + (r - sign * 1/8op_width) * dir 90)
        -- (centre + (r + sign * 1/8op_width) * dir 270);
    endchar;
  endfor;
  charlist current_char - 1: current_char;
endfor;

for scale = 1, 1.4:
  beginsquarebigop(scale, scale); "big circle";
    pickup pencircle scaled (4/3rule_thickness * sqrt scale);

    draw circle(centre, op_height/2);
  endchar;
endfor;
charlist current_char - 1: current_char;

for alpha = 0, 90, 45, 135:
  for scale = 1, 1.4:
    beginsquarebigop(scale, scale); "big circle minus";
      pickup pencircle scaled (4/3rule_thickness * sqrt scale);

      r := op_height/2 - 11/10 * (4/3rule_thickness * sqrt scale);

      draw circle(centre, op_height/2);
      draw (centre - r * dir alpha) -- (centre + r * dir alpha);
    endchar;
  endfor;
  charlist current_char - 1: current_char;
endfor;

for alpha = 0, 45:
  for scale = 1, 1.4:
    beginsquarebigop(scale, scale); "big circle plus";
      pickup pencircle scaled (4/3rule_thickness * sqrt scale);

      r := op_height/2 - 11/10 * (4/3rule_thickness * sqrt scale);

      draw circle(centre, op_height/2);
      draw (centre - r * dir alpha)          -- (centre + r * dir alpha);
      draw (centre - r * dir (alpha + 90))   -- (centre + r * dir (alpha + 90));
    endchar;
  endfor;
  charlist current_char - 1: current_char;
endfor;

for scale = 1, 1.4:
  beginsquarebigop(scale, scale); "big circle dot";
    pickup pencircle scaled (4/3rule_thickness * sqrt scale);

    draw circle(centre, op_height/2);
    fill circle(centre, scale * 1.3dot_size);
  endchar;
endfor;
charlist current_char - 1: current_char;

for scale = 1, 1.4:
  beginsquarebigop(scale, scale); "big circle circle";
    pickup pencircle scaled (4/3rule_thickness * sqrt scale);

    draw circle(centre, op_height/2);
    draw circle(centre, op_height/5);
  endchar;
endfor;
charlist current_char - 1: current_char;

for scale = 1, 1.4:
  beginsquarebigop(scale, scale); "big circle triangle";
    pickup pencircle scaled (4/3rule_thickness * sqrt scale);

    draw circle(centre, op_height/2);

    pickup rule_pen;

    draw triangle(centre, op_height/5, 90);
  endchar;
endfor;
charlist current_char - 1: current_char;

for scale = 1, 1.4:
  beginsquarebigop(scale, scale); "big circle asterisk";
    thick := 4/3rule_thickness * sqrt scale;

    pickup pencircle scaled thick;

    r := op_height/2 - 11/10rule_thickness * (4/3 * sqrt scale);

    draw circle(centre, op_height/2);

    penpos a0(4/3thick,   0 - 7);
    penpos a1(4/3thick,  72 - 7);
    penpos a2(4/3thick, 144 - 7);
    penpos a3(4/3thick, 216 - 7);
    penpos a4(4/3thick, 288 - 7);

    penpos b0(2/3thick,   0 - 7);
    penpos b1(2/3thick,  72 - 7);
    penpos b2(2/3thick, 144 - 7);
    penpos b3(2/3thick, 216 - 7);
    penpos b4(2/3thick, 288 - 7);

    reg_poly_points(a)(5, centre, r, 77);

    z.b0 = z.b1 = z.b2 = z.b3 = z.b4 = centre;

    fill stroke z.a0e -- z.b0e;
    fill stroke z.a1e -- z.b1e;
    fill stroke z.a2e -- z.b2e;
    fill stroke z.a3e -- z.b3e;
    fill stroke z.a4e -- z.b4e;
  endchar;
endfor;
charlist current_char - 1: current_char;

for scale = 1, 1.4:
  beginsquarebigop(scale, scale); "big circle star";
    pickup pencircle scaled (4/3rule_thickness * sqrt scale);

    r := op_height/2 - 11/10rule_thickness * (4/3 * sqrt scale);

    draw circle(centre, op_height/2);

    pickup rule_pen;

    reg_poly_points(a)(5, centre, r, 90);
    reg_poly_points(b)(5, centre, r/10, 126);

    draw z.a0 -- z.b0 -- z.a1 -- z.b1 -- z.a2 -- z.b2 -- z.a3 -- z.b3 -- z.a4 -- z.b4 -- cycle;
    fill z.a0 -- z.b0 -- z.a1 -- z.b1 -- z.a2 -- z.b2 -- z.a3 -- z.b3 -- z.a4 -- z.b4 -- cycle;
  endchar;
endfor;
charlist current_char - 1: current_char;

for sign = 1, -1:
  for scale = 1.1, 1.54:
    beginbigop(1.1scale, scale); "product";
      draw_product(centre, op_width, op_height, sign, 5/3rule_thickness * sqrt scale);
    endchar;
  endfor;
  charlist current_char - 1: current_char;
endfor;

def draw_sum(suffix $)(expr centre, width, height, thick) =
  thin := 2/3thick;

  z1$ - z0$ = z3$ - z2$ = width * dir 0;
  z2$ - z0$ = height * dir 90;

  1/2[1/2[z0$,z1$], 1/2[z2$,z3$]] = centre;

  z4$ - z1$ = z3$ - z5$ = 1/5height * dir 90;

  z6$ = whatever[z0$,z1$] = z4$ - whatever * dir 77;
  z7$ = whatever[z2$,z3$] = z5$ + whatever * dir -77;

  penpos 0$(thick,  90);
  penpos 6$(thick,  90);
  penpos 4$(thin,  167);
  penpos 2$(thin,  -90);
  penpos 7$(thin,  -90);
  penpos 5$(thin,  203);

  z8$ = centre;
  penpos 8$(2thin, 20);

  z9$ = z8$r + whatever * (z2$r - z8$l) = whatever[z2$r,z7$r];

  z10$ = z0$l + thin * dir 90;
  z11$ = z8$r + whatever * (z10$ - z8$l);
  y11$ = y10$;

  z12$ = whatever[z10$,z8$l];
  y12$ = y0$r;

  fill z0$l -- z6$l -- z4$l -- z4$r{-dir 77} .. {dir 180}1/4[z6$r,z0$r] -- z12$ -- z10$ -- cycle;
  fill z2$l -- z7$l -- z5$l -- z5$r{dir 113} .. {dir 180}1/4[z7$r,z2$r] -- z2$r -- cycle;
  fill z2$r -- z8$l -- z8$r -- z9$ -- cycle;
  fill z10$ -- z8$l -- z8$r -- z11$ -- cycle;
enddef;

for scale = 1.1, 1.54:
  beginbigop(scale, scale); "sum";
    draw_sum(a)(centre, op_width, op_height, 4/3rule_thickness * sqrt scale);
  endchar;
endfor;
charlist current_char - 1: current_char;

for number = 0, 1, 2, 3:
  for scale = 1, 1.8:

    display_shift# := (1 + 5/2(scale-1)) * 1/4order_width#;
    text_shift#    := (scale-1) * 1/2order_width#;
    define_whole_pixels(display_shift, text_shift);

    beginsymbol(scale * (1/2 + 2/3number) * order_width# + 2side_bearing# + display_shift# - text_shift#,
                ((scale - 1)/2 + 1) * 1.4asc_height# + scale * 1/6equal_spread# + 2/3rule_thickness#,
                (scale - 1)/2 * 1.4asc_height# + scale * 1/6equal_spread# + 2/3rule_thickness#);
      "integral";

      italcorr (1 + 3/2(scale-1)) * 2/3order_width#; % kerning between upper limit and lower limit

      pair centre;

      for i = 0 upto number:
        centre := ((w - scale * (number - 2*i) * 2/3order_width + display_shift + text_shift)/2,
                   (h - d)/2);

        draw_integral([i])(scale, centre);
      endfor;
    endchar;
  endfor;
  charlist current_char - 1: current_char;
endfor;

for scale = 1, 1.8:

  display_shift# := (1 + 5/2(scale-1)) * 1/4order_width#;
  text_shift#    := (scale-1) * 1/2order_width#;
  define_whole_pixels(display_shift, text_shift);

  beginsymbol(scale * (1/2 + 1) * order_width# + 2side_bearing# + display_shift# - text_shift#,
              ((scale - 1)/2 + 1) * 1.4asc_height# + scale * 1/6equal_spread# + 2/3rule_thickness#,
              (scale - 1)/2 * 1.4asc_height# + scale * 1/6equal_spread# + 2/3rule_thickness#);
    "integral dots";

    italcorr (1 + 3/2(scale-1)) * 2/3order_width#; % kerning between upper limit and lower limit

    pair centre;

    centre := ((w - 2scale * order_width + display_shift + text_shift)/2,
               (h - d)/2);

    draw_integral([0])(scale, centre);

    centre := ((w + 2scale * order_width + display_shift + text_shift)/2,
               (h - d)/2);

    draw_integral([2])(scale, centre);

    z0 = 1/4[z0[0],z0[2]];
    z1 = 2/4[z0[0],z0[2]];
    z2 = 3/4[z0[0],z0[2]];

    fill circle(z0, dot_size);
    fill circle(z1, dot_size);
    fill circle(z2, dot_size);
  endchar;
endfor;
charlist current_char - 1: current_char;

for sign = 1, -1:
  for scale = 1, 1.8:

    display_shift# := (1 + 5/2(scale-1)) * 1/4order_width#;
    text_shift#    := (scale-1) * 1/2order_width#;
    define_whole_pixels(display_shift, text_shift);

    beginsymbol(scale * 1/2order_width# + 2side_bearing# + display_shift# - text_shift#,
                ((scale - 1)/2 + 1) * 1.4asc_height# + scale * 1/6equal_spread# + 2/3rule_thickness#,
                (scale - 1)/2 * 1.4asc_height# + scale * 1/6equal_spread# + 2/3rule_thickness#);
      "landup/down integral";

      italcorr (1 + 3/2(scale-1)) * 2/3order_width#; % kerning between upper limit and lower limit

      pair centre;

      centre := ((w + display_shift + text_shift)/2, (h - d)/2);

      draw_integral(a)(scale, centre);

      pickup pencircle scaled 1/2thick;

      z0 = z0a + sign * sqrt scale * (-2thick, -2/3thick);
      z1 = z0a + sign * sqrt scale * ( 0,       2/3thick);
      z2 = z0a + sign * sqrt scale * ( 2thick, -2/3thick);

      draw z0 .. z1 .. z2;
    endchar;
  endfor;
  charlist current_char - 1: current_char;
endfor;

for scale = 1, 1.8:

  display_shift# := (1 + 5/2(scale-1)) * 1/4order_width#;
  text_shift#    := (scale-1) * 1/2order_width#;
  define_whole_pixels(display_shift, text_shift);

  beginsymbol(scale * 1/2order_width# + 2side_bearing# + display_shift# - text_shift#,
              ((scale - 1)/2 + 1) * 1.4asc_height# + scale * 1/6equal_spread# + 2/3rule_thickness#,
              (scale - 1)/2 * 1.4asc_height# + scale * 1/6equal_spread# + 2/3rule_thickness#);
    "stroked integral";

    italcorr (1 + 3/2(scale-1)) * 2/3order_width#; % kerning between upper limit and lower limit

    pair centre;

    centre := ((w + display_shift + text_shift)/2, (h - d)/2);

    draw_integral(a)(scale, centre);

    alpha := angle (z1a - z3a) - 70;

    pickup pencircle scaled 1/2thick;

    draw (z0a - sqrt scale * 2thick * dir alpha) -- (z0a + sqrt scale * 2thick * dir alpha);
  endchar;
endfor;
charlist current_char - 1: current_char;

for number = 0, 1:
  for scale = 1, 1.8:

    display_shift# := (1 + 5/2(scale-1)) * 1/4order_width#;
    text_shift#    := (scale-1.3) * 4/5order_width#;
    define_whole_pixels(display_shift, text_shift);

    beginsymbol(scale * (1/2 + 2/3number) * order_width# + 2side_bearing# + display_shift# - text_shift#,
                ((scale - 1)/2 + 1) * 1.4asc_height# + scale * 1/6equal_spread# + 2/3rule_thickness#,
                (scale - 1)/2 * 1.4asc_height# + scale * 1/6equal_spread# + 2/3rule_thickness#);
      "contour integral";

      italcorr (1 + 3/2(scale-1)) * 2/3order_width#; % kerning between upper limit and lower limit

      pair centre;

      for i = 0 upto number:
        centre := ((w - scale * (number - 2*i) * 2/3order_width + display_shift + text_shift)/2,
                   (h - d)/2);

        draw_integral([i])(scale, centre);
      endfor;

      centre := 1/2[z0[0], z0[number]];

      pickup pencircle scaled 5/12thick;

      if number = 0:
        draw circle(centre, 2thick * sqrt scale);
      else:
        draw super_ellipse(centre,
                           (2thick + number * 5/5thick) * sqrt scale,
                           (2thick + number * 1/5thick) * sqrt scale,
                           7/8, 0);
      fi;
    endchar;
  endfor;
  charlist current_char - 1: current_char;
endfor;

for alpha = -90, 90:
  for sign = 1, -1:
    for scale = 1, 1.8:

      display_shift# := (1 + 5/2(scale-1)) * 1/4order_width#;
      text_shift#    := (scale-1.3) * 4/5order_width#;
      define_whole_pixels(display_shift, text_shift);

      beginsymbol(scale * 1/2order_width# + 2side_bearing# + display_shift# - text_shift#,
                  ((scale - 1)/2 + 1) * 1.4asc_height# + scale * 1/6equal_spread# + 2/3rule_thickness#,
                  (scale - 1)/2 * 1.4asc_height# + scale * 1/6equal_spread# + 2/3rule_thickness#);
        "oriented contour integral";

        italcorr (1 + 3/2(scale-1)) * 2/3order_width#; % kerning between upper limit and lower limit

        pair centre;
        centre := ((w+display_shift+text_shift)/2, (h-d)/2);

        draw_integral(a)(scale, centre);

        pickup pencircle scaled 5/12thick;

        r := 2thick * sqrt scale;

        beta := alpha + angle (z1a - z3a) + 25sign;

        reg_poly_points(a)(8, z0a, r, beta);

        z0 = z0a + r * dir (beta + 10);
        z1 = z0a + r * dir (beta - 10);

        draw z0{dir (beta + 100)} .. z.a1 .. z.a2 .. z.a3 .. z.a4 .. z.a5 .. z.a6 .. z.a7 ..
            {dir (beta + 80)}z1;

        if sign > 0:
          draw arrowhead(z1, (beta + 65), 1/2scale * arrow_spread);
        else:
          draw arrowhead(z0, (beta - 65), 1/2scale * arrow_spread);
        fi;
      endchar;
    endfor;
    charlist current_char - 1: current_char;
  endfor;
endfor;

for scale = 1, 1.8:

  display_shift# := (1 + 5/2(scale-1)) * 1/4order_width#;
  text_shift#    := (scale-1) * 1/2order_width#;
  define_whole_pixels(display_shift, text_shift);

  beginsymbol(scale * 1/2order_width# + 2side_bearing# + display_shift# - text_shift#,
              ((scale - 1)/2 + 1) * 1.4asc_height# + scale * 1/6equal_spread# + 2/3rule_thickness#,
              (scale - 1)/2 * 1.4asc_height# + scale * 1/6equal_spread# + 2/3rule_thickness#);
    "sum integral";

    italcorr (1 + 3/2(scale-1)) * 2/3order_width#; % kerning between upper limit and lower limit

    pair centre;

    centre := ((w + display_shift + text_shift)/2, (h - d)/2);

    draw_integral(a)(scale, centre);
    draw_sum(b, 1/3[z0a.l,z0a.r], scale * order_width, 3/4scale * asc_height, 1/2thick);

  endchar;
endfor;
charlist current_char - 1: current_char;

%for scale = 1, 1.8:
%
%  display_shift# := 0;%(1 + 5/2(scale-1)) * 1/4order_width#;
%  text_shift#    := -2/8order_width#;
%  script_delta#  := (1 + 3/2(scale-1)) * 1/2order_width#;
%  define_whole_pixels(display_shift, text_shift, script_delta);
%
%  beginsymbol(scale * 1/2 * order_width# + 2side_bearing# - display_shift# - 2text_shift#,
%              ((scale - 1)/2 + 1) * 1.4asc_height# + scale * 1/6equal_spread# + 2/3rule_thickness#,
%              (scale - 1)/2 * 1.4asc_height# + scale * 1/6equal_spread# + 2/3rule_thickness#);
%    "partial integral";
%
%    italcorr script_delta#; % kerning between upper limit and lower limit
%  endchar;
%endfor;
%charlist current_char - 1: current_char;

for scale = 1, 1.8:

  display_shift# := 0;%(1 + 5/2(scale-1)) * 1/4order_width#;
  text_shift#    := -2/8order_width#;
  script_delta#  := (1 + 3/2(scale-1)) * 1/2order_width#;
  define_whole_pixels(display_shift, text_shift, script_delta);

  beginsymbol(scale * (1/2 + 1) * order_width# + 2side_bearing# - display_shift# - 2text_shift#,
              ((scale - 1)/2 + 1) * 1.4asc_height# + scale * 1/6equal_spread# + 2/3rule_thickness#,
              (scale - 1)/2 * 1.4asc_height# + scale * 1/6equal_spread# + 2/3rule_thickness#);
    "partial integral dots";

    italcorr (1 + 3/2(scale-1)) * 2/3order_width#; % kerning between upper limit and lower limit

    pair centre;

    centre := (1/2(w + script_delta), (h-d)/2);

    z0 = centre + 1/2scale * order_width * left;
    z1 = centre;
    z2 = centre + 1/2scale * order_width * right;

    fill circle(z0, dot_size);
    fill circle(z1, dot_size);
    fill circle(z2, dot_size);
  endchar;
endfor;
charlist current_char - 1: current_char;

for sign = 1, -1:
  for scale = 1, 1.8:

    display_shift# := 0;%(1 + 5/2(scale-1)) * 1/4order_width#;
    text_shift#    := -4/8order_width# + 5/4(scale-1) * 2/8order_width#;
    script_delta#  := (1/2 + 4/2(scale-1)) * 1/2order_width#;
    define_whole_pixels(display_shift, text_shift, script_delta);

    beginsymbol(scale * 1/2 * order_width# + 2side_bearing# - display_shift# - 2text_shift#,
                ((scale - 1)/2 + 1) * 1.4asc_height# + scale * 1/6equal_spread# + 2/3rule_thickness#,
                (scale - 1)/2 * 1.4asc_height# + scale * 1/6equal_spread# + 2/3rule_thickness#);
      "partial landup/down integral";

      italcorr script_delta#; % kerning between upper limit and lower limit

      pair centre;

      centre := (1/2(w + script_delta), (h-d)/2);

      pickup pencircle scaled 1/2thick;

      z0 = centre + sign * sqrt scale * (-2thick, -2/3thick);
      z1 = centre + sign * sqrt scale * ( 0,       2/3thick);
      z2 = centre + sign * sqrt scale * ( 2thick, -2/3thick);

      draw z0 .. z1 .. z2;
    endchar;
  endfor;
  charlist current_char - 1: current_char;
endfor;

for scale = 1, 1.8:

  display_shift# := 0;%(1 + 5/2(scale-1)) * 1/4order_width#;
  text_shift#    := -4/8order_width# + 5/4(scale-1) * 2/8order_width#;
  script_delta#  := (1/2 + 4/2(scale-1)) * 1/2order_width#;
  define_whole_pixels(display_shift, text_shift, script_delta);

  beginsymbol(scale * 1/2 * order_width# + 2side_bearing# - display_shift# - 2text_shift#,
              ((scale - 1)/2 + 1) * 1.4asc_height# + scale * 1/6equal_spread# + 2/3rule_thickness#,
              (scale - 1)/2 * 1.4asc_height# + scale * 1/6equal_spread# + 2/3rule_thickness#);
    "partial stroked integral";

    italcorr script_delta#; % kerning between upper limit and lower limit

    pair centre;

    centre := (1/2(w + script_delta), (h-d)/2);

    alpha := 10;

    pickup pencircle scaled 1/2thick;

    draw (centre - sqrt scale * 2thick * dir alpha) -- (centre + sqrt scale * 2thick * dir alpha);
  endchar;
endfor;
charlist current_char - 1: current_char;

for number = 0, 1:
  for scale = 1, 1.8:

    display_shift# := 0;%(1 + 5/2(scale-1)) * 1/4order_width#;
    text_shift#    := -4/8order_width# + 5/4(scale-1) * 2/8order_width#;
    script_delta#  := (1/2 + 4/2(scale-1)) * 1/2order_width#;
    define_whole_pixels(display_shift, text_shift, script_delta);

    beginsymbol(scale * (1/2 + 2/3number) * order_width# + 2side_bearing# - display_shift# - 2text_shift#,
                ((scale - 1)/2 + 1) * 1.4asc_height# + scale * 1/6equal_spread# + 2/3rule_thickness#,
                (scale - 1)/2 * 1.4asc_height# + scale * 1/6equal_spread# + 2/3rule_thickness#);
      "partial contour integral";

      italcorr script_delta#; % kerning between upper limit and lower limit

      pair centre;

      centre := (1/2(w + script_delta), (h-d)/2);

      pickup pencircle scaled (5/12thick * sqrt scale);

      if number = 0:
        draw circle(centre, 2thick * sqrt scale);
      else:
        draw super_ellipse(centre,
                           (2thick + number * 5/5thick) * sqrt scale,
                           (2thick + number * 1/5thick) * sqrt scale,
                           7/8, 0);
      fi;
    endchar;
  endfor;
  charlist current_char - 1: current_char;
endfor;

for alpha = -90, 90:
  for sign = 1, -1:
    for scale = 1, 1.8:

      display_shift# := 0;%(1 + 5/2(scale-1)) * 1/4order_width#;
      text_shift#    := -4/8order_width# + 5/4(scale-1) * 2/8order_width#;
      script_delta#  := (1/2 + 4/2(scale-1)) * 1/2order_width#;
      define_whole_pixels(display_shift, text_shift, script_delta);

      beginsymbol(scale * 1/2order_width# + 2side_bearing# - display_shift# - 2text_shift#,
                  ((scale - 1)/2 + 1) * 1.4asc_height# + scale * 1/6equal_spread# + 2/3rule_thickness#,
                  (scale - 1)/2 * 1.4asc_height# + scale * 1/6equal_spread# + 2/3rule_thickness#);
        "partial oriented contour integral";

        italcorr script_delta#; % kerning between upper limit and lower limit

        pair centre;
        centre := (1/2(w + script_delta), (h-d)/2);

        pickup pencircle scaled (5/12thick * sqrt scale);

        r := 2thick * sqrt scale;

        beta := alpha + 80 + 25sign;

        reg_poly_points(a)(8, centre, r, beta);

        z0 = centre + r * dir (beta + 10);
        z1 = centre + r * dir (beta - 10);

        draw z0{dir (beta + 100)} .. z.a1 .. z.a2 .. z.a3 .. z.a4 .. z.a5 .. z.a6 .. z.a7 ..
            {dir (beta + 80)}z1;

        if sign > 0:
          draw arrowhead(z1, (beta + 65), 1/2scale * arrow_spread);
        else:
          draw arrowhead(z0, (beta - 65), 1/2scale * arrow_spread);
        fi;
      endchar;
    endfor;
    charlist current_char - 1: current_char;
  endfor;
endfor;

for scale = 1, 1.8:

  display_shift# := (1 + 5/2(scale-1)) * 1/4order_width#;
  text_shift#    := (scale-1) * 1/2order_width#;
  define_whole_pixels(display_shift, text_shift);

  beginsymbol(scale * 1/2order_width# + 2side_bearing# + display_shift# - text_shift#,
              ((scale - 1)/2 + 1) * 1.4asc_height# + scale * 1/6equal_spread# + 2/3rule_thickness#,
              (scale - 1)/2 * 1.4asc_height# + scale * 1/6equal_spread# + 2/3rule_thickness#);
    "partial sum integral";

    italcorr (1 + 3/2(scale-1)) * 2/3order_width#; % kerning between upper limit and lower limit

    pair centre;

    z0 = (1/2(w + script_delta), (h-d)/2);

    penpos0(4/5thick, 0);

    draw_sum(a, 1/3[z0l,z0r], scale * order_width, 3/4scale * asc_height, 1/2thick * sqrt scale);

  endchar;
endfor;
charlist current_char - 1: current_char;

for scale = 1, 1.4:
  beginbigop(3/4scale, scale); "complement";

    pickup pencircle scaled (4/3rule_thickness * sqrt scale);

    z0 = centre + op_height/2 * up;
    z1 = centre - op_height/2 * up;
    z2 = centre - op_width/2 * right;
    z3 = centre + op_width/2 * right;

    draw (1/4[z0,z1] + op_width/2 * right){up}
      .. z0
      .. {down}(1/3[z0,z1] - op_width/2 * right)
      -- (2/3[z0,z1] - op_width/2 * right){down}
      .. z1
      .. (3/4[z0,z1] + op_width/2 * right){up};
  endchar;
endfor;
charlist current_char - 1: current_char;


Zerion Mini Shell 1.0