summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/fonts/source/public/skak
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2006-01-09 23:38:21 +0000
committerKarl Berry <karl@freefriends.org>2006-01-09 23:38:21 +0000
commit215012a8d684889983ec2c0629e1c704e6853d9c (patch)
treeebf1271bd71869069824935ae8a5678745bf8bce /Master/texmf-dist/fonts/source/public/skak
parent1af3d19d6dbcbf309667d9cb4aa3cdda914914a9 (diff)
trunk/Master/texmf-dist/fonts/source
git-svn-id: svn://tug.org/texlive/trunk@101 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/fonts/source/public/skak')
-rw-r--r--Master/texmf-dist/fonts/source/public/skak/skak10.mf27
-rw-r--r--Master/texmf-dist/fonts/source/public/skak/skak15.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/skak/skak20.mf28
-rw-r--r--Master/texmf-dist/fonts/source/public/skak/skak30.mf28
-rw-r--r--Master/texmf-dist/fonts/source/public/skak/skakbase.mf337
-rw-r--r--Master/texmf-dist/fonts/source/public/skak/skakbrikker.mf197
-rw-r--r--Master/texmf-dist/fonts/source/public/skak/skakf10.mf65
-rw-r--r--Master/texmf-dist/fonts/source/public/skak/skakf10b.mf65
-rw-r--r--Master/texmf-dist/fonts/source/public/skak/skakinf.mf739
9 files changed, 1516 insertions, 0 deletions
diff --git a/Master/texmf-dist/fonts/source/public/skak/skak10.mf b/Master/texmf-dist/fonts/source/public/skak/skak10.mf
new file mode 100644
index 00000000000..2585341e9a7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/skak/skak10.mf
@@ -0,0 +1,27 @@
+% This is `chess10.mf' version 1.0 as of 8/90
+% METAfounded by Piet Tutelaers (internet: rcpt@urc.tue.nl)
+
+% Parameters needed for a 10 points chess font.
+% A complete chess diagram is 80 X 80 points.
+
+mode_setup;
+input skakbase;
+
+font_size 10pt#;
+
+M=1; % number of squares
+d#:=10pt#/M; % size per square
+lift=0;
+figshift:=0;
+u#:=d#;
+fine#:=1/100*d#; thin#:=1/90*d#; thick#:=1/36*d#; border#:=1/20*d#;
+define_blacker_pixels(fine, thin, thick, border);
+pickup pencircle scaled thin; hairline_pen:=savepen ;
+pickup pencircle scaled fine; fine_pen:=savepen ; % for drawing dark squares
+pickup pencircle scaled border; border_pen:=savepen ; % for border ofboard
+pickup pencircle scaled thin; thin_pen:=savepen ; % for drawing pieces
+pickup pencircle scaled thick; thick_pen:=savepen; % for drawing inside pieces
+light=0; dark=1; white=0; black=1;
+
+input skakbrikker;
+end;
diff --git a/Master/texmf-dist/fonts/source/public/skak/skak15.mf b/Master/texmf-dist/fonts/source/public/skak/skak15.mf
new file mode 100644
index 00000000000..89f91ead440
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/skak/skak15.mf
@@ -0,0 +1,30 @@
+% This is `chess15.mf' version 1.0 as of 8/90
+% METAfounded by Piet Tutelaers (uucp: rcpt@urc.tue.nl)
+
+% Parameters needed for a 15 points chess font.
+% A complete chess diagram is 120 X 120 points.
+
+mode_setup;
+input skakbase;
+
+font_size 15pt#;
+
+M=1; % number of squares
+d#:=15pt#/M; % size per square
+lift=0;
+figshift:=0;
+u#:=d#;
+fine#:=1/100*d#;
+thin#:=1/90*d#;
+thick#:=1/36*d#;
+border#:=1/20*d#;
+define_blacker_pixels(fine, thin, thick, border);
+pickup pencircle scaled thin; hairline_pen:=savepen ; %for drawing king's cross
+pickup pencircle scaled fine; fine_pen:=savepen ; % for drawing dark squares
+pickup pencircle scaled border; border_pen:=savepen ; % for border ofboard
+pickup pencircle scaled thin; thin_pen:=savepen ; % for drawing pieces
+pickup pencircle scaled thick; thick_pen:=savepen; % for drawing inside pieces
+light=0; dark=1; white=0; black=1;
+
+input skakbrikker;
+end;
diff --git a/Master/texmf-dist/fonts/source/public/skak/skak20.mf b/Master/texmf-dist/fonts/source/public/skak/skak20.mf
new file mode 100644
index 00000000000..12f4a4d5247
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/skak/skak20.mf
@@ -0,0 +1,28 @@
+% This is `chess20.mf' version 1.0 as of 8/90
+% METAfounded by Piet Tutelaers (internet: rcpt@urc.tue.nl)
+
+% Parameters needed for a 20 points chess font.
+% A complete chess diagram is 160 X 160 points.
+
+mode_setup;
+input skakbase;
+
+font_size 20pt#;
+
+M=1; % number of squares
+d#:=20pt#/M; % size per square
+lift=0;
+figshift:=0;
+u#:=d#;
+fine#:=1/100*d#; thin#:=1/90*d#; thick#:=1/36*d#; border#:=1/20*d#;
+%fine#:=1/100*d#; thin#:=1/90*d#; thick#:=1/25*d#; border#:=1/20*d#;
+define_blacker_pixels(fine, thin, thick, border);
+pickup pencircle scaled thin; hairline_pen:=savepen ; %for drawing king's cross
+pickup pencircle scaled fine; fine_pen:=savepen ; % for drawing dark squares
+pickup pencircle scaled border; border_pen:=savepen ; % for border ofboard
+pickup pencircle scaled thin; thin_pen:=savepen ; % for drawing pieces
+pickup pencircle scaled thick; thick_pen:=savepen; % for drawing inside pieces
+light=0; dark=1; white=0; black=1;
+
+input skakbrikker;
+end;
diff --git a/Master/texmf-dist/fonts/source/public/skak/skak30.mf b/Master/texmf-dist/fonts/source/public/skak/skak30.mf
new file mode 100644
index 00000000000..26c34454475
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/skak/skak30.mf
@@ -0,0 +1,28 @@
+% This is `skak30.mf' version 1.0 as of 7/99
+% based on original work by Piet Tutelaers
+% Modified by Torben Hoffmann: smaller pieces and nicer looking knight
+
+% Parameters needed for a 30 points chess font.
+% A complete chess diagram is 240 X 240 points.
+
+mode_setup;
+input skakbase;
+
+font_size 30pt#;
+
+M=1; % number of squares
+d#:=30pt#/M; % size per square
+lift=0;
+figshift:=0;
+u#:=d#;
+fine#:=1/100*d#; thin#:=1/90*d#; thick#:=1/36*d#; border#:=1/20*d#;
+define_blacker_pixels(fine, thin, thick, border);
+pickup pencircle scaled thin; hairline_pen:=savepen ; %for drawing king's cross
+pickup pencircle scaled fine; fine_pen:=savepen ; % for drawing dark squares
+pickup pencircle scaled border; border_pen:=savepen ; % for border ofboard
+pickup pencircle scaled thin; thin_pen:=savepen ; % for drawing pieces
+pickup pencircle scaled thick; thick_pen:=savepen; % for drawing inside pieces
+light=0; dark=1; white=0; black=1;
+
+input skakbrikker;
+end;
diff --git a/Master/texmf-dist/fonts/source/public/skak/skakbase.mf b/Master/texmf-dist/fonts/source/public/skak/skakbase.mf
new file mode 100644
index 00000000000..c01a63eca99
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/skak/skakbase.mf
@@ -0,0 +1,337 @@
+% This is `skakbase.mf' version 1.0 as of 6/99
+% based on original work by Piet Tutelaers
+% Modified by Torben Hoffmann: smaller pieces and nicer looking knight
+
+% In this file all pieces are defined.
+% The points defining a piece are all in the unitsquare
+% (0,0)--(0,1)--(1,1)--cycle.
+
+
+def g(expr x) = (.5+(x-.5)*.87) enddef;
+def f(expr x,y) = (g(x)+figshift,g(y)+lift) enddef;
+
+def dark_square(expr D) =
+ clearit; L:=min(D/4, 9); delta:=1/L;
+ pickup fine_pen;
+ for i=1 upto min(D/4,9):
+ draw (0,delta*i*D)--(D-delta*i*D,D);
+ draw (delta*i*D,0)--(D,D-delta*i*D);
+ endfor;
+ draw (0,0)--(D,D);
+ enddef;
+
+def erase_square(expr D, col, row) =
+ currentpicture:=board;
+ erase fill (0,0)--(0,1)--(1,1)--(1,0)--cycle scaled D shifted(col*D, row*D);
+ board:=currentpicture;
+ enddef;
+
+def empty_board(expr D) =
+ picture board; path border;
+ border = ((0,0)--(1,0)--(1,1)--(0,1)--cycle);
+ dark_square(D); board:=nullpicture;
+ for i=0 upto M-1:
+ for j=0 upto M-1:
+ if not odd(i+j): addto board also currentpicture shifted (D*i,D*j) fi;
+ endfor
+ endfor;
+ clearit;
+ pickup border_pen;
+ draw border scaled (M*D);
+ addto board also currentpicture;
+ currentpicture:=board;
+ enddef;
+
+% def reflect(text t) =
+% forsuffixes $=t: z$'=z$ reflectedabout (z1,z2); endfor;
+% enddef;
+def reflect(text t) =
+ forsuffixes $=t: x$'=1-x$+2figshift; y$'=y$; endfor;
+ enddef;
+
+def opr(suffix $) = (g(x$+thick#/d#), y$) enddef; % one point right
+def opl(suffix $) = (g(x$-thick#/d#), y$) enddef; % one point left
+def opu(suffix $) = (x$, g(y$+thick#/d#)) enddef; % one point up
+def opd(suffix $) = (x$, g(y$-thick#/d#)) enddef; % one point down
+def opur(suffix $) = f(x$+thick#/d#,y$+thick#/d#) enddef;
+ % one point up and right
+def opul(suffix $) = f(x$-thick#/d#,y$+thick#/d#) enddef;
+ % one point up and left
+
+
+
+vardef K(expr D, col, row) =
+ clearxy;
+ path cross_bar, crown, crown_top, crown_left, crown_right, crown_lower,
+ crown_top_inner, crown_left_inner, crown_right_inner;
+ def moved = scaled D shifted (col*D, row*D) enddef;
+
+ pickup hairline_pen;
+% draw cross
+ z1=f(.5,.96); z2=f(.5,.8); z11=f(.42,.9); reflect(11);
+% cutdraw (z1--z2) moved; cutdraw (z11--z11') moved;
+ draw (z1--z2) moved; draw (z11--z11') moved;
+% top part of crown
+ z3=f(.5,.38); z21=f(.475,.5); z22=f(.45,.575); z23=f(.45,.775);
+ reflect(21,22,23);
+ crown_top= ((z3..z21..z22..z23..z2..z23'..z22'..z21'..z3) & cycle);
+% left and right part
+ z31=z21; z32=z22; z33=f(.32,.67); z34=f(.13,.69); z35=f(.07,.55);
+ z36=f(.13,.45); z37=f(.2,.34);
+ reflect(31, 32, 33, 34, 35, 36, 37);
+ crown_left=(z3..z31..z33..z34..z35..z36..z37);
+ crown_right=(z37'..z36'..z35'..z34'..z33'..z31'..z3);
+% lower part of the crown
+% z6=f(.5,.095); z61=f(.27,.12); z62=f(.2,.15); z63=f(.21,.23);
+ z6=f(.5,.095); z61=(x62,.09); z62=f(.2,.15); z63=f(.21,.23);
+ reflect(61, 62, 63);
+% crown_lower= ((z37--z63) & (z63--z62) & (z62..z61..z6..z61'..z62') &
+ crown_lower= ((z37--z63) & (z63--z62) & (z62..controls z61 and z61'..z62') &
+ (z62'--z63') & (z63'--z37') & (z37'..z3..z37) & cycle);
+% draw contour of crown
+ pickup thin_pen;
+ crown= crown_left & z37..z3..z37' & crown_right & cycle;
+ if background=dark: erase fill crown moved;
+ erase fill crown_top moved;
+ erase fill crown_lower moved;fi;
+ draw crown moved; draw crown_top moved;
+ if color=black:
+ z121=f(.5,.5); z123=f(.45,.675); z102=f(.5,.77);
+ reflect(123);
+ crown_top_inner = (z121{curl 0}..z123..z102..z123'..{curl 0}z121 & cycle);
+ z131=f(.45,.5); z133=f(.32,.64); z134=f(.13,.66); z135=f(.10,.55);
+ z136=f(.16,.45); z137=f(.22,.36); z103=f(.475,.4);
+ crown_left_inner= ((z103..z131..z133..z134..z135..z136..z137)
+ & (z137..{right}z103) & cycle);
+ crown_right_inner=crown_left_inner reflectedabout (z1,z2);
+ fill crown_top_inner moved;
+ fill crown_left_inner moved;
+ fill crown_right_inner moved;
+ fill crown_lower moved;
+ else: draw crown_lower moved;
+ fi;
+% draw inner parts
+ z4=f(.5,.28); z5=f(.5,.21);
+ if color=white:
+ draw (z37..z3..z37') moved;
+ draw (z63..z4..z63') moved;
+ draw (z62..z5..z62') moved;
+ else: pickup thick_pen;
+ erase draw (opr(37)..z3..opl(37')) moved;
+ erase draw (opr(63)..z4..opl(63')) moved;
+ erase draw (opr(62)..z5..opl(62')) moved;
+ fi;
+ enddef;
+
+vardef Q(expr D, col, row) =
+ clearxy;
+ path crown_top, crown, crown_lower;
+ def moved = scaled D shifted (col*D, row*D) enddef;
+
+ pickup thin_pen;
+% top part of crown
+ z1=f(.5,.92); z2=f(.5,.5); z11=f(.42,.46); z12=f(.275,.88);
+ z13=f(.25,.44); z14=f(.075,.8); z15=f(.125,.4);
+ reflect(11,12,13,14,15);
+ crown_top = (z15'--z14'--z13'--z12'--z11'--z1--z11--z12--z13--z14--z15);
+% lower part of the crown
+% z6=f(.5,.0775); z61=f(.25,.1); z62=f(.18,.125); z63=f(.22,y62+1/3(y15-y62));
+ z6=f(.5,.0775); z61=f(.18,0.05); z62=f(.18,.125); z63=(g(.22)+figshift,y62+1/3(y15-y62));
+ z64=(g(.19)+figshift,y62+2/3(y15-y62)); z65=(g(.15)+figshift,y64+1/3(y15-y64));
+ reflect(61,62,63,64,65);
+% crown_lower= ((z15--z64) & (z64--z63) & (z63--z62) &
+ crown_lower= ((z15..z65..z64) & (z64..z63..z62) &
+ (z62..controls z61 and z61'..z62') &
+ (z62'..z63'..z64') & (z64'..z65'..z15'));
+% draw contour of crown
+ crown= (crown_top & crown_lower & cycle);
+ if background=dark:
+ if color=white: erase fill crown moved; fi; fi;
+ if color=white: draw crown moved;
+ forsuffixes $:=1,12,12',14,14':
+ erase fill (fullcircle scaled .1 shifted z$) moved;
+ draw (fullcircle scaled .1 shifted z$) moved; endfor;
+ else: fill crown moved;
+ forsuffixes $:=1,12,12',14,14':
+ fill (fullcircle scaled .1 shifted z$) moved; endfor; fi;
+% draw inner parts
+ z3=(.5+figshift,y5+(y64-y62)); z4=(.5+figshift,y5+(y63-y62)); z5=f(.5,.17);
+ z67=(x62,y62+.7(y62-y61));
+ reflect(67);
+ if color=white: draw (z64..z3..z64') moved; draw (z63..z4..z63') moved;
+% draw (z62..z5..z62') moved;
+ draw (z62..controls z67 and z67'..z62') moved;
+ z21=z11; z22=f(.325,.475); z23=z13; z24=f(.175,.44); z25=z15;
+ reflect(21,22,23,24,25);
+ draw ((z2..z21..z22) & (z22..z23..z24) & (z24--z25)) moved;
+ draw ((z2..z21'..z22') & (z22'..z23'..z24') & (z24'--z25')) moved;
+ else: pickup thick_pen;
+ erase draw (opr(64)..z3..opl(64')) moved;
+ erase draw (opr(63)..z4..opl(63')) moved;
+ z72=f(.25,.14); z73=(x72+0.08,y72+.9(y67-y62));
+ reflect(72,73);
+% erase draw (opr(62)..z5..opl(62')) moved;
+ erase draw (z72..controls z73 and z73'..z72') moved;
+ fi;
+ enddef;
+
+
+vardef N(expr D, col, row) =
+ clearxy;
+ path knight, ear, eye, nose, mouth, neck;
+ def moved = scaled D shifted (col*D, row*D) enddef;
+
+ pickup thin_pen;
+% the knight's contour
+ z1=f(.5,.82); z2=f(.5,.075); z11=f(.45,.93); z12=f(.375,.85);
+ z13=f(.25,.925);
+ z14=f(.26,.8); z15=f(.22,.75); z16=f(.18,.7); z17=f(.18,.66); z18=f(.07,.42);
+ z19=f(.07,.36); z20=f(.14,.3); z21=f(.17,.3); z22=f(.175,.275);
+ z23=f(.225,.28);
+ z24=f(.29,.38); z25=f(.41,.46); z26=f(.49,.51); z27=f(.435,.295);
+% z28=f(.32,.165);
+% z29=(.31,y2); z30=(.93,y2); z31=(.87,.5); z32=(.7,.78);
+ z28=f(.34,.18);
+ z29=(g(.33)+figshift,y2); z30=(g(.92)+figshift,y2); z31=f(.85,.5); z32=f(.73,.72);
+ knight = ((z1--z11--z12--z13--z14) &
+ (z14..z15..z16..z17..z18..z19..z20..z21) &
+ (z21..z22..z23..z24..z25..z26) &
+ (z26..z27..z28..z29) & (z29--z30) &
+ (z30..z31..z32..z1) &cycle);
+% draw contour of knight
+ if color=white: erase fill knight moved;
+ draw knight moved;
+ else: fill knight moved; fi;
+% draw inner parts
+ z4=f(.22,.62); z41=f(.25,.67); z42=f(.29,.705); z43=f(.31,.7); z44=f(.3,.68);
+ eye = (z4..z41..z42..z43 & z43..z44..z4 & cycle);
+ z5=f(.1,.36); z51=f(.1,.39); z52=f(.135,.43); z53=f(.15,.4); z54=f(.13,.38);
+ nose = (z5..z51..z52..z53..z54..z5 &cycle);
+ if color=white: z21'=f(.2,.34); draw (z21'--z21) moved; %mouth
+ z26'=f(.54,.63); draw (z26'..z26{z24-z26}) moved; %neck
+ draw (z12--z14) moved; % ear
+ fill eye moved; fill nose moved;
+ else: erase fill eye moved; erase fill nose moved; fi;
+% z30'=z30 + f(-thick#/d#,thick#/d#); pickup thick_pen
+ z30'=opul(30); pickup thick_pen
+ erase draw (.4[opd(1),z1]..opd(32)..1/2[opl(31),z31]..1/2[z30',z30]) moved; % mane
+ enddef;
+
+vardef B(expr D, col, row) =
+ clearxy;
+ path top, hat, brim, mitre, stole;
+ def moved = scaled D shifted (col*D, row*D) enddef;
+
+ pickup thin_pen;
+% the top circle
+ z1=f(.5,.85); z2=f(.5,.8);
+ top = (fullcircle scaled .1 shifted z1);
+ if color=white: erase fill top moved; draw top moved;
+ else: fill top moved; fi;
+% the hat
+ z3=f(.5,.43); z21=f(.27,.57); z31=f(.35,.4); reflect(21,31);
+ hat = (z31'..z21'..z2{(-1,1)}) & (z2{(-1,-1)}..z21..z31);
+% the brim
+ z4=f(.5,.33); z5=f(.5,.23);
+ z41=f(.32,.28); reflect(41);
+ brim = ((z31--z41) & (z41..z5..z41') & (z41'--z31'));
+% the stole
+ z6=f(.5,.15); z7=f(.5,.3); z61=f(.44,.12); z62=f(.25,.1); z63=f(.15,.05);
+ z64=f(.09,.11); z65=f(.25,.18); z66=f(.44,.2);
+ reflect(61,62,63,64,65,66);
+ stole = ((z7..z66..z65..z64) & (z64--z63) & (z63..z62..z61..z6) &
+ (z6..z61'..z62'..z63') & (z63'--z64') & (z64'..z65'..z66'..z7) &cycle);
+% the mitre
+ mitre = (hat & brim & cycle);
+ if background=dark:
+ if color=white: erase fill mitre moved;
+ erase fill stole moved; fi; fi;
+ if color=black: fill mitre moved; fill stole moved;
+ else: draw mitre moved; draw stole moved;
+ erase fill mitre moved; draw mitre moved; fi;
+
+% inner parts of mitre
+ center:=g(.59); width:=g(.065);
+ if color=white: draw (z31..z3..z31') moved; draw (z41..z4..z41') moved;
+ draw (f(.5,center-width)--f(.5,center+width)) moved;
+ draw (f(.5-width,center)--f(.5+width,center)) moved;
+ else: pickup thick_pen;
+ erase cutdraw (opr(31)..z3..opl(31')) moved;
+ erase cutdraw (opr(41)..z4..opl(41')) moved;
+ erase cutdraw (f(.5,center-width)--f(.5,center+width)) moved;
+ erase cutdraw (f(.5-width,center)--f(.5+width,center)) moved;
+ fi;
+ enddef;
+
+vardef p(expr D, col, row) =
+ clearxy;
+ path pawn;
+ def moved = scaled D shifted (col*D, row*D) enddef;
+
+ pickup thin_pen;
+% the pawn's contour
+% z1=(.5,.9); z2=(.5,.1); z11=(.41,.85); z12=(.46,.73); z13=(.32,.6);
+% z14=(.41,.46); z15=(.3,.4); z16=(.2,.1);
+
+ z1=f(.5,.9);
+ z2=f(.5,.1); z11=f(.41,.85); z12=f(.46,.73); z13=f(.32,.6);
+ z14=f(.41,.46); z15=f(.3,.4); z16=f(.2,.1);
+ reflect(11,12,13,14,15,16);
+ pawn = ((z12'..z11'..z1..z11..z12) &
+ (z12..z13..z14) &
+ (z14..z15..z16) &
+ (z16--z16') &
+ (z16'..z15'..z14') &
+ (z14'..z13'..z12') & cycle);
+
+% draw contour of pawn
+ if background=dark:
+ if color=white: erase fill pawn moved; fi; fi;
+ if color=black: fill pawn moved;
+ else: draw pawn moved; fi;
+ enddef;
+
+% the rook should be shrunk slightly less than the other pieces
+%def g(expr x) = .5+(x-.5)*.9 enddef;
+ def rookscale(expr x) = .5+(x-.5)*.95 enddef;
+ def j(expr x,y) = (rookscale(x)+figshift,rookscale(y)) enddef;
+
+
+vardef R(expr D, col, row) =
+ clearxy;
+ path rook;
+ def moved = scaled D shifted (col*D, row*D) enddef;
+
+ pickup thin_pen;
+% top part of rook
+ z1=j(.5,.86); y15=y14=y11=y1; x15=x16=rookscale(.21)+figshift;
+ x19=x20=rookscale(.225)+figshift; y13=y12=rookscale(.8);
+ y16=rookscale(.725); y17=rookscale(.65); y18=rookscale(.35); y19=rookscale(.26); y20=y21=rookscale(.175); y22=rookscale(.1);
+ x22=x21=rookscale(.175)+figshift; x17=x18=rookscale(.31)+figshift;
+ x13=x14=rookscale(.325)+figshift; x11=x12=rookscale(.43)+figshift;
+ z2=j(.5,.1);
+ reflect(11,12,13,14,15,16,17,18,19,20,21,22);
+ rook = (z11--z12--z13--z14--z15--z16--z17--z18--z19--z20--z21--z22--z22'
+ --z21'--z20'--z19'--z18'--z17'--z16'--z15'--z14'--z13'--z12'--z11'--cycle);
+% draw contour of rook
+ if background=dark:
+ if color=white: erase fill rook moved; fi; fi;
+ if color=white: draw rook moved; else: fill rook moved; fi;
+% draw inner parts
+ if color=white: draw (z16--z16') moved; draw (z17--z17') moved;
+ draw (z18--z18') moved; draw (z19--z19') moved;
+ draw (z20--z20') moved;
+ else: pickup thick_pen;
+ erase draw (opr(16)--opl(16')) moved;
+ erase draw (opr(17)--opl(17')) moved;
+ erase draw (opr(18)--opl(18')) moved;
+ erase draw (opr(19)--opl(19')) moved;
+ erase draw (opr(20)--opl(20')) moved; fi;
+ enddef;
+
+
+
+
+
+
+
diff --git a/Master/texmf-dist/fonts/source/public/skak/skakbrikker.mf b/Master/texmf-dist/fonts/source/public/skak/skakbrikker.mf
new file mode 100644
index 00000000000..31ccf6d6770
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/skak/skakbrikker.mf
@@ -0,0 +1,197 @@
+% This is `chesspieces.mf' version 1.0 as of 8/90
+% METAfounded by Piet Tutelaers (internet: rcpt@urc.tue.nl)
+
+% this file generates the final chess font
+
+background:=light; color:=white;
+
+beginchar("0", d#, d#, 0); "0: light square";
+endchar;
+
+background:=dark;
+
+beginchar("Z", d#, d#, 0); "Z: dark square";
+ define_whole_pixels(d);
+ dark_square(d);
+endchar;
+
+background:=light; color:=white;
+
+beginchar("K", d#, d#, 0); "K: white king on light square";
+ define_whole_pixels(d);
+ K(d, 0, 0);
+endchar;
+
+color:=black;
+
+beginchar("k", d#, d#, 0); "k: black king on light square";
+ define_whole_pixels(d);
+ K(d, 0, 0);
+endchar;
+
+background:=dark; color:=white;
+
+beginchar("J", d#, d#, 0); "J: white king on dark square";
+ define_whole_pixels(d);
+ dark_square(d);
+ K(d, 0, 0);
+endchar;
+
+color:=black;
+
+beginchar("j", d#, d#, 0); "j: black king on dark square";
+ define_whole_pixels(d);
+ dark_square(d);
+ K(d, 0, 0);
+endchar;
+
+background:=light; color:=white;
+
+beginchar("Q", d#, d#, 0); "Q: white queen on light square";
+ define_whole_pixels(d);
+ Q(d, 0, 0);
+endchar;
+
+color:=black;
+
+beginchar("q", d#, d#, 0); "q: black queen on light square";
+ define_whole_pixels(d);
+ Q(d, 0, 0);
+endchar;
+
+background:=dark; color:=white;
+
+beginchar("L", d#, d#, 0); "L: white queen on dark square";
+ define_whole_pixels(d);
+ dark_square(d);
+ Q(d, 0, 0);
+endchar;
+
+color:=black;
+
+beginchar("l", d#, d#, 0); "l: black queen on dark square";
+ define_whole_pixels(d);
+ dark_square(d);
+ Q(d, 0, 0);
+endchar;
+
+background:=light; color:=white;
+
+beginchar("R", d#, d#, 0); "R: white rook on light square";
+ define_whole_pixels(d);
+ R(d, 0, 0);
+endchar;
+
+color:=black;
+
+beginchar("r", d#, d#, 0); "r: black rook on light square";
+ define_whole_pixels(d);
+ R(d, 0, 0);
+endchar;
+
+background:=dark; color:=white;
+
+beginchar("S", d#, d#, 0); "S: white rook on dark square";
+ define_whole_pixels(d);
+ dark_square(d);
+ R(d, 0, 0);
+endchar;
+
+color:=black;
+
+beginchar("s", d#, d#, 0); "s: black rook on dark square";
+ define_whole_pixels(d);
+ dark_square(d);
+ R(d, 0, 0);
+endchar;
+
+background:=light; color:=white;
+
+beginchar("B", d#, d#, 0); "B: white bishop on light square";
+ define_whole_pixels(d);
+ B(d, 0, 0);
+endchar;
+
+color:=black;
+
+beginchar("b", d#, d#, 0); "b: black bishop on light square";
+ define_whole_pixels(d);
+ B(d, 0, 0);
+endchar;
+
+background:=dark; color:=white;
+
+beginchar("A", d#, d#, 0); "A: white bishop on dark square";
+ define_whole_pixels(d);
+ dark_square(d);
+ B(d, 0, 0);
+endchar;
+
+color:=black;
+
+beginchar("a", d#, d#, 0); "a: black bishop on dark square";
+ define_whole_pixels(d);
+ dark_square(d);
+ B(d, 0, 0);
+endchar;
+
+background:=light; color:=white;
+
+beginchar("N", d#, d#, 0); "N: white knight on light square";
+ define_whole_pixels(d);
+ N(d, 0, 0);
+endchar;
+
+color:=black;
+
+beginchar("n", d#, d#, 0); "n: black knight on light square";
+ define_whole_pixels(d);
+ N(d, 0, 0);
+endchar;
+
+background:=dark; color:=white;
+
+beginchar("M", d#, d#, 0); "M: white knight on dark square";
+ define_whole_pixels(d);
+ dark_square(d);
+ N(d, 0, 0);
+endchar;
+
+color:=black;
+
+beginchar("m", d#, d#, 0); "m: black knight on dark square";
+ define_whole_pixels(d);
+ dark_square(d);
+ N(d, 0, 0);
+endchar;
+
+background:=light; color:=white;
+
+beginchar("P", d#, d#, 0); "P: white pawn on light square";
+ define_whole_pixels(d);
+ p(d, 0, 0);
+endchar;
+
+color:=black;
+
+beginchar("p", d#, d#, 0); "p: black pawn on light square";
+ define_whole_pixels(d);
+ p(d, 0, 0);
+endchar;
+
+background:=dark; color:=white;
+
+beginchar("O", d#, d#, 0); "O: white pawn on dark square";
+ define_whole_pixels(d);
+ dark_square(d);
+ p(d, 0, 0);
+endchar;
+
+color:=black;
+
+beginchar("o", d#, d#, 0); "o: black pawn on dark square";
+ define_whole_pixels(d);
+ dark_square(d);
+ p(d, 0, 0);
+endchar;
+
diff --git a/Master/texmf-dist/fonts/source/public/skak/skakf10.mf b/Master/texmf-dist/fonts/source/public/skak/skakf10.mf
new file mode 100644
index 00000000000..d3adce449bb
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/skak/skakf10.mf
@@ -0,0 +1,65 @@
+% This is `skakf10.mf' version 1.0 as of 6/99
+% based on original work by Piet Tutelaers
+
+% Informator symbols added
+% by Dirk Baechle, dl9obn@darc.de <2002-11-06>
+
+% generates a font consisting of chess figurines
+
+mode_setup;
+font_size 10pt#;
+
+u#:=10pt#;
+
+input skakbase;
+
+def figurine(expr code) =
+ beginchar(code, d#, 0.9d#, .1d#);
+ pickup pencircle scaled hairline; %gg
+ hairline_pen:=savepen; %gg
+ pickup pencircle scaled thin;
+ thin_pen:=savepen ; % for drawing pieces
+ pickup pencircle scaled thick;
+ thick_pen:=savepen; % for drawing inside pieces
+ define_whole_pixels(d);
+ figshift:=0;
+ scantokens code(d, 0, -.2);
+ endchar;
+enddef;
+
+def narrow_figurine(expr code) =
+ beginchar(code, 0.8d#, 0.9d#, .1d#);
+ pickup pencircle scaled hairline; %gg
+ hairline_pen:=savepen; %gg
+ pickup pencircle scaled thin;
+ thin_pen:=savepen ; % for drawing pieces
+ pickup pencircle scaled thick;
+ thick_pen:=savepen; % for drawing inside pieces
+ define_whole_pixels(d);
+ figshift:=-0.1;
+ scantokens code(d, 0, -.2);
+ endchar;
+enddef;
+
+M=1; % number of squares
+d#:=10pt#/M; %10pt#/M; % size per square
+lift=0.08;
+hairline#:=.30pt#; %gg
+thin#:=1/3pt#;
+middle#:=1/2pt#;
+thick#:=5/6pt#;
+define_blacker_pixels(hairline, thin, middle, thick); %gg added hairline???
+light=0; dark=1; white=0; black=1;
+background:=light; color:=white;
+
+narrow_figurine("K");
+narrow_figurine("R");
+narrow_figurine("B");
+figurine("N");
+figurine("p");
+figurine("Q");
+
+input skakinf;
+
+end;
+
diff --git a/Master/texmf-dist/fonts/source/public/skak/skakf10b.mf b/Master/texmf-dist/fonts/source/public/skak/skakf10b.mf
new file mode 100644
index 00000000000..6caa09e9a1d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/skak/skakf10b.mf
@@ -0,0 +1,65 @@
+% This is `skakf10b.mf' version 1.0 as of 6/99
+% based on original work by Piet Tutelaers
+
+% Informator symbols added
+% by Dirk Baechle, dl9obn@darc.de <2002-11-06>
+
+% generates a font consisting of chess figurines
+
+mode_setup;
+font_size 10pt#;
+
+u#:=10pt#;
+
+input skakbase;
+
+def figurine(expr code) =
+ beginchar(code, d#, .8d#, .2d#);
+ pickup pencircle scaled fine;
+ hairline_pen:=savepen;
+ pickup pencircle scaled thin;
+ thin_pen:=savepen ; % for drawing pieces
+ pickup pencircle scaled thick;
+ thick_pen:=savepen; % for drawing inside pieces
+ define_whole_pixels(d);
+ figshift:=0;
+ scantokens code(d, 0, -.2);
+ endchar;
+enddef;
+
+def narrow_figurine(expr code) =
+ beginchar(code, 0.8d#, .8d#, .2d#);
+ pickup pencircle scaled fine;
+ hairline_pen:=savepen;
+ pickup pencircle scaled thin;
+ thin_pen:=savepen ; % for drawing pieces
+ pickup pencircle scaled thick;
+ thick_pen:=savepen; % for drawing inside pieces
+ define_whole_pixels(d);
+ figshift:=-0.1;
+ scantokens code(d, 0, -.2);
+ endchar;
+enddef;
+
+M=1; % number of squares
+d#:=10pt#/M; % size per square
+lift=0.08;
+thin#:=.47pt#;
+middle#:=.7pt#;
+fine#:=9/10thin#;
+thick#:=5/6pt#;
+define_blacker_pixels(fine, thin, middle, thick);
+light=0; dark=1; white=0; black=1;
+background:=light; color:=white;
+
+narrow_figurine("K");
+narrow_figurine("R");
+narrow_figurine("B");
+figurine("N");
+figurine("p");
+figurine("Q");
+
+input skakinf;
+
+end;
+
diff --git a/Master/texmf-dist/fonts/source/public/skak/skakinf.mf b/Master/texmf-dist/fonts/source/public/skak/skakinf.mf
new file mode 100644
index 00000000000..224a7740181
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/skak/skakinf.mf
@@ -0,0 +1,739 @@
+
+% 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;
+