% First, the markers (cross and circle) are defined for usage
% in the normal text.

beginchar("x", d#, .8d#, .2d#);
  "x: Cross marker";

  pickup pencircle scaled thick;
  define_whole_pixels(d);

  % lower left point
  z1=(.2d,0);
  % upper left point
  z2=(.2d,.6d);
  % lower right point
  z3=(.8d,0);
  % upper right point
  z4=(.8d,.6d);

  draw z1..z4;
  draw z2..z3;
endchar;

beginchar("y", d#, .8d#, .2d#);
  "y: Circle marker";

  pickup pencircle scaled thick;
  define_whole_pixels(d);

  draw fullcircle scaled .6d shifted (.5d,.3d);
endchar;

% Additionally, a "plus" and "minus" sign and the
% ``capture'' symbol are provided

beginchar("+", .7d#, d#, 0);
  "+: Plus";

  pickup pencircle scaled middle;
  define_whole_pixels(d);

  % Plus sign
  z1=(.1d,.25d);
  z2=(.6d,.25d);
  z3=(.35d,.5d);
  z4=(.35d,0);

  draw z1--z2;
  draw z3--z4;
endchar;

beginchar("-", .4d#, d#, 0);
  "-: Minus";

  pickup pencircle scaled middle;
  define_whole_pixels(d);

  % Minus sign
  z1=(.1d,.3d);
  z2=(.3d,.3d);

  draw z1--z2;
endchar;

beginchar("X", .6d#, d#, 0);
  "X: Capture symbol";

  pickup pencircle scaled middle;
  define_whole_pixels(d);

  % lower left point
  z1=(.1d,.5middle);
  % upper left point
  z2=(.1d,.4d+.5middle);
  % lower right point
  z3=(.5d,.5middle);
  % upper right point
  z4=(.5d,.4d+.5middle);

  draw z1..z4;
  draw z2..z3;
endchar;

% Here, the definitions of the informator symbols start

beginchar("a", d#, d#, 0);
  "a: Informator symbol ``pair of bishops''";
  pickup pencircle scaled thin;
  define_whole_pixels(d);

  % Points for lower square
  z1=(.1d,.5d);
  z2=(.1d,0);
  z3=(.6d,.5d);
  z4=(.6d,0);

  % Points for upper square
  z5=(.4d,.8d);
  z6=(.4d,.3d);
  z7=(.9d,.8d);
  z8=(.9d,.3d);

  draw z1--z2--z4--z3--z1;
  draw z5--z6--z8--z7--z5;
endchar;

beginchar("b", 1.2d#, d#, 0);
  "b: Informator symbol ``better is''";

  pickup pencircle scaled thin;
  define_whole_pixels(d);

  % Points for vertical line
  z1=(.1d,0);
  z2=(1.1d,0);

  draw z1..z2;
  draw halfcircle scaled d shifted (.6d,0);
endchar;

beginchar("c", .7d#, d#, 0);
  "c: Informator symbol ``white has the upper hand''";

  pickup pencircle scaled thin;
  define_whole_pixels(d);

  % Minus sign
  z1=(.1d,.2d);
  z2=(.6d,.2d);
  % Plus sign
  z3=(.1d,.55d);
  z4=(.6d,.55d);
  z5=(.35d,.8d);
  z6=(.35d,.3d);

  draw z1--z2;
  draw z3--z4;
  draw z5--z6;
endchar;

beginchar("d", .9d#, d#, 0);
  "d: Informator symbol ``double pawns''";

  pickup pencircle scaled thin;
  define_whole_pixels(d);

  draw fullcircle scaled .35d shifted (.45d,.125d);
  draw fullcircle scaled .35d shifted (.45d,.625d);
endchar;

beginchar("e", .7d#, d#, 0);
  "e: Informator symbol ``black has the upper hand''";

  pickup pencircle scaled thin;
  define_whole_pixels(d);

  % Minus sign
  z1=(.1d,.6d);
  z2=(.6d,.6d);
  % Plus sign
  z3=(.1d,.25d);
  z4=(.6d,.25d);
  z5=(.35d,.5d);
  z6=(.35d,0);

  draw z1--z2;
  draw z3--z4;
  draw z5--z6;
endchar;

beginchar("f", .7d#, d#, 0);
  "f: Informator symbol ``white stands slightly better''";

  pickup pencircle scaled thin;
  define_whole_pixels(d);

  % Equal sign
  z1=(.1d,.2d);
  z2=(.6d,.2d);
  z3=(.1d,.1d);
  z4=(.6d,.1d);
  % Plus sign
  z5=(.1d,.55d);
  z6=(.6d,.55d);
  z7=(.35d,.8d);
  z8=(.35d,.3d);

  draw z1--z2;
  draw z3--z4;
  draw z5--z6;
  draw z7--z8;
endchar;

beginchar("g", .7d#, d#, 0);
  "g: Informator symbol ``black stands slightly better''";

  pickup pencircle scaled thin;
  define_whole_pixels(d);

  % Equal sign
  z1=(.1d,.6d);
  z2=(.6d,.6d);
  z3=(.1d,.7d);
  z4=(.6d,.7d);
  % Plus sign
  z5=(.1d,.25d);
  z6=(.6d,.25d);
  z7=(.35d,.5d);
  z8=(.35d,0);

  draw z1--z2;
  draw z3--z4;
  draw z5--z6;
  draw z7--z8;
endchar;

beginchar("h", 1.3d#, d#, 0);
  "h: Informator symbol ``white has a decisive advantage''";

  pickup pencircle scaled thin;
  define_whole_pixels(d);

  % Plus sign
  z1=(.1d,.25d);
  z2=(.6d,.25d);
  z3=(.35d,.5d);
  z4=(.35d,0);
  % Minus sign
  z5=(.7d,.25d);
  z6=(1.2d,.25d);

  draw z1--z2;
  draw z3--z4;
  draw z5--z6;
endchar;

beginchar("i", 1.3d#, d#, 0);
  "i: Informator symbol ``black has a decisive advantage''";

  pickup pencircle scaled thin;
  define_whole_pixels(d);

  % Minus sign
  z1=(.1d,.25d);
  z2=(.6d,.25d);
  % Plus sign
  z3=(.7d,.25d);
  z4=(1.2d,.25d);
  z5=(.95d,.5d);
  z6=(.95d,0);

  draw z1--z2;
  draw z3--z4;
  draw z5--z6;
endchar;

beginchar("j", .7d#, d#, 0);
  "j: Informator symbol ``even''";

  pickup pencircle scaled thin;
  define_whole_pixels(d);

  z1=(.1d,.4d);
  z2=(.6d,.4d);
  z3=(.1d,.3d);
  z4=(.6d,.3d);
  draw z1--z2;
  draw z3--z4;
endchar;

beginchar("k", .7d#, d#, 0);
  "k: Informator symbol ``unclear''";

  pickup pencircle scaled thin;
  define_whole_pixels(d);

  z1=(.1d,.35d);
  z2=(.2d,.475d);
  z3=(.35d,.35d);
  z4=(.5d,.225d);
  z5=(.6d,.35d);
  z6=(.5d,.475d);
  z7=(.2d,.225d);

  draw z1..z2..z3..z4..z5..z6..z3..z7..cycle;
endchar;

beginchar("l", d#, d#, 0);
  "l: Informator symbol ``see''";

  pickup pencircle scaled thin;
  define_whole_pixels(d);

  z1=(.1d,.35d);
  z2=(.9d,.35d);
  draw z1--z2;
endchar;

beginchar("m", .9d#, d#, 0);
  "m: Informator symbol ``mate''";

  pickup pencircle scaled thin;
  define_whole_pixels(d);

  % Points for vertical lines
  z1=(.1d,.5d);
  z2=(.1d,.2d);
  z3=(.8d,.5d);
  z4=(.8d,.2d);

  % Points for horizontal lines
  z5=(.3d,.7d);
  z6=(.6d,.7d);
  z7=(.3d,0);
  z8=(.6d,0);

  draw z1..z3;
  draw z2..z4;
  draw z5..z7;
  draw z6..z8;
endchar;

beginchar("n", .7d#, d#, 0);
  "n: Informator symbol ``with compensation for the material''";

  pickup pencircle scaled thin;
  define_whole_pixels(d);

  % Infinity symbol
  z1=(.1d,.25d);
  z2=(.2d,.375d);
  z3=(.35d,.25d);
  z4=(.5d,.125d);
  z5=(.6d,.25d);
  z6=(.5d,.375d);
  z7=(.2d,.125d);
  % Equal sign
  z8=(.1d,.575d);
  z9=(.6d,.575d);
  z10=(.1d,.475d);
  z11=(.6d,.475d);

  draw z1..z2..z3..z4..z5..z6..z3..z7..cycle;
  draw z8--z9;
  draw z10--z11;
endchar;

beginchar("o", d#, d#, 0);
  "o: Informator symbol ``bishops of opposite color''";

  pickup pencircle scaled thin;
  define_whole_pixels(d);

  % Points for lower square
  z1=(.1d,.5d);
  z2=(.1d,0);
  z3=(.6d,.5d);
  z4=(.6d,0);

  % Points for upper square
  z5=(.4d,.8d);
  z6=(.4d,.3d);
  z7=(.9d,.8d);
  z8=(.9d,.3d);

  draw z1--z2--z4--z3--z1;
  fill z5--z6--z8--z7--cycle;
endchar;

beginchar("q", 1.25d#, d#, 0);
  "q: Informator symbol ``separated pawns''";

  pickup pencircle scaled thin;
  define_whole_pixels(d);

  draw fullcircle scaled .35d shifted (.275d,.4d);
  fill fullcircle scaled .1d shifted (.55d,.4d);
  fill fullcircle scaled .1d shifted (.7d,.4d);
  draw fullcircle scaled .35d shifted (.975d,.4d);
endchar;

beginchar("r", d#, d#, 0);
  "r: Informator symbol ``passed pawn''";

  pickup pencircle scaled thin;
  define_whole_pixels(d);

  z1=(.5d,.7d);
  z2=(.5d,.4d);
  draw fullcircle scaled .4d shifted (.5d,.2d);
  draw z1--z2;
  draw quartercircle rotated 270 scaled .2d shifted (.4d,.7d);
  draw quartercircle rotated 180 scaled .2d shifted (.6d,.7d);
endchar;

beginchar("s", d#, d#, 0);
  "s: Informator symbol ``bishops of the same color''";

  pickup pencircle scaled thin;
  define_whole_pixels(d);

  % Points for lower square
  z1=(.1d,.5d);
  z2=(.1d,0);
  z3=(.6d,.5d);
  z4=(.6d,0);

  % Points for upper square
  z5=(.4d,.8d);
  z6=(.4d,.3d);
  z7=(.9d,.8d);
  z8=(.9d,.3d);

  fill z1--z2--z4--z3--cycle;
  fill z5--z6--z8--z7--cycle;
endchar;

beginchar("t", d#, d#, 0);
  "t: Informator symbol ``development advantage''";

  pickup pencircle scaled thin;
  define_whole_pixels(d);

  % Arcus
  z1=(.8d,.65d);
  z2=(.5d,.8d);
  z3=(.1d,.4d);
  z4=(.5d,0);
  z5=(.9d,.4d);
  z6=(.85d,.55d);
  % Arrow
  z7=(.65d,.65d);
  z8=(.8d,.8d);

  draw z1..z2..z3..z4..z5..z6;
  draw z7--z1;
  draw z8--z1;
endchar;

beginchar("u", d#, d#, 0);
  "u: Informator symbol ``united pawns''";

  pickup pencircle scaled thin;
  define_whole_pixels(d);

  draw fullcircle scaled .35d shifted (.275d,.4d);
  draw fullcircle scaled .35d shifted (.725d,.4d);
endchar;

beginchar("v", d#, d#, 0);
  "v: Informator symbol ``without''";

  pickup pencircle scaled thin;
  define_whole_pixels(d);

  z1=(.1d,.8d);
  z2=(.1d,0);
  z3=(.9d,0);
  draw z1--z2--z3;
endchar;

beginchar("w", d#, d#, 0);
  "w: Informator symbol ``with''";

  pickup pencircle scaled thin;
  define_whole_pixels(d);

  z1=(.1d,0);
  z2=(.9d,0);
  z3=(.9d,.8d);
  draw z1--z2--z3;
endchar;

beginchar("A", .9d#, d#, 0);
  "A: Informator symbol ``with attack''";

  pickup pencircle scaled thin;
  define_whole_pixels(d);

  z1=(.1d,.4d);
  z2=(.7d,.4d);

  draw z1--z2;
  draw quartercircle rotated 180 scaled .2d shifted (.7d,.5d);
  draw quartercircle rotated 90 scaled .2d shifted (.7d,.3d);
endchar;

beginchar("C", .6d#, d#, 0);
  "C: Informator symbol ``with initiative''";

  pickup pencircle scaled thin;
  define_whole_pixels(d);

  z1=(.3d,.7d);
  z2=(.3d,.1d);

  draw z1--z2;
  draw quartercircle rotated 270 scaled .2d shifted (.2d,.7d);
  draw quartercircle rotated 180 scaled .2d shifted (.4d,.7d);
endchar;

beginchar("D", d#, d#, 0);
  "D: Informator symbol ``zugzwang''";

  pickup pencircle scaled thin;
  define_whole_pixels(d);

  draw fullcircle scaled .8d shifted (.5d,.4d);
  fill fullcircle scaled .15d shifted (.5d,.4d);
endchar;

beginchar("E", d#, d#, 0);
  "E: Informator symbol ``with the idea''";

  pickup pencircle scaled thin;
  define_whole_pixels(d);

  z1=(.1d,0);
  z2=(.9d,0);
  z3=(.5d,.8d);

  draw z1--z2--z3--z1;
endchar;

beginchar("F", d#, d#, 0);
  "F: Informator symbol ``only move''";

  pickup pencircle scaled thin;
  define_whole_pixels(d);

  z1=(.1d,0);
  z2=(.9d,0);
  z3=(.9d,.8d);
  z4=(.1d,.8d);

  draw z1--z2--z3--z4--z1;
endchar;

beginchar("G", d#, d#, 0);
  "G: Informator symbol ``diagonal''";

  pickup pencircle scaled thin;
  define_whole_pixels(d);

  z1=(.1d,.15d);
  z2=(.75d,.8d);
  z3=(.25d,0);
  z4=(.9d,.65d);
  z5=(.55d,.8d);
  z6=(.9d,.45d);
  z7=(.9d,.8d);

  draw z1--z2;
  draw z3--z4;
  draw z5--z7--z6;
endchar;

beginchar("H", d#, d#, 0);
  "H: Informator symbol ``file''";

  pickup pencircle scaled thin;
  define_whole_pixels(d);

  z1=(.2d,.5d);
  z2=(.8d,.5d);
  z3=(.2d,.3d);
  z4=(.8d,.3d);
  z5=(.3d,.6d);
  z6=(.1d,.4d);
  z7=(.3d,.2d);
  z8=(.7d,.6d);
  z9=(.9d,.4d);
  z10=(.7d,.2d);

  draw z1--z2;
  draw z3--z4;
  draw z5--z6--z7;
  draw z8--z9--z10;
endchar;

beginchar("I", d#, d#, 0);
  "I: Informator symbol ``centre''";

  pickup pencircle scaled thin;
  define_whole_pixels(d);

  % Outer square
  z1=(.1d,0);
  z2=(.9d,0);
  z3=(.9d,.8d);
  z4=(.1d,.8d);
  % Cross
  z5=(.2d,.4d);
  z6=(.8d,.4d);
  z7=(.5d,.7d);
  z8=(.5d,.1d);

  draw z1--z2--z3--z4--z1;
  draw z5--z6;
  draw z7--z8;
endchar;

beginchar("J", d#, d#, 0);
  "J: Informator symbol ``weak point''";

  pickup pencircle scaled thin;
  define_whole_pixels(d);

  z1=(.1d,0);
  z2=(.9d,0);
  z3=(.9d,.8d);
  z4=(.1d,.8d);

  draw z1--z3;
  draw z2--z4;
endchar;

beginchar("L", d#, d#, 0);
  "L: Informator symbol ``ending''";

  pickup pencircle scaled thin;
  define_whole_pixels(d);

  z1=(.1d,0);
  z2=(.9d,0);
  z3=(.5d,0);
  z4=(.5d,.8d);

  draw z1--z2;
  draw z3--z4;
endchar;

beginchar("M", .8d#, d#, 0);
  "M: Informator symbol ``queen's side''";

  pickup pencircle scaled thin;
  define_whole_pixels(d);

  z1=(.4d,.7d);
  z2=(.1d,.4d);
  z3=(.4d,.1d);
  z4=(.6d,.7d);
  z5=(.3d,.4d);
  z6=(.6d,.1d);

  draw z1--z2--z3;
  draw z4--z5--z6;
endchar;

beginchar("O", .8d#, d#, 0);
  "O: Informator symbol ``king's side''";

  pickup pencircle scaled thin;
  define_whole_pixels(d);

  z1=(.4d,.7d);
  z2=(.7d,.4d);
  z3=(.4d,.1d);
  z4=(.2d,.7d);
  z5=(.5d,.4d);
  z6=(.2d,.1d);

  draw z1--z2--z3;
  draw z4--z5--z6;
endchar;

beginchar("P", .4d#, d#, 0);
  "P: Informator symbol ``etc''";

  pickup pencircle scaled thin;
  define_whole_pixels(d);

  z1=(.1d,.8d);
  z2=(.1d,0);
  z3=(.3d,.8d);
  z4=(.3d,0);

  draw z1--z2;
  draw z3--z4;
endchar;

beginchar("S", .8d#, d#, 0);
  "S: Informator symbol ``advantage in number of pawns''";

  pickup pencircle scaled thin;
  define_whole_pixels(d);

  z1=(.1d,.8d);
  z2=(.7d,.4d);
  z3=(.1d,0);

  draw z1--z2--z3;
endchar;

beginchar("T", d#, d#, 0);
  "T: Informator symbol ``time''";

  pickup pencircle scaled thin;
  define_whole_pixels(d);

  % Cross
  z1=(.2d,.4d);
  z2=(.8d,.4d);
  z3=(.5d,.7d);
  z4=(.5d,.1d);

  draw z1--z2;
  draw z3--z4;
  draw fullcircle scaled .8d shifted (.5d,.4d);
endchar;

beginchar("U", d#, d#, 0);
  "U: Informator symbol ``greater board room''";

  pickup pencircle scaled thin;
  define_whole_pixels(d);

  draw fullcircle scaled .8d shifted (.5d,.4d);
endchar;

beginchar("V", .8d#, d#, 0);
  "V: Informator symbol ``with counter-play''";

  pickup pencircle scaled thin;
  define_whole_pixels(d);

  z1=(.1d,.5d);
  z2=(.7d,.5d);
  z3=(.1d,.3d);
  z4=(.7d,.3d);

  draw z1--z2;
  draw z3--z4;
  draw quartercircle rotated 270 scaled .2d shifted (.1d,.6d);
  draw quartercircle scaled .2d shifted (.1d,.4d);
  draw quartercircle rotated 180 scaled .2d shifted (.7d,.4d);
  draw quartercircle rotated 90 scaled .2d shifted (.7d,.2d);
endchar;