summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/fonts/source/public/bartel-chess-fonts/pkking.mf
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/fonts/source/public/bartel-chess-fonts/pkking.mf')
-rw-r--r--Master/texmf-dist/fonts/source/public/bartel-chess-fonts/pkking.mf342
1 files changed, 342 insertions, 0 deletions
diff --git a/Master/texmf-dist/fonts/source/public/bartel-chess-fonts/pkking.mf b/Master/texmf-dist/fonts/source/public/bartel-chess-fonts/pkking.mf
new file mode 100644
index 00000000000..54dd32fe478
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bartel-chess-fonts/pkking.mf
@@ -0,0 +1,342 @@
+% This is
+% pkking.mf
+%
+% Copyright (C) 1989-92 by Elmar Bartel.
+%
+% This program is free software; you can redistribute it and/or modify
+% it under the terms of the GNU General Public License as published by
+% the Free Software Foundation; either version 1, or (at your option)
+% any later version.
+%
+% This program is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+% GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with this program; if not, write to the Free Software
+% Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+%
+%we have to define six essential characters:
+% WoW NoW BoW WoB NoB BoB
+%Pawn 0 6 12 18 24 30
+%Knight 1 7 13 19 25 31
+%Bishop 2 8 14 20 26 32
+%Rook 3 9 15 21 27 33
+%Queen 4 10 16 22 28 34
+%King 5 11 17 23 29 35
+
+def SetParam =
+ numeric BowOneW,ThreeFour,SixHor,FourSix;
+ BowOneW = .52qs;
+ ThreeFour = .10;
+ FourFive = .60; % z5 is Top of Heart
+ SixHor = 1.40;
+ FourSix = .29;
+
+ numeric CrossWidth, CrossHeight, CrossAbove;
+ CrossWidth = .30;
+ CrossHeight = .18;
+ CrossAbove = .18; %Middle of cross above center of heart.
+enddef;
+
+def DefinePointsAndBows =
+ % Points are numbered from 0 to 9 from lower to upper
+ % Points to the left have suffix a, right suffic b
+ % points without further suffix are in the center
+
+ SetParam;
+ DefineFootBows( 0, % No Space to Bottom
+ BowOneW,
+ .22qs, % FootHeight
+ .40, % BowTwoLoc
+ .15, % WidthToHeight
+ .90, % BowTwoLen
+ 1.00); % BowThreeLen
+
+ z4 = z3 + BowOneW*ThreeFour*up;
+ z5 = z4 + BowOneW*FourFive*up;
+ y6l= y6r = y4 + BowOneW*FourSix;
+ x6l + x6r = qs; x6r - x6l = SixHor*BowOneW;
+
+ z7 = z5 + CrossAbove*BowOneW*up;
+ y7 = y7l = y7r;
+ x7l + x7r = qs; x7r - x7l = CrossWidth*BowOneW;
+ z8 = z7 + CrossHeight*BowOneW*up;
+
+ path Cross[];
+ Cross1= z5--z8;
+ Cross2= z7l--z7r;
+enddef;
+
+def DrawCross =
+ draw Cross1;
+ draw Cross2;
+enddef;
+
+def UnDrawCross =
+ undraw Cross1;
+ undraw Cross2;
+enddef;
+
+def DefineKingPaths =
+ path LeftPath,RightPath,LeftInnerPath,RightInnerPath,
+ OuterPath,TopHeartPath,HeartPath;
+ LeftPath = z1l .. z2l .. z3l .. z6l .. {down} z4 -- z3;
+ RightPath= reverse LeftPath reflectedabout (z3,z4);
+ %RightPath= z3 -- z4 {up} .. z6r .. z3r .. z2r .. z1r;
+ LeftInnerPath = ParallelPath(subpath (1.8,5)of LeftPath,
+ -1.6*thin);
+ RightInnerPath = LeftInnerPath reflectedabout (z3,z4);
+
+ OuterPath = LeftPath .. RightPath .. Bow0 .. cycle;
+ HeartStart = 3.75;
+ HeartPath = subpath (4,HeartStart) of LeftPath &
+ point HeartStart of LeftPath
+ {-direction HeartStart of LeftPath}..
+ {right}z5{right}..
+ point HeartStart of reverse RightPath
+ {direction HeartStart of reverse RightPath} &
+ subpath (HeartStart,4) of reverse RightPath;
+
+enddef;
+
+def MakeWhiteKing =
+ clearit;
+ pickup chess_pen;
+ draw Bow[1];
+ draw Bow[2];
+ draw Bow[3];
+ draw OuterPath;
+ draw HeartPath;
+ DrawCross;
+ %pickup inner_pen;
+ %pickup chess_pen;
+ %draw ParallelPath(subpath(1.7,5)of LeftPath,-2thin);
+ %draw ParallelPath(subpath(0,3.3)of RightPath,-2thin);
+ if proofing > 0:
+ ScreenGrid(0,qs)(0,qs);
+ fi;
+ WhiteMan:= currentpicture;
+enddef;
+
+def MakeBlackKing =
+ clearit;
+ pickup chess_pen;
+ filldraw HeartPath .. cycle;
+ DrawCross;
+ cullit;
+ undraw ParallelPath(subpath (.6,3.4) of HeartPath, -thin);
+ cullit;
+ filldraw OuterPath;
+ cullit;
+ undraw ShortenPath(Bow[1],1.5thin);
+ undraw ShortenPath(Bow[2],1.2thin);
+ undraw ShortenPath(Bow[3],1.2thin);
+ undraw ShortenBegin(ParallelPath(LeftPath,-thin),1.2thin);
+ undraw ShortenEnd(ParallelPath(RightPath,-thin),1.2thin);
+ BlackMan:= currentpicture;
+enddef;
+
+def MakeOuterShape =
+ clearit;
+ pickup frame_pen;
+ DrawCross;
+ filldraw OuterPath;
+ filldraw HeartPath .. cycle;
+ cullit;
+ OuterShape:= currentpicture;
+enddef;
+
+DefinePointsAndBows;
+DefineKingPaths;
+
+MakeWhiteKing;
+MakeBlackKing;
+MakeNeutral(WhiteMan, BlackMan);
+MakeOuterShape;
+
+
+%ScreenGrid(0,qs,x6r)(0,qs,y6r);
+
+%===========================================================
+
+beginchar(King+White+OnWhite, qs#, qs#, 0);
+ "White king on white field";
+ currentpicture:= WhiteMan;
+ %labels(z0,z1l,z1,z1r,z2l,z2,z2r);
+ %labels(z3l,z3,z3l,z4,z5,z6l,z6r);
+ %labels(z7l,z7,z7r,z8);
+endchar;
+
+beginchar(King+White+OnWhite+LeftTurned, qs#, qs#, 0);
+ "White king turned to the left on white field";
+ currentpicture:= TurnLeft(WhiteMan);
+endchar;
+
+beginchar(King+White+OnWhite+RightTurned, qs#, qs#, 0);
+ "White king turned to the right on white field";
+ currentpicture:= TurnRight(WhiteMan);
+endchar;
+
+beginchar(King+White+OnWhite+UpSideDown, qs#, qs#, 0);
+ "White king turned upsidedown on white field";
+ currentpicture:= TurnUpSideDown(WhiteMan);
+endchar;
+
+%===========================================================
+
+beginchar(King+White+OnBlack, qs#, qs#, 0);
+ "White king on black field";
+ MakeBlackField;
+ cullit;
+ currentpicture:= currentpicture - OuterShape;
+ cullit;
+ currentpicture:= currentpicture + WhiteMan;
+endchar;
+
+beginchar(King+White+OnBlack+LeftTurned, qs#, qs#, 0);
+ "White king turned to the left on black field";
+ MakeBlackField;
+ cullit;
+ currentpicture:= currentpicture - TurnLeft(OuterShape);
+ cullit;
+ currentpicture:= currentpicture + TurnLeft(WhiteMan);
+endchar;
+
+beginchar(King+White+OnBlack+RightTurned, qs#, qs#, 0);
+ "White king turned to the right on black field";
+ MakeBlackField;
+ currentpicture:= currentpicture - TurnRight(OuterShape);
+ cullit;
+ currentpicture:= currentpicture + TurnRight(WhiteMan);
+endchar;
+
+beginchar(King+White+OnBlack+UpSideDown, qs#, qs#, 0);
+ "White king turned upsidedown on black field";
+ MakeBlackField;
+ cullit;
+ currentpicture:= currentpicture - TurnUpSideDown(OuterShape);
+ cullit;
+ currentpicture:= currentpicture + TurnUpSideDown(WhiteMan);
+endchar;
+
+%===========================================================
+
+beginchar(King+Neutral+OnWhite, qs#, qs#, 0);
+ "Neutral king on white field";
+ currentpicture:= NeutralMan;
+endchar;
+
+beginchar(King+Neutral+OnWhite+LeftTurned, qs#, qs#, 0);
+ "Neutral king turned to the left on white field";
+ currentpicture:= TurnLeft(NeutralMan);
+endchar;
+
+beginchar(King+Neutral+OnWhite+RightTurned, qs#, qs#, 0);
+ "Neutral king turned to the right on white field";
+ currentpicture:= TurnRight(NeutralMan);
+endchar;
+
+beginchar(King+Neutral+OnWhite+UpSideDown, qs#, qs#, 0);
+ "Neutral king turned upsidedown on white field";
+ currentpicture:= TurnUpSideDown(NeutralMan);
+endchar;
+
+%===========================================================
+
+beginchar(King+Neutral+OnBlack, qs#, qs#, 0);
+ "Neutral king on black field";
+ MakeBlackField;
+ cullit;
+ currentpicture:= currentpicture - OuterShape;
+ cullit;
+ currentpicture:= currentpicture + NeutralMan;
+endchar;
+
+beginchar(King+Neutral+OnBlack+LeftTurned, qs#, qs#, 0);
+ "Neutral king turned to the left on black field";
+ MakeBlackField;
+ cullit;
+ currentpicture:= currentpicture - TurnLeft(OuterShape);
+ cullit;
+ currentpicture:= currentpicture + TurnLeft(NeutralMan);
+endchar;
+
+beginchar(King+Neutral+OnBlack+RightTurned, qs#, qs#, 0);
+ "Neutral king turned to the right on black field";
+ MakeBlackField;
+ currentpicture:= currentpicture - TurnRight(OuterShape);
+ cullit;
+ currentpicture:= currentpicture + TurnRight(NeutralMan);
+endchar;
+
+beginchar(King+Neutral+OnBlack+UpSideDown, qs#, qs#, 0);
+ "Neutral king turned upsidedown on black field";
+ MakeBlackField;
+ cullit;
+ currentpicture:= currentpicture - TurnUpSideDown(OuterShape);
+ cullit;
+ currentpicture:= currentpicture + TurnUpSideDown(NeutralMan);
+endchar;
+
+%===========================================================
+
+beginchar(King+Black+OnWhite, qs#, qs#, 0);
+ "Black king on white field";
+ currentpicture:= BlackMan;
+endchar;
+
+beginchar(King+Black+OnWhite+LeftTurned, qs#, qs#, 0);
+ "Black king turned to the left on white field";
+ currentpicture:= TurnLeft(BlackMan);
+endchar;
+
+beginchar(King+Black+OnWhite+RightTurned, qs#, qs#, 0);
+ "Black king turned to the right on white field";
+ currentpicture:= TurnRight(BlackMan);
+endchar;
+
+beginchar(King+Black+OnWhite+UpSideDown, qs#, qs#, 0);
+ "Black king turned upsidedown on white field";
+ currentpicture:= TurnUpSideDown(BlackMan);
+endchar;
+
+%===========================================================
+
+beginchar(King+Black+OnBlack, qs#, qs#, 0);
+ "Black king on black field";
+ MakeBlackField;
+ cullit;
+ currentpicture:= currentpicture - OuterShape;
+ cullit;
+ currentpicture:= currentpicture + BlackMan;
+endchar;
+
+beginchar(King+Black+OnBlack+LeftTurned, qs#, qs#, 0);
+ "Black king turned to the left on black field";
+ MakeBlackField;
+ cullit;
+ currentpicture:= currentpicture - TurnLeft(OuterShape);
+ cullit;
+ currentpicture:= currentpicture + TurnLeft(BlackMan);
+endchar;
+
+beginchar(King+Black+OnBlack+RightTurned, qs#, qs#, 0);
+ "Black king turned to the right on black field";
+ MakeBlackField;
+ currentpicture:= currentpicture - TurnRight(OuterShape);
+ cullit;
+ currentpicture:= currentpicture + TurnRight(BlackMan);
+endchar;
+
+beginchar(King+Black+OnBlack+UpSideDown, qs#, qs#, 0);
+ "Black king turned upsidedown on black field";
+ MakeBlackField;
+ cullit;
+ currentpicture:= currentpicture - TurnUpSideDown(OuterShape);
+ cullit;
+ currentpicture:= currentpicture + TurnUpSideDown(BlackMan);
+endchar;
+
+