edward@csvaxa.UUCP (Edward Wilkinson) (04/20/88)
Does anyone have any Postscript chess pieces, both upside-down & the right way up? What about a chess board with border? Many thanks in advance to any replies. p.s. Short for the World title! (in a few years, anyway) -- Ed Wilkinson @ Computer Centre, Massey University, Palmerston North, NZ uucp: {uunet,watmath!cantuar}!vuwcomp!csvaxa!edward DTE: 530163000005 Janet/Greybook: E.Wilkinson@nz.ac.massey Phone: +64 63 69099 x8587 CSnet/ACSnet/Internet: E.Wilkinson@massey.ac.nz New Zealand = GMT+12
eichin@athena.mit.edu (Mark W. Eichin) (04/27/88)
In article <212@csvaxa.UUCP> E.Wilkinson@massey.ac.nz writes: >Does anyone have any Postscript chess pieces, both upside-down & the >right way up? What about a chess board with border? Many thanks in >advance to any replies. I have a chess printing file, derived from (1) the Cookbook example program `Making A User Defined Font' and (2) the bitmap chess characters from the GNUchess xchess program. I constructed it in about 3 hours for the MIT student newspaper, The Tech; the style of print is much like a normal newspaper chess column (all pieces rightsideup, grey/white squares.) It is a header file; to draw a chessboard, include something like 36 START (RNBQKBNR) (PPPPPPPP) ( ) ( ) ( ) ( ) (pppppppp) (rnbqkbnr) showboard to draw a starting chessboard. It is nearly 40K long, but the bitmaps look fairly good from 1/4 inch to 1 inch in size. If you want it, email me (if you can anonymous ftp, tell me that and I'll put it somewhere); if I get more than 15 requests in a week, I'll post it. I don't read comp.lang.postscript often (thesis time!) so I will not see posted requests. Mark Eichin <eichin@athena.mit.edu> SIPB Member & Project Athena ``Watchmaker'' [You should be able to find athena.mit.edu; if not, try via bloom-beacon.]
anw@nott-cs.UUCP (04/28/88)
In article <212@csvaxa.UUCP> E.Wilkinson@massey.ac.nz writes: > Does anyone have any Postscript chess pieces, both upside-down & the > right way up? [...] No replies seen here yet, so perhaps my version will serve. I was planning to bundle this up when "comp.lang.postscript" was asking for examples of PostScript; but natural modesty, diffidence, and my novitiate status* in PS prevented me. Unshar the following; it may do what you want; it does most of what I want. See the "README" for much more info. I've added Black and White Grasshoppers (upside-down Queens) (4 lines total) to "C.font" to show how easy it is. Most other Fairy pieces are equally easy -- Imitators might be a slight problem! Am I alone in being slightly miffed that the standard Adobe fonts, Hershey fonts etc include *lots* of Bridge symbols, but no Chess? ______________ * This was my first non-trivial PostScript exercise. -- Andy Walker, Maths Dept., Nottm Univ. anw@maths.nott.ac.uk ------------------------------[ cut here ]------------------------------------- #! /bin/sh # This is a shell archive. Remove anything before this line, then unpack # it by saving it into a file and typing "sh file". To overwrite existing # files, type "sh file -c". You can also feed this as standard input via # unshar, or by typing "sh <file", e.g.. If this archive is complete, you # will see the following message at the end: # "End of archive 1 (of 1)." # Contents: MANIFEST README C.font C.start C.end Example # Wrapped by anw@maths.nott.ac.uk on Thu Apr 28 16:23:13 1988 PATH=/bin:/usr/bin:/usr/ucb ; export PATH if test -f MANIFEST -a "${1}" != "-c" ; then echo shar: Will not over-write existing file \"MANIFEST\" else echo shar: Extracting \"MANIFEST\" \(313 characters\) sed "s/^X//" >MANIFEST <<'END_OF_MANIFEST' X File Name Archive # Description X----------------------------------------------------------- X MANIFEST 1 list of files X README 1 discussion X C.font 1 PS font/board file X C.start 1 draw board & set chess font X C.end 1 tidy up X Example 1 Run thro pic | *roff | laserwriter END_OF_MANIFEST if test 313 -ne `wc -c <MANIFEST`; then echo shar: \"MANIFEST\" unpacked with wrong size! fi # end of overwriting check fi if test -f README -a "${1}" != "-c" ; then echo shar: Will not over-write existing file \"README\" else echo shar: Extracting \"README\" \(6392 characters\) sed "s/^X//" >README <<'END_OF_README' X Herewith a 90% solution to the chess-font problem. It consists of Xthree PostScript files, "C.font", "C.start", "C.end" that can be integrated Xwith a "troff" file to produce chess diagrams and pieces. The intention Xis that a chess paper should consist of something like: X X usual troff headers X .cf C.font \" interpolate the font and board macros into the o/p X text text text X .cf C.start \" draw the board and set the chess font X diagram X .cf C.end \" tidy up X text text text X .cf C.start X diagram X .cf C.end X text text text, etc. X XTo be slightly more accurate, the intention is that an as-yet-unwritten Xchess pre-processor should filter the chess paper, inserting the "C.font" Xstuff, and replacing each diagram found by the "start ... end" stuff around XTroff commands to position and display the pieces. In the usual Unix way, Xthe input would look like X X text text text X .CS [ optional parameters for diagram size, etc ] X Forsythe notation for diagram. X Annotations X .CE X text text text X Xwith some sensible notation for inline figurines. X XIn the current state of the art, this is done instead by using "pic" to do Xthe drawing and positioning. In principle, the "pic" stuff would look like X X .PS X <commands to draw the board, and scale to right size> X "K" at 2,3 \" two along, three up, ie b3 X "p" at 7,5 \" 7 along, 5 up, ie g5 X <etc> X "\fIWhite to move\fR" at 10,5 \" caption in Italic font X <etc> X .PE X XIn practice, there are silly complications caused, eg, by the necessity of Xallowing output to non-LaserWriter devices, and by the fact that Troff Xmis-optimises some motions, so the real text is much more complicated X(see the example of the famous Reti ending in the "Example" file given), Xbut all of this is obviously perfectly easy for the hypothetical chess Xpre-processor. X XThe chess font is not installed as a proper font known to Troff, so all Xthe chess pieces are kludged up behind the scenes in PostScript shovelled Xthrough the DITroff->PS editor. We have a much-hacked Troff (and need to Xhave to get reasonably professional output using 40-odd fonts more-or-less Xsimultaneously into a PDP 11/44), so the official routes aren't available Xto me. Your mileage may be better; but, to be honest, I've managed "as Xis". We have a proper Hershey font interpreter, which we use for hacking XGothic, Script, Chinese, etc., characters which aren't in the Laser's Xnormal repertoire; so it might be worth preparing a Hershey description Xof the chess pieces for use in ordinary text (as figurines), but I haven't Xyet felt the need. X X If you know much about PostScript, note that the chess font can't Xbe cached; this is because the pieces use both white and black pixels. XEg, a black bishop includes a white halo, then a black flood-fill of the Xoutline, then white fills of the inside of the mitre and of the diamond Xdecoration. The alternative of defining WK-on-Bsquare, WK-on-Wsquare, XBK-on-Bsquare, etc pieces, using only write-black codes, would be very Xmuch more complicated both to define and to use, would make figurines in Xthe text harder, but would be much faster to run in text that used lots and Xlots of diagrams. X X If your system is similar to ours (some hacked Adobe package, Xconverting DITroff for the Apple LW+), you can try [takes *ages*, 'cos Xof the large pieces at the end -- take them away if you like!] X X pic Example | your-troff -ms [flags] | your-usual-filters X X(I just have to say "runoff -Plwriter Example" and it all happens); if Xthat doesn't work, you'll have to piggle with the "C.*" files. In Xparticular, some of the positioning may be wrong: it seems to be system- Xdependent. Things may go badly awry if your system doesn't have the same X"copy-through" convention as ours: the ".cf" and "\!" troff requests are Xused to pass information straight through to the DITroff->PS converter; Xwhat "straight through" means in relation to partial lines, positioning, Xetc., depends on how many bugs in this mechanism your site has cured; and Xthe converter passes straight through as PS lines between "%" and ".". XThe only other likely catastrophe that I can see is if your PS prologue Xdoesn't use "pagesave" to save and restore the LW state. If you use TEX Xrather than Troff, you're on your own. Well, perhaps in a crowd, but Xwithout me. X X Please note the minimal copyright restrictions on "C.font": if Xyou intend to make money from my work, I would like an Hon Mention and a Xmodest slice of the action; otherwise do what you like with it. Feel Xfree to use the other files even if you make money from them (How?). The X"C.start" file is utterly stupid: X "initmatrix" should `never' be used, 'cos it resets PS to the X default co-ordinate system, thereby defeating any attempt X to do clever scaling; X the current position has to be moved in an obscure way to put the X board in the correct relation to the "pic" co-ordinates; X comes out wrong in double spacing ("pic" bug, really); X only allows 1.6" board and 12-pt pieces; Xbut I haven't done anything about it yet. X X There are surprisingly many chess fonts used in the literature. XThe one implemented here is an approximation to my favourite. The two Xprincipal rivals are the one much used in older books and in E. European Xbooks with an incredibly ornate K and much more elaborate pieces generally, Xand one with a "square-on" bishop-with-a-cross, instead of the rotated Xbishop here, where you can see the inside of the mitre. I've changed the XN somewhat; attempts to copy the "real" font all came out looking like a Xpantomime horse with a nosebag, and the present more stylised version both Xlooks better and scales better. Let me know if you do better! X X The knights should face *left*. We had a curious episode whereby Xa diagram came out perfectly OK last year, but this year came out with the Xpieces reflected (this only matters for B & N). I therefore changed signs Xon all the motions for B & N. If your diagrams come out with the Ns facing X*right*, you'll have to do the same. I can't explain this other than that Xour text processing systems are much hacked; but whether the change was a Xnew bug or a fix, I don't know. For similar reasons, you may find something Xcurious happening with the big pieces in "Example". X X All comments, suggestions, improvements welcomed. X X Andrew N. Walker, X Mathematics Department, The University, Nottingham NG7 2RD, UK. X e-mail: anw@maths.nott.ac.uk END_OF_README if test 6392 -ne `wc -c <README`; then echo shar: \"README\" unpacked with wrong size! fi # end of overwriting check fi if test -f C.font -a "${1}" != "-c" ; then echo shar: Will not over-write existing file \"C.font\" else echo shar: Extracting \"C.font\" \(7891 characters\) sed "s/^X//" >C.font <<'END_OF_C.font' X% X X% This file is X X% Copyright 1988 A. N. Walker X X% Explicit permission is hereby given to use this file freely for X% educational or research or non-profitmaking purposes, provided X% that this notice is retained. Permission for other uses should X% be sought from Dr A. N. Walker, Department of Mathematics, The X% University, Nottingham NG7 2RD, UK; anw@maths.nott.ac.uk. X X pagesave restore X /Cfont 50 dict def X Cfont begin X /FontType 3 def X /FontMatrix [ 0.001 0 0 0.001 0 0 ] def X /FontBBox [ 0 0 0 0 ] def X /Encoding 256 array def X 0 1 255 { Encoding exch /.notdef put } for X Encoding 8#113 /WK put % ASCII 'K' X Encoding 8#121 /WQ put % ASCII 'Q' X Encoding 8#122 /WR put % ASCII 'R' X Encoding 8#102 /WB put % ASCII 'B' X Encoding 8#116 /WN put % ASCII 'N' X Encoding 8#120 /WP put % ASCII 'P' X Encoding 8#153 /BK put % ASCII 'k' X Encoding 8#161 /BQ put % ASCII 'q' X Encoding 8#162 /BR put % ASCII 'r' X Encoding 8#142 /BB put % ASCII 'b' X Encoding 8#156 /BN put % ASCII 'n' X Encoding 8#160 /BP put % ASCII 'p' X% Next two lines added to show how to do grasshoppers X Encoding 8#107 /WG put % ASCII 'G' X Encoding 8#147 /BG put % ASCII 'g' X /CharProcs 30 dict def X CharProcs begin X% Should perhaps do something more exotic in .notdef, so that unassigned X% pieces actually show up. Left as an exercise X /.notdef { } def X /diamond { % size & centre on stack X moveto dup neg 0 rmoveto X dup dup neg rlineto dup dup rlineto X dup neg exch rlineto closepath } def X /WK { 2 setmiterlimit 325 -100 moveto X 600 100 350 400 125 250 curveto X 0 250 rlineto -250 0 rlineto 0 -250 rlineto X -350 400 -600 100 -325 -100 curveto X 0 -250 rlineto X -100 -500 100 -500 325 -350 curveto X closepath currentgray dup dup 30 setlinewidth X gsave 100 setlinewidth 1 setgray stroke grestore X gsave 1 exch sub setgray fill grestore X 0 setgray stroke setgray X 0 eq { 325 } { 275 } ifelse X dup dup neg 3 copy X -350 moveto 0 -300 3 -1 roll -350 800 arcto X 4 { pop } repeat -350 lineto X -100 moveto 0 -50 3 -1 roll -100 800 arcto X 4 { pop } repeat -100 lineto X 15 0 -185 Cfont /CharProcs get /diamond get exec X 15 -250 -210 Cfont /CharProcs get /diamond get exec X 15 250 -210 Cfont /CharProcs get /diamond get exec X currentgray 0 eq { 125 } { 75 } ifelse X dup dup neg 3 copy dup dup X 4 { 0 375 moveto rlineto } repeat X currentgray 0 eq { X 0 -45 moveto 125 250 lineto X -250 0 rlineto closepath X } if X stroke } def X /WQ { 2 setmiterlimit 0 75 moveto X -150 440 50 -80 280 arc X -250 25 lineto -440 200 50 -60 300 arc X -325 -100 lineto 0 -250 rlineto X -100 -500 100 -500 325 -350 curveto X 0 250 rlineto 440 200 50 -120 240 arc X 250 25 lineto 150 440 50 -100 260 arc X closepath currentgray dup dup 30 setlinewidth X gsave 100 setlinewidth 1 setgray stroke grestore X gsave 1 exch sub setgray fill grestore X 0 setgray stroke setgray X 0 eq { 325 } { 275 } ifelse X dup dup neg 3 copy X -350 moveto 0 -300 3 -1 roll -350 800 arcto X 4 { pop } repeat -350 lineto X -100 moveto 0 -50 3 -1 roll -100 800 arcto X 4 { pop } repeat -100 lineto X 15 0 -185 Cfont /CharProcs get /diamond get exec X 15 -250 -210 Cfont /CharProcs get /diamond get exec X 15 250 -210 Cfont /CharProcs get /diamond get exec X stroke } def X /WR { -325 -450 moveto 650 0 rlineto X 0 50 rlineto -100 175 rlineto 0 400 rlineto X 50 75 rlineto 0 150 rlineto X -86 0 rlineto -30 -100 rlineto X -86 0 rlineto -30 100 rlineto X -86 0 rlineto -30 -100 rlineto X -86 0 rlineto -30 100 rlineto -86 0 rlineto X 0 -150 rlineto 50 -75 rlineto X 0 -400 rlineto -100 -175 rlineto closepath X gsave 100 setlinewidth 1 setgray stroke grestore X gsave 1 currentgray sub setgray fill grestore X 30 setlinewidth X gsave 0 setgray stroke grestore newpath X currentgray 0 eq { -225 } { -195 } ifelse X dup -225 moveto dup -2 mul 0 rlineto X dup 175 moveto -2 mul 0 rlineto stroke } def X /WB { 2 setmiterlimit 400 -500 moveto X -100 100 -300 0 -400 100 rcurveto X -100 -100 -300 0 -400 -100 rcurveto X 0 100 rlineto X 100 100 300 0 400 100 rcurveto X 100 -100 300 0 400 -100 rcurveto X closepath X -200 -350 moveto 0 200 rlineto X -200 0 -150 215 0 325 curveto X 75 420 40 -90 270 arc X 340 100 340 100 200 -150 curveto X 0 -200 rlineto -200 50 rlineto closepath X 30 setlinewidth currentgray X gsave 0 325 moveto X -150 215 -200 0 -200 -150 curveto X -340 100 -340 100 -75 380 curveto X -75 420 40 -90 270 arc X closepath 1 setgray X gsave 100 setlinewidth stroke grestore X gsave fill grestore X 0 setgray stroke X grestore X gsave dup 1 exch sub setgray fill grestore X 0 setgray stroke setgray X 15 0 -225 Cfont /CharProcs get /diamond get exec X currentgray 0 eq { 200 } { 150 } ifelse X dup dup neg 3 copy X -350 moveto 20 rlineto -20 rlineto X -150 moveto 30 rlineto -30 rlineto stroke } def X /WN { 2 setmiterlimit -450 -450 moveto X -450 200 -150 350 50 400 curveto X 25 100 rlineto 75 -200 rlineto X 75 150 rlineto 0 -150 rlineto X 125 -125 325 -400 275 -450 rcurveto X -75 -75 rlineto -100 130 rlineto 0 -200 rlineto X -50 -25 -150 100 -100 150 rcurveto X -50 -50 -150 75 -125 150 rcurveto X -125 -300 250 -250 250 -450 curveto X closepath currentgray dup 30 setlinewidth X gsave 100 setlinewidth 1 setgray stroke grestore X gsave 1 exch sub setgray fill grestore X 0 setgray stroke setgray X 15 200 150 Cfont /CharProcs get /diamond get exec X stroke currentgray 0 eq { [ 100 100 ] 0 setdash X -410 -450 moveto -410 200 -130 330 60 380 curveto X 50 setlinewidth stroke } if } def X /WP { 1 currentgray sub setgray X Cfont /CharProcs get /BP get exec X -75 150 moveto 150 0 rlineto stroke } def X /BK { 1 currentgray sub setgray X Cfont /CharProcs get /WK get exec X 15 0 180 Cfont /CharProcs get /diamond get exec X 265 -95 moveto 480 150 280 380 50 -50 curveto X -265 -95 moveto -480 150 -280 380 -50 -50 curveto X stroke } def X /BQ { 1 currentgray sub setgray X Cfont /CharProcs get /WQ get exec } def X /BR { 1 currentgray sub setgray X Cfont /CharProcs get /WR get exec } def X /BB { 1 currentgray sub setgray X Cfont /CharProcs get /WB get exec } def X /BN { 1 currentgray sub setgray X Cfont /CharProcs get /WN get exec X -430 -430 moveto X -430 200 -150 350 30 370 curveto X -150 250 -390 200 -390 -430 curveto fill } def X /BP { 300 -450 moveto X 200 -300 200 -300 75 -250 curveto X 125 -50 125 -50 75 150 curveto X 125 150 100 0 90 arc X 0 300 100 -30 210 arc X -125 150 100 90 180 arc X 150 0 rlineto X -125 -50 -125 -50 -75 -250 curveto X -200 -300 -200 -300 -300 -450 curveto X closepath X gsave 100 setlinewidth 1 setgray stroke grestore X gsave fill grestore X 50 setlinewidth 0 setgray stroke } def X% Next two lines added to show how to do upside-down queens (grasshoppers) X /WG { 180 rotate Cfont /CharProcs get /WQ get exec } def X /BG { 180 rotate Cfont /CharProcs get /BQ get exec } def X end X /BuildChar { % font, char on stack X 1000 0 setcharwidth X exch begin Encoding exch get CharProcs exch get end exec X } def X end X /ChessFont Cfont definefont pop X /board { % startx, starty on stack X translate X currentlinewidth 72 5 div dup dup scale div 3 div X setlinewidth newpath -0.2 dup dup moveto 8.2 lineto X 8.2 dup dup lineto -0.2 lineto closepath X gsave 1 setgray fill grestore stroke X currentlinewidth 3 div setlinewidth X -0.075 dup dup moveto 8.075 lineto X 8.075 dup dup lineto -0.075 lineto closepath stroke X gsave currentlinewidth 12 div setlinewidth X 1 16 div 1 8 div 7 { X dup 0 moveto dup 8 exch sub dup dup rlineto X exch 0 exch moveto dup rlineto stroke X } for X 1 setgray X 0 1 7 { dup 2 mod 1 exch sub X 4 { 2 copy newpath moveto X 1 0 rlineto 0 1 rlineto -1 0 rlineto X closepath gsave fill grestore stroke X 2 add X } repeat pop pop X } for X grestore X -0.5 dup translate X } def X /pagesave save def X. END_OF_C.font if test 7891 -ne `wc -c <C.font`; then echo shar: \"C.font\" unpacked with wrong size! fi # end of overwriting check fi if test -f C.start -a "${1}" != "-c" ; then echo shar: Will not over-write existing file \"C.start\" else echo shar: Extracting \"C.start\" \(247 characters\) sed "s/^X//" >C.start <<'END_OF_C.start' X% X gsave matrix currentmatrix initmatrix X -1 12 mul 72 div -53 30 div 72 mul rmoveto % botch! X % 0 -12 rmoveto % include this for double spaced o/p X currentpoint board setmatrix X /ChessFont findfont [ 12 point neg 0 0 3 copy ] makefont setfont X. END_OF_C.start if test 247 -ne `wc -c <C.start`; then echo shar: \"C.start\" unpacked with wrong size! fi # end of overwriting check fi if test -f C.end -a "${1}" != "-c" ; then echo shar: Will not over-write existing file \"C.end\" else echo shar: Extracting \"C.end\" \(14 characters\) sed "s/^X//" >C.end <<'END_OF_C.end' X% X grestore X. END_OF_C.end if test 14 -ne `wc -c <C.end`; then echo shar: \"C.end\" unpacked with wrong size! fi # end of overwriting check fi if test -f Example -a "${1}" != "-c" ; then echo shar: Will not over-write existing file \"Example\" else echo shar: Extracting \"Example\" \(2141 characters\) sed "s/^X//" >Example <<'END_OF_Example' X.\"pic X.\"roff -ms X.\" X.\" pipe this through the mythical chess pre-processor | pic | *roff -ms etc X.if t .cf C.font X.SH XExample X.PP XThe following all looks fine on our LW; XI can't answer for yours! XAnyway, consider the following well-known study: X.PS Xscale = 5 Xline right 8 then up 8 then left 8 then down 8 X.if t .cf C.start XA : -1/2-1/60,-1/2+1/10 X"." at 0,0 X"K" at A + 8,8 ljust X"." at 0,0 X"k" at A + 1,6 ljust X"." at 0,0 X"P" at A + 3,6 ljust X"." at 0,0 X"p" at A + 8,5 ljust X.if t .cf C.end Xtextwid = 16 X"\fBR. R\*'eti\fP" at 10,6 ljust X"\fIKagan's Neueste Schachnachrichten, 1921\fP" at 10,5 ljust X"\fIWhite to play and draw\fP" at 10,2 ljust Xreset textwid X.PE XThe X.I pic Xfor the above can be generated easily by a pre-processor which understands XForsythe notation and where to put annotations, X.I e.g.: X.DS X.ft CW X\&.CS X7K; 8; k1P5; 7p; 32. XRU B "R. R\e*'eti" \e" Right-Upper annotation in Bold X\&... etc ... X\&.CE X.ft P X.DE X(As a matter of fact, it would be quite easy to generate the X.I pic X.I output Xand save a pipe.) XIf you know what you're doing, you can do cleverer things with the X.I pic X(this comment is only meaningful if you study the source of this output). XFor example, here is the start position; XI've replaced some pawns with grasshoppers (upside-down queens) Xto show the possibilities. X.PS Xscale = 5 Xline right 8 then up 8 then left 8 then down 8 X.if t .cf C.start XA : 1/2-1/60,-1/2+1/10 Xdefine rank % A + 0,$1 ljust % Xdefine file % $1 at rank(8); $2 at rank(7); $3 at rank(2); $4 at rank(1) % Xdefine goright % A : A + 1,0 % X file("r", "p", "P", "R"); goright X file("n", "g", "G", "N"); goright X file("b", "p", "P", "B"); goright X file("q", "p", "P", "Q"); goright X file("k", "p", "P", "K"); goright X file("b", "p", "P", "B"); goright X file("n", "g", "G", "N"); goright X file("r", "p", "P", "R") X.if t .cf C.end X.PE X.if !t .ig XSimilarly, here are some big pieces: X.sp 1i X\s1\fI\&.\fP\s0 X.br X.\" The above stupidity is 'cos some troffs re-order things! Grrrr! X\!% X\! save /ChessFont findfont [ 48 point neg 0 0 3 copy ] makefont setfont X\! (KqRbNp) dup stringwidth exch neg exch neg rmoveto show restore X\!. X.ft R X.. END_OF_Example if test 2141 -ne `wc -c <Example`; then echo shar: \"Example\" unpacked with wrong size! fi # end of overwriting check fi echo shar: End of archive 1 \(of 1\). cp /dev/null ark1isdone MISSING="" for I in 1 ; do if test ! -f ark${I}isdone ; then MISSING="${MISSING} ${I}" fi done if test "${MISSING}" = "" ; then echo You have unpacked all 1 archives. rm -f ark[1-9]isdone else echo You still need to unpack the following archives: echo " " ${MISSING} fi ## End of shell archive. exit 0
liam@cs.qmc.ac.uk (William Roberts) (04/30/88)
Sender: Followup-To: Distribution: Keywords: I also have a chess font, with characters for each of the pieces in all four (piece colour, square colour) combinations. There are also some pieces to go around the edge to make a frame. For good measure, I have the necessary stuff to make it into a ditroff font and connect it to TranScript, so that you can have chessboards etc in ditroff, even without psfig :-) A typical board is described as 0 1 1 1 1 1 1 1 1 2 7 r o . : k : . u 3 7 s b s p : p s . 3 7 . s . : p t . s 3 7 : . : . : . : . 3 7 . c . S P : . : 3 7 : . O B : N : . 3 7 P S P T . S P S 3 7 U . : . L . : R 3 6 5 5 5 5 5 5 5 5 4 where the coding is conventional, except that the letters move along one to indicate a black background square (k->l, b->c and so on, with some kludge for p, q and r). The characters are described as outlines and the black squares are indicated by cross-hatching. Note that space is a zero-width character. THE OFFER: if someone can send me good descriptions for draughts pieces as PostScript outlines, then I will incorporate those and mail the whole lot to comp.sources (I know draughts pieces are only boring, circular things, but I want a nice looking king/emperor piece and haven't got the time to work on it myself). -- William Roberts ARPA: liam@cs.qmc.ac.uk (gw: cs.ucl.edu) Queen Mary College UUCP: liam@qmc-cs.UUCP LONDON, UK Tel: 01-975 5250
eichin@athena.mit.edu (Mark W. Eichin) (05/05/88)
In article <4909@bloom-beacon.MIT.EDU> I (Mark W. Eichin) write: >In article <212@csvaxa.UUCP> E.Wilkinson@massey.ac.nz writes: >>Does anyone have any Postscript chess pieces, both upside-down & the >>right way up? What about a chess board with border? Many thanks in >>advance to any replies. >... If you want it, >email me (if you can anonymous ftp, tell me that and I'll put it >somewhere); if I get more than 15 requests in a week, I'll post it. I >don't read comp.lang.postscript often (thesis time!) so I will not see >posted requests. > Mark Eichin > <eichin@athena.mit.edu> > SIPB Member & Project Athena ``Watchmaker'' >[You should be able to find athena.mit.edu; if not, try via bloom-beacon.] Well, in the past week (27 Apr 88-4 May 88) I have received 34 requests for the file in various forms, including several *after* the other font posting who wanted to see this one anyhow. This font was used in the MIT student newspaper The Tech for at least one chess reporting column. (In fact, the person writing the column came to SIPB and asked if we had anything, was reasonably polite, so I sat down and wrote this one... it only took 3-4 hours, and that is the sort of thing SIPB does.) If you can anonymous ftp, SIPB.MIT.EDU:~ftp/pub/chess.ps contains the file (without this message, ready to use.) [SIPB.MIT.EDU is 18.80.0.13, for those of you without nameservers.] % ls -l chess.ps -rw-r--r-- 1 eichin mit 37807 Mar 7 16:38 chess.ps % sum chess.ps 30038 37 If you can't ftp, here is the actual file, as promised. Note the instructions at the end (in postscript comments.) Enjoy! Mark Eichin <eichin@athena.mit.edu> SIPB Member & Project Athena ``Watchmaker'' #! /bin/sh # This is a shell archive, meaning: # 1. Remove everything above the #! /bin/sh line. # 2. Save the resulting text in a file. # 3. Execute the file with /bin/sh (not csh) to create: # chess.ps # This archive created: Wed May 4 20:24:24 1988 export PATH; PATH=/bin:/usr/bin:$PATH if test -f 'chess.ps' then echo shar: "will not over-write existing file 'chess.ps'" else cat << \SHAR_EOF > 'chess.ps' %! %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Chess printing file... derived from a cookbook bitmap font % example. Chess characters from xchess (gnuchess project.) % Mark Eichin <eichin@athena.mit.edu> [eichin:19880307.1637EST] % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Cookbook Example Program from First Printing, Revised 7 Jan 1985 % Program: Making a User Defined Font Number: 25 %----------------------------------------------------------------------------- % /makebits { 80 80 true [80 0 0 -80 0 80] } def % The following program % demonstrates the construction of % a user defined font. The font % will only have two characters % defined ("a" and "b") and will % illustrate how both bitmaps and % analytic shapes may be used as % font characters. The character % "a" will print a turkey % (constructed as a bitmap), and % the character "b" will print a % bullseye. /BuildCharDict 30 dict def % This dictionary is used by the /BuildCharDict2 30 dict def % This dictionary is used by the % BuildChar procedure for local % variables. /ExampleFont 30 dict def % Allocate the font dictionary. /ExampleFont2 30 dict def % Allocate the font dictionary. ExampleFont begin % Leave room for the FontID. Build /CharacterDefs 30 dict def % Define the various character % the required entries in the font % dictionary. /FontType 3 def % FontType 3 tells PostScript that % this is a user defined font. /FontMatrix [1 0 0 1 0 0] def % Use the identity matrix for the % font coordinate system. /FontBBox [0 0 1 1]def % The largest character in the % font will be 1 unit by 1 unit. /Encoding 256 array def % Allocate the Encoding array. % Build the encoding vector that % will define "a" and "b". 0 1 255 {Encoding exch /.notdef put} for % Initialize all entries in the % encoding vector with ".notdef". Encoding (b) 0 get /bishop put Encoding (k) 0 get /king put Encoding (n) 0 get /knight put Encoding (p) 0 get /pawn put Encoding (q) 0 get /queen put Encoding (r) 0 get /rook put Encoding (_) 0 get /shade put Encoding ( ) 0 get /unshade put Encoding (B) 0 get /bishop put Encoding (K) 0 get /king put Encoding (N) 0 get /knight put Encoding (P) 0 get /pawn put Encoding (Q) 0 get /queen put Encoding (R) 0 get /rook put % drawing procedures and put them % in the CharacterDefs dictionary. CharacterDefs /.notdef {} put % There should always be a % description for the undefined % character ``.notdef'' which does % nothing. CharacterDefs /unshade { } put %%%%%%%%% Insert chessfont file here. CharacterDefs /bishop { makebits { < 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00e0 e000 0000 0000 0000 01f1 f000 0000 0000 0000 01f1 f000 0000 0000 0000 01f1 f000 0000 0000 0000 00e0 e000 0000 0000 0000 0040 4000 0000 0000 0000 01f0 a000 0000 0000 0000 03f9 1000 0000 0000 0000 07fe 0800 0000 0000 0000 0ffe 0800 0000 0000 0000 1fff 0800 0000 0000 0000 1fff 0c00 0000 0000 0000 3fff 8400 0000 0000 0000 7fff c400 0000 0000 0000 7fff c400 0000 0000 0000 ff1f e600 0000 0000 0000 ff1f e200 0000 0000 0001 ff1f f200 0000 0000 0001 f803 f200 0000 0000 0003 f803 fa00 0000 0000 0003 f803 fa00 0000 0000 0007 ff1f fe00 0000 0000 0007 ff1f fe00 0000 0000 0007 ff1f fe00 0000 0000 0007 ff1f fe00 0000 0000 000f ff1f fe00 0000 0000 000f ff1f fe00 0000 0000 000f ff1f ff00 0000 0000 001f ffff ff00 0000 0000 001f ffff ff00 0000 0000 001f ffff ff00 0000 0000 001f ffff ff00 0000 0000 001f ffff ff00 0000 0000 000f ffff fe00 0000 0000 000f ffff fe00 0000 0000 000f ffff fe00 0000 0000 000f ffff fe00 0000 0000 0007 ffff fc00 0000 0000 0007 ffff fc00 0000 0000 0003 ffff f800 0000 0000 0003 ffff f800 0000 0000 0001 ffff f000 0000 0000 0001 ffff f000 0000 0000 0001 ffff f000 0000 0000 0000 ffff e000 0000 0000 0000 8000 2000 0000 0000 0000 8000 2000 0000 0000 0000 ffff e000 0000 0000 0000 7fbf c000 0000 0000 0000 5f1f 4000 0000 0000 0000 4e0e 4000 0000 0000 0000 4e0e 4000 0000 0000 0000 5f1f 4000 0000 0000 0000 7fbf e000 0000 0000 0000 ffff e000 0000 0000 0000 8000 2000 0000 0000 0000 8000 2000 0000 0000 0001 ffff f000 0000 0000 0001 ffff f000 0000 0000 0003 ffff f800 0000 0000 0000 01f0 0000 0000 0000 0000 01f0 0000 0000 0000 0000 03f8 0000 0000 0000 0000 07fc 0000 0000 0000 0000 0ffe 0000 0000 0000 0000 1fff 0000 0000 0000 1ff8 3fbf 83ff 8000 0000 7fff ffbf ffff e000 0003 ffff ff1f ffff fc00 000f ffff ff1f ffff ff00 0003 ffff fc0f ffff fc00 0001 f00f f003 fe00 f800 0003 0000 0000 0000 0c00 0006 0000 0000 0000 0600 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000>} imagemask } put CharacterDefs /bishop_outline { makebits { < 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 00e0 e000 0000 0000 0000 01b1 b000 0000 0000 0000 0111 1000 0000 0000 0000 01b1 b000 0000 0000 0000 00e0 e000 0000 0000 0000 0040 4000 0000 0000 0000 01f0 a000 0000 0000 0000 0319 1000 0000 0000 0000 060e 0800 0000 0000 0000 0c02 0800 0000 0000 0000 1803 0800 0000 0000 0000 1001 0c00 0000 0000 0000 3001 8400 0000 0000 0000 6001 c400 0000 0000 0000 4000 4400 0000 0000 0000 c0e0 6600 0000 0000 0000 80a0 2200 0000 0000 0001 80a0 3200 0000 0000 0001 07bc 1200 0000 0000 0003 0404 1a00 0000 0000 0002 07bc 0a00 0000 0000 0006 00a0 0e00 0000 0000 0004 00a0 0200 0000 0000 0004 00a0 0200 0000 0000 0004 00a0 0200 0000 0000 000c 00a0 0200 0000 0000 0008 00a0 0200 0000 0000 0008 00e0 0300 0000 0000 0018 0000 0100 0000 0000 0010 0000 0100 0000 0000 0010 0000 0100 0000 0000 0010 0000 0100 0000 0000 0018 0000 0300 0000 0000 0008 0000 0200 0000 0000 0008 0000 0200 0000 0000 0008 0000 0200 0000 0000 000c 0000 0600 0000 0000 0004 0000 0400 0000 0000 0006 0000 0c00 0000 0000 0002 0000 0800 0000 0000 0003 0000 1800 0000 0000 0001 0000 1000 0000 0000 0001 0000 1000 0000 0000 0001 8000 3000 0000 0000 0000 ffff e000 0000 0000 0000 8000 2000 0000 0000 0000 8000 2000 0000 0000 0000 ffff e000 0000 0000 0000 4040 4000 0000 0000 0000 60e0 c000 0000 0000 0000 71b1 c000 0000 0000 0000 71b1 c000 0000 0000 0000 60e0 c000 0000 0000 0000 4040 6000 0000 0000 0000 ffff e000 0000 0000 0000 8000 2000 0000 0000 0000 8000 2000 0000 0000 0001 8000 3000 0000 0000 0001 0000 1000 0000 0000 0003 ffff f800 0000 0000 0000 0110 0000 0000 0000 0000 0110 0000 0000 0000 0000 0318 0000 0000 0000 0000 060c 0000 0000 0000 0000 0c06 0000 0000 0000 0000 18e3 0000 0000 0000 1ff8 30a1 83ff 8000 0000 700f e1b0 fe00 e000 0003 c000 0310 0000 3c00 000e 0000 0718 0000 0700 0003 1ff8 1c0e 03ff 8c00 0001 f00f f003 fe00 f800 0003 0000 0000 0000 0c00 0006 0000 0000 0000 0600 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000>} imagemask } put CharacterDefs /king { makebits { < 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 01c0 0000 0000 0000 0000 01c0 0000 0000 0000 0000 07f0 0000 0000 0000 0000 07f0 0000 0000 0000 0000 01c0 0000 0000 0000 0000 01c0 0000 0000 0000 0000 07f0 0000 0000 0000 0000 0ff8 0000 0000 0000 0000 0ff8 0000 0000 001f f800 0c18 003f f800 007f fe00 1ddc 00ff fe00 00ff ff00 1ddc 01ff ff00 01ff ffc0 1ddc 07ff ff80 03ff fff0 1ddc 0fff ffc0 07ff fff8 1ddc 1fff 1fe0 07f8 03fc 1ddc 3fe0 47e0 0ff3 f9fe 0c18 7fcf f3f0 0fe7 fc7f 0ff8 7e3f fbf0 0fcf ff3f 8ff8 fcff f9f0 1fdf ffbf cff9 fdff fdf8 1f9f ff9f c7f1 fbff fcf8 1fbf ffcf f7f3 f3ff fef8 1fbf ffe7 f7f7 f7ff fef8 3fbf fff3 ffff e7fc 3efc 3f3c 3ffb ff7f cfbc 3efc 3f7c 3f79 fe3f 9f9c 3efc 3f7c 3e7d fc1f 9fdc 3efc 3f7c 1efc fe3f 3fdc fefc 3f7f defe ff7f 7fd9 fefc 1f7f ddfe 7ffe 7fdb 9ef8 1f7f cdff 7ffe ffd3 3ef8 1f79 edff 7ffe ffd4 7cf8 1f7c 65ff 3ffe ffc5 fdf8 1f7f 15ff bf7c ffcb fdf8 1fbf c1ff be3d ffc3 fdf8 0fbf f1ff 9c1d ffc7 fdf8 0fbf f9ff de3d ff8f f9f0 0f9f fdff df7d ffbf fbf0 0fdf fcff cff9 ffbf fbf0 0fcf feff effb ff3f fbf0 07ef fe7f effb ff7f fbe0 07ef ff7f effb fe7f f3e0 07e7 ff7f effb feff f7e0 03f7 ff3f f777 feff e7c0 03f3 ffbf f637 fcff efc0 01fb ff9f f777 fdff cf80 01f9 ffdf f7f7 f9ff df80 00fd ffdf f7f7 fbff 9f00 007e ffcf f7f7 fbff 7e00 007e 7fff f7f7 fffe 7e00 003f 3fff f7f7 fffe fc00 003f 9fff f7f7 fffc f800 001f dfc0 07f0 00f9 f800 000f c01f ffff fe03 f000 0007 fffd ef7b dfff e000 0003 ffb8 c631 8eff c000 0001 f71d ef7b dc77 8000 0000 e3bf ffff fee3 0000 0000 77ff 0000 3ff6 0000 0000 7fc0 7fff 80fe 0000 0000 601f fe3f fe06 0000 0000 7fff f80f fffe 0000 0000 63ff e003 ffc6 0000 0000 60ff f80f ff06 0000 0000 603f fe3f fc06 0000 0000 60ff ffff ff06 0000 0000 63ff 0000 3fc6 0000 0000 7fc0 7fff 80fe 0000 0000 601f ffff fe06 0000 0000 7fff ffff fffe 0000 0000 7fff ffff fffe 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000>} imagemask } put CharacterDefs /king_outline { makebits { < 0000 0000 0000 0000 0000 0000 0000 03e0 0000 0000 0000 0000 0220 0000 0000 0000 0000 0e38 0000 0000 0000 0000 0808 0000 0000 0000 0000 0808 0000 0000 0000 0000 0e38 0000 0000 0000 0000 0220 0000 0000 0000 0000 0220 0000 0000 0000 0000 1e3c 0000 0000 0000 0000 1004 0000 0000 001f f800 3006 003f f800 0070 0e00 21c2 00e0 0e00 00c0 0300 2362 0180 0300 0180 01c0 2222 0700 0180 0300 0070 2222 0c00 00c0 0600 0018 2222 1800 e060 0407 fc0c 2362 301f b820 0c0c 0606 31c6 6030 0c30 0818 0383 1004 41c0 0430 0830 00c1 9004 c300 0610 1820 0040 d1c5 8200 0218 1060 0060 5e6d 0400 0308 1040 0030 7c3e 0c00 0108 1040 0018 1818 0800 0108 3040 000c 0000 1803 c10c 20c3 c004 0080 3043 c104 2083 c086 01c0 6063 c104 2083 c182 03e0 6023 c104 2083 e103 01c0 c023 0104 3080 2101 0080 8026 010c 1080 2201 8001 8024 6108 1080 3200 8001 002c c108 1086 1200 8001 002b 8308 1083 9a00 c001 003a 0208 1080 ea00 4083 0034 0208 1840 3e00 41c2 003c 0218 0840 0e00 63e2 0038 0218 0840 0600 21c2 0070 0610 0860 0200 2082 0040 0410 0820 0300 3006 0040 0430 0c30 0100 1004 00c0 0430 0410 0180 1004 0080 0420 0410 0080 1004 0180 0c20 0618 0080 1004 0100 0860 0208 00c0 0888 0100 1840 030c 0040 09c8 0300 10c0 0104 0060 0888 0200 2080 0186 0020 0808 0600 2180 0082 0020 0808 0400 6300 00c1 0030 0808 0400 8200 0041 8000 0808 0001 8600 0060 8000 0808 0001 0c00 0030 8000 0808 0003 0800 0018 40ff f80f ff06 1800 000c 7f80 0000 01fc 3000 0004 0002 1084 2000 6000 0003 0047 39ce 7100 c000 0001 88e2 1084 2388 8000 0000 dc40 0000 011d 0000 0000 4800 ffff c009 0000 0000 403f 8000 7f03 0000 0000 5fe0 01c0 01fa 0000 0000 4000 07f0 0002 0000 0000 5c00 1ffc 003a 0000 0000 5f00 07f0 00fa 0000 0000 5fc0 01c0 03fa 0000 0000 5f00 0000 00fa 0000 0000 5c00 ffff c03a 0000 0000 403f 8000 7f02 0000 0000 5fe0 0000 01fa 0000 0000 4000 0000 0002 0000 0000 7fff ffff fffe 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000>} imagemask } put CharacterDefs /knight { makebits { < 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 4000 0000 0000 0000 0000 4000 0000 0000 0000 0000 e000 0000 0000 0000 0030 e000 0000 0000 0000 0018 f000 0000 0000 0000 001c f000 0000 0000 0000 000c f000 0000 0000 0000 000f f800 0000 0000 0000 000f ff00 0000 0000 0000 0007 fffe 0000 0000 0000 0007 fff0 0000 0000 0000 0007 ffff c000 0000 0000 0007 ffff 0000 0000 0000 001f fdff fc00 0000 0000 00ff fe7f f000 0000 0000 01ff ff1f ff80 0000 0000 07f0 3fc7 fe00 0000 0000 0f87 cff3 fff0 0000 0000 1fbf fff8 ff80 0000 0000 7ffc 7ffe 7ff8 0000 0000 fff8 7fff 3fe0 0000 0003 ffff ffff 8ffe 0000 0003 ffff ffff e7f8 0000 0007 ffff ffff f3ff c000 000f ffff ffff f9fc 0000 001f ffff ffff fcff e000 003f ffff ffff fe7f 0000 003f ffff ffff 7f3f e000 007f ffff fffe 7fbf 8000 00ff ffff fffc ffdf f800 00ff ffff fffd ffcf c000 01ff ffff fff9 ffef fc00 01ff ffff fff3 fff7 e000 03ff ffff fecf fff3 fe00 07ff ffff f8bf fffb e000 07ff ffff c1ff cff9 ff00 0fff fffe 01ff 9ffd f000 0fff ff00 01fe 3ffe ff80 1ffc fe00 0181 fffe 7800 18f9 fc00 03ff fffe 7fe0 19f1 f800 03ff f3fe 7c00 1fe1 f000 07ff c7ff 7fe0 0fc3 e000 0ff8 3fff 3c00 0f87 c000 0f03 ffff 3ff0 0607 8000 1fff ffff 3e00 000f 0000 3fff ffff 3ff0 000e 0000 7fff ffff 3e00 0000 0000 7fff ffff 9ff0 0000 0000 ffff ffff 9f00 0000 0001 ffff ffff 9ff0 0000 0001 ffff ffff 9f00 0000 0003 ffff ffff 9ff8 0000 0003 ffff ffff 8f80 0000 0007 ffff ffff 8ffc 0000 000f ffff ffff cf80 0000 001f ffff ffff cffc 0000 003f ffff ffff cf80 0000 003f ffff ffff cffc 0000 007f ffff ffff cf80 0000 00ff ffff ffff cffc 0000 00ff ffff ffff cf80 0000 00ff ffff ffff cffc 0000 01ff ffff ffff cf80 0000 01ff ffff ffff cffc 0000 03ff ffff ffff cf80 0000 07ff ffff ffff cffc 0000 07ff ffff ffff cf80 0000 0fff ffff ffff cffc 0000 0fff ffff ffff cf80 0000 1fff ffff ffff cffc 0000 1fff ffff ffff cf80 0000 3fff ffff ffff cffc 0000 3fff ffff ffff cf80 0000 7fff ffff ffff cffc 0000 7fff ffff ffff cf80 0000 7fff ffff ffff cffc 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000>} imagemask } put CharacterDefs /knight_outline { makebits { < 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 4000 0000 0000 0000 0000 4000 0000 0000 0000 0000 e000 0000 0000 0000 0030 a000 0000 0000 0000 0018 b000 0000 0000 0000 001c 9000 0000 0000 0000 000c 9000 0000 0000 0000 000f 9f80 0000 0000 0000 000c 00f0 0000 0000 0000 0004 001f 8000 0000 0000 0004 000c 0000 0000 0000 0004 0007 c000 0000 0000 0004 0003 0000 0000 0000 001c 0001 fc00 0000 0000 00f0 0000 1000 0000 0000 0180 0000 1f80 0000 0000 070f 8000 0200 0000 0000 0c1a e000 03f0 0000 0000 1832 2000 0080 0000 0000 701e e000 00f8 0000 0000 c407 8000 0020 0000 0001 8800 0000 003e 0000 0003 1000 0002 0008 0000 0006 2000 0002 000f c000 000c 4000 0006 0004 0000 0018 8000 0004 0007 e000 0031 0000 0004 0001 0000 0022 0000 0004 0001 e000 0064 0000 0008 0000 8000 00c8 0000 0008 0800 f800 0090 0200 0018 1000 4000 01a0 0300 0030 3000 7c00 0100 0100 03c0 6000 2000 0300 0180 0e80 c300 3e00 0600 00c0 7881 8200 2000 0400 0073 c186 0600 3f00 0c00 01fe 0138 0c00 1000 0807 8300 01e0 0800 1f80 180c 8600 0100 1000 0800 1019 8c00 0300 3000 0fe0 1031 1800 0200 c000 0400 1861 3000 0603 8000 07e0 08c3 6000 0c0c 0000 0400 0f86 4000 0878 0000 07f0 060c 4000 19c0 0000 0200 0008 4000 3000 0000 03f0 000d c000 6000 0000 0200 0003 0000 4000 0000 03f0 0000 0000 c000 0000 0100 0000 0001 8000 0000 01f0 0000 0001 0000 0000 0100 0000 0003 0000 0000 01f8 0000 0002 0000 0000 0080 0000 0006 0000 0000 00fc 0000 000c 0000 0000 0080 0000 0018 0000 0000 00fc 0000 0030 0000 0000 0080 0000 0020 0000 0000 00fc 0000 0060 0000 0000 0080 0000 00c0 0000 0000 00fc 0000 0080 0000 0000 0080 0000 0080 0000 0000 00fc 0000 0180 0000 0000 0080 0000 0100 0000 0000 00fc 0000 0300 0000 0000 0080 0000 0600 0000 0000 00fc 0000 0400 0000 0000 0080 0000 0c00 0000 0000 00fc 0000 0800 0000 0000 0080 0000 1800 0000 0000 00fc 0000 1000 0000 0000 0080 0000 3000 0000 0000 00fc 0000 2000 0000 0000 0080 0000 6000 0000 0000 00fc 0000 4000 0000 0000 0080 0000 7fff ffff ffff fffc 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000>} imagemask } put CharacterDefs /pawn { makebits { < 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 01f8 0000 0000 0000 0000 07fe 0000 0000 0000 0000 0fff 0000 0000 0000 0000 0fff 0000 0000 0000 0000 1fff 8000 0000 0000 0000 1fff 8000 0000 0000 0000 1fff 8000 0000 0000 0000 1fff 8000 0000 0000 0000 1fff 8000 0000 0000 0000 0fff 0000 0000 0000 0000 0fff 0000 0000 0000 0000 07fe 0000 0000 0000 0000 03fc 0000 0000 0000 0000 1fff 8000 0000 0000 0000 3fff c000 0000 0000 0000 7fff f000 0000 0000 0001 ffff fc00 0000 0000 0007 ffff ff00 0000 0000 001f ffff ffc0 0000 0000 0000 0fff 8000 0000 0000 0000 0fff 8000 0000 0000 0000 0fff 8000 0000 0000 0000 1fff c000 0000 0000 0000 1fff c000 0000 0000 0000 1fff c000 0000 0000 0000 3fff e000 0000 0000 0000 3fff e000 0000 0000 0000 3fff e000 0000 0000 0000 7fff f000 0000 0000 0000 7fff f000 0000 0000 0000 ffff f800 0000 0000 0001 ffff fc00 0000 0000 0001 ffff fc00 0000 0000 0003 ffff fe00 0000 0000 0007 ffff ff00 0000 0000 0007 ffff ff00 0000 0000 0007 ffff ff00 0000 0000 000f ffff ff80 0000 0000 000f ffff ff80 0000 0000 001f ffff ffc0 0000 0000 001f ffff ffc0 0000 0000 001f ffff ffc0 0000 0000 001f ffff ffc0 0000 0000 001f ffff ffc0 0000 0000 001f ffff ffc0 0000 0000 001f ffff ffc0 0000 0000 001f ffff ffc0 0000 0000 000f ffff ff80 0000 0000 000f ffff ff80 0000 0000 000f ffff ff80 0000 0000 0007 ffff ff00 0000 0000 0007 ffff ff00 0000 0000 0007 ffff ff00 0000 0000 0003 ffff fe00 0000 0000 0003 ffff fe00 0000 0000 0001 ffff fc00 0000 0000 0001 ffff fc00 0000 0000 0000 ffff f800 0000 0000 0000 7fff f000 0000 0000 0000 7fff f000 0000 0000 0000 3fff e000 0000 0000 0000 3fff e000 0000 0000 0007 ffff ff00 0000 0000 003f ffff ffe0 0000 0000 00ff ffff fff8 0000 0000 01ff ffff fffc 0000 0000 07ff ffff ffff 0000 0000 0fff ffff ffff 8000 0000 1fff ffff ffff c000 0000 3fff ffff ffff e000 0000 3fff ffff ffff e000 0000 7fff ffff ffff f000 0000 7fff ffff ffff f000 0000 7fff ffff ffff f000 0000 ffff ffff ffff f800 0000 ffff ffff ffff f800 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000>} imagemask } put CharacterDefs /pawn_outline { makebits { < 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 01f8 0000 0000 0000 0000 070e 0000 0000 0000 0000 0c03 0000 0000 0000 0000 0801 0000 0000 0000 0000 1801 8000 0000 0000 0000 1000 8000 0000 0000 0000 1000 8000 0000 0000 0000 1000 8000 0000 0000 0000 1801 8000 0000 0000 0000 0801 0000 0000 0000 0000 0c03 0000 0000 0000 0000 070e 0000 0000 0000 0000 03fc 0000 0000 0000 0000 1fff 8000 0000 0000 0000 3000 c000 0000 0000 0000 6000 7000 0000 0000 0001 c000 1c00 0000 0000 0007 0000 0700 0000 0000 001f ffff ffc0 0000 0000 0000 0800 8000 0000 0000 0000 0800 8000 0000 0000 0000 0800 8000 0000 0000 0000 1800 c000 0000 0000 0000 1000 4000 0000 0000 0000 1000 4000 0000 0000 0000 3000 6000 0000 0000 0000 2000 2000 0000 0000 0000 2000 2000 0000 0000 0000 6000 3000 0000 0000 0000 4000 1000 0000 0000 0000 c000 1800 0000 0000 0001 8000 0c00 0000 0000 0001 0000 0400 0000 0000 0003 0000 0600 0000 0000 0006 0000 0300 0000 0000 0004 0000 0100 0000 0000 0004 0000 0100 0000 0000 000c 0000 0180 0000 0000 0008 0000 0080 0000 0000 0018 0000 00c0 0000 0000 0010 0000 0040 0000 0000 0010 0000 0040 0000 0000 0010 0000 0040 0000 0000 0010 0000 0040 0000 0000 0010 0000 0040 0000 0000 0010 0000 0040 0000 0000 0018 0000 00c0 0000 0000 0008 0000 0080 0000 0000 0008 0000 0080 0000 0000 000c 0000 0180 0000 0000 0004 0000 0100 0000 0000 0004 0000 0100 0000 0000 0006 0000 0300 0000 0000 0002 0000 0200 0000 0000 0003 0000 0600 0000 0000 0001 0000 0400 0000 0000 0001 8000 0c00 0000 0000 0000 c000 1800 0000 0000 0000 4000 1000 0000 0000 0000 6000 3000 0000 0000 0000 2000 2000 0000 0000 0000 3000 6000 0000 0000 0007 f800 ff00 0000 0000 003e 1e03 81e0 0000 0000 00e0 03fe 0038 0000 0000 0180 0000 000c 0000 0000 0700 0000 0007 0000 0000 0c00 0000 0001 8000 0000 1800 0000 0000 c000 0000 3000 0000 0000 6000 0000 2000 0000 0000 2000 0000 6000 0000 0000 3000 0000 4000 0000 0000 1000 0000 4000 0000 0000 1000 0000 c000 0000 0000 1800 0000 ffff ffff ffff f800 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000>} imagemask } put CharacterDefs /queen { makebits { < 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0380 0000 0000 0000 0000 07c0 0000 0000 0000 0000 07c0 0000 0000 0000 0000 07c0 0000 0000 0000 0000 0380 0000 0000 0000 0000 0180 0000 0000 0000 0700 0180 0000 0000 0000 0f80 0180 00e0 0000 0000 0f80 0180 01f0 0000 0000 0f80 03c0 01f0 0000 0000 0700 03c0 01f0 0000 0000 0200 03c0 00e0 0000 0000 0300 03c0 00c0 0000 0000 0300 03c0 00c0 0000 0000 0300 03c0 00c0 0000 0000 0380 03c0 01c0 0000 0000 0380 03c0 01c0 0000 0000 0380 07e0 01c0 0000 0000 03c0 07e0 03c0 0000 3800 03c0 07e0 03c0 0000 7c00 03c0 07e0 03c0 0070 7c00 03e0 07e0 07c0 00f8 7c00 03e0 07e0 07c0 00f8 3c00 03e0 07e0 07c0 00f8 0e00 03f0 07e0 0fc0 0070 0600 03f0 07e0 0fc0 00c0 0700 03f0 0ff0 0fc0 01c0 0380 03f8 0ff0 1fc0 0180 0380 03f8 0ff0 1fc0 0380 03c0 03f8 0ff0 1fc0 0780 03e0 03f8 0ff0 1fc0 0780 03e0 03fc 0ff0 3fc0 0f80 03f0 03fc 0ff0 3fc0 1f80 01f8 03fc 0ff0 3fc0 1f80 01f8 03fe 0ff0 7fc0 3f80 01fc 03fe 1ff8 7fc0 3f00 01fc 03fe 1ff8 7fc0 7f00 01fe 03ff 1ff8 ffc0 ff00 01ff 03ff 1ff8 ffc0 ff00 00ff 03ff 1ff8 ffc1 ff00 00ff 83ff 9ff9 ffc1 ff00 00ff c3ff 9ff9 ffc3 ff00 00ff c3ff 9ff9 ffc7 fe00 00ff e3ff ffff ffc7 fe00 00ff f3ff ffff ffcf fe00 007f f3ff ffff ffdf fe00 007f fbff ffff ffdf fe00 007f ffff ffff ffff fe00 007f ffff ffff ffff fe00 007f ffff ffff ffff fe00 003f ffff ffff ffff fc00 003f ffff ffff ffff fc00 003f ffff ffff ffff fc00 003f ffff ffff ffff fc00 003f ffff 8001 ffff fc00 001f ffc0 3ffc 03ff f800 000f 801f fe7f f801 f800 000c 3fff f81f fffc 3000 0007 e7ff e007 ffe7 e000 0003 81ff f81f ff81 c000 0001 007f fe7f fe00 c000 0001 81ff ffff ff81 8000 0000 e7ff 8001 ffe7 0000 0000 ffc0 3ffc 03ff 0000 0001 801f ffff f801 8000 0001 3fff ffff fffc 8000 0001 ffff ffff ffff 8000 0003 ffff ffff ffff c000 0003 ffff ffff ffff c000 0003 ffff ffff ffff c000 0007 ffff ffff ffff e000 0007 ffff ffff ffff e000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000>} imagemask } put CharacterDefs /queen_outline { makebits { < 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0380 0000 0000 0000 0000 06c0 0000 0000 0000 0000 0440 0000 0000 0000 0000 06c0 0000 0000 0000 0000 0380 0000 0000 0000 0000 0180 0000 0000 0000 0700 0180 0000 0000 0000 0d80 0180 00e0 0000 0000 0880 0180 01b0 0000 0000 0d80 03c0 0110 0000 0000 0700 0240 01b0 0000 0000 0200 0240 00e0 0000 0000 0300 0240 00c0 0000 0000 0300 0240 00c0 0000 0000 0300 0240 00c0 0000 0000 0380 0240 01c0 0000 0000 0280 0240 0140 0000 0000 0280 0660 0140 0000 0000 02c0 0420 0340 0000 3800 0240 0420 0240 0000 6c00 0240 0420 0240 0070 4400 0260 0420 0640 00d8 6c00 0220 0420 0440 0088 3c00 0220 0420 0440 00d8 0e00 0230 0420 0c40 0070 0600 0210 0420 0840 00c0 0700 0210 0c30 0840 01c0 0380 0218 0810 1840 0180 0280 0208 0810 1040 0380 02c0 0208 0810 1040 0680 0260 0208 0810 1040 0480 0220 020c 0810 3040 0c80 0330 0204 0810 2040 1880 0118 0204 0810 2040 1080 0108 0206 0810 6040 3180 010c 0202 1818 4040 2100 0104 0202 1008 4040 6100 0106 0203 1008 c040 c100 0183 0201 1008 8040 8100 0081 0201 1008 8041 8100 0081 8201 9009 8041 0100 0080 c200 9009 0043 0300 0080 4200 9009 0046 0200 0080 6200 f00f 0044 0200 00c0 3200 0000 004c 0200 0040 1200 0000 0058 0200 0040 1a00 0000 0050 0200 0040 0e00 0000 0070 0200 0040 0000 0000 0000 0200 0060 0000 0000 0000 0600 0020 0000 0000 0000 0400 0020 0000 0000 0000 0400 0020 0000 0000 0000 0400 0020 0000 0000 0000 0400 0030 0000 7ffe 0000 0c00 0018 003f c003 fc00 0800 0008 7fe0 0180 07fe 1800 000c c000 07e0 0003 3000 0006 1800 1ff8 0018 6000 0002 7e00 07e0 007e 4000 0002 ff80 0180 01ff 4000 0002 7e00 0000 007e 4000 0003 1800 7ffe 0018 c000 0001 003f c003 fc00 8000 0001 7fe0 0000 07fe 8000 0001 0000 0000 0000 8000 0001 0000 0000 0000 8000 0003 0000 0000 0000 c000 0002 0000 0000 0000 4000 0002 0000 0000 0000 4000 0006 0000 0000 0000 6000 0007 ffff ffff ffff e000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000>} imagemask } put CharacterDefs /rook { makebits { < 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 1fff 0000 0000 0000 0000 1fff 0000 0000 0000 0780 1fff 003c 0000 0001 ff80 1fff 003f f000 0003 ff80 1fff 003f f800 0003 ff80 1fff 003f f800 0003 ff80 1fff 003f f800 0003 ff80 ffff e03f f800 0003 ffbf 8000 3fbf f800 0003 ffe0 3fff 80ff f800 0003 f80f ffff fe03 f800 0002 03ff e000 fff8 0800 0003 fff8 0ffe 03ff f800 0003 fe03 bfff b80f f800 0000 03ff bfff bff8 0000 0000 03ff bfff bff8 0000 0000 03ff bfff bff8 0000 0000 03ff bfff bff8 0000 0000 03ff bfff bff8 0000 0000 03ff bfff bff8 0000 0000 03ff bfff bff8 0000 0000 03ff bfff bff8 0000 0000 03ff bfff bff8 0000 0000 03fe 0000 0ff8 0000 0000 0200 ff7f e008 0000 0000 03ff ff7f fff8 0000 0000 03ff ff7f fff8 0000 0000 03ff ff7f fff8 0000 0000 03ff ff7f fff8 0000 0000 03ff ff7f fff8 0000 0000 03ff ff7f fff8 0000 0000 03ff ff7f fff8 0000 0000 03ff ff7f fff8 0000 0000 03ff ff7f fff8 0000 0000 03ff ff7f fff8 0000 0000 03ff ff7f fff8 0000 0000 03ff f001 fff8 0000 0000 0200 07fc 0008 0000 0000 03ff bfff bff8 0000 0000 03ff bfff bff8 0000 0000 03ff bfff bff8 0000 0000 03ff bfff bff8 0000 0000 03ff bfff bff8 0000 0000 03ff bfff bff8 0000 0000 03ff bfff bff8 0000 0000 03ff bfff bff8 0000 0000 03ff bfff bff8 0000 0000 03ff bfff bff8 0000 0000 03ff bfff bff8 0000 0000 0200 0000 0008 0000 0000 03ff ffbf fff8 0000 0000 03ff ffbf fff8 0000 0000 03ff ffbf fff8 0000 0000 03ff ffbf fff8 0000 0000 03ff ffbf fff8 0000 0000 03ff ffbf fff8 0000 0000 03ff ffbf fff8 0000 0000 03ff ffbf fff8 0000 0000 03ff ffbf fff8 0000 0000 03ff ffbf fff8 0000 0000 03ff ffbf fff8 0000 0000 03ff ffbf fff8 0000 0000 0200 0000 0008 0000 0000 1fff ffff ffff 0000 0000 3000 0000 0001 8000 0000 6000 0000 0000 c000 0000 4000 0000 0000 4000 0000 4000 0000 0000 4000 0000 ffff ffff ffff e000 0001 8000 0000 0000 3000 0003 0000 0000 0000 1800 0006 0000 0000 0000 0c00 0004 0000 0000 0000 0400 0004 0000 0000 0000 0400 0007 ffff ffff ffff fc00 0007 ffff ffff ffff fc00 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000>} imagemask } put CharacterDefs /rook_outline { makebits { < 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 1fff 0000 0000 0000 0000 1001 0000 0000 0000 0780 1001 003c 0000 0001 fc80 1001 0027 f000 0003 0080 1001 0020 1800 0002 0080 1001 0020 0800 0002 0080 1001 0020 0800 0002 0080 f001 e020 0800 0002 00bf 8000 3fa0 0800 0002 00e0 0000 00e0 0800 0002 0000 3fff 8000 0800 0002 000f e000 fe00 0800 0002 03f8 0000 03f8 0800 0003 fe00 4000 400f f800 0000 0200 4000 4008 0000 0000 0200 4000 4008 0000 0000 0200 4000 4008 0000 0000 0200 4000 4008 0000 0000 0200 4000 4008 0000 0000 0200 4000 4008 0000 0000 0200 4000 4008 0000 0000 0200 4000 4008 0000 0000 0200 4000 4008 0000 0000 0201 ffff f008 0000 0000 03ff 0080 1ff8 0000 0000 0200 0080 0008 0000 0000 0200 0080 0008 0000 0000 0200 0080 0008 0000 0000 0200 0080 0008 0000 0000 0200 0080 0008 0000 0000 0200 0080 0008 0000 0000 0200 0080 0008 0000 0000 0200 0080 0008 0000 0000 0200 0080 0008 0000 0000 0200 0080 0008 0000 0000 0200 0080 0008 0000 0000 0200 0ffe 0008 0000 0000 03ff f803 fff8 0000 0000 0200 4000 4008 0000 0000 0200 4000 4008 0000 0000 0200 4000 4008 0000 0000 0200 4000 4008 0000 0000 0200 4000 4008 0000 0000 0200 4000 4008 0000 0000 0200 4000 4008 0000 0000 0200 4000 4008 0000 0000 0200 4000 4008 0000 0000 0200 4000 4008 0000 0000 0200 4000 4008 0000 0000 03ff ffff fff8 0000 0000 0200 0040 0008 0000 0000 0200 0040 0008 0000 0000 0200 0040 0008 0000 0000 0200 0040 0008 0000 0000 0200 0040 0008 0000 0000 0200 0040 0008 0000 0000 0200 0040 0008 0000 0000 0200 0040 0008 0000 0000 0200 0040 0008 0000 0000 0200 0040 0008 0000 0000 0200 0040 0008 0000 0000 0200 0040 0008 0000 0000 03ff ffff fff8 0000 0000 1e00 0000 000f 0000 0000 3000 0000 0001 8000 0000 6000 0000 0000 c000 0000 4000 0000 0000 4000 0000 4000 0000 0000 4000 0000 ffff ffff ffff e000 0001 8000 0000 0000 3000 0003 0000 0000 0000 1800 0006 0000 0000 0000 0c00 0004 0000 0000 0000 0400 0004 0000 0000 0000 0400 0007 ffff ffff ffff fc00 0007 ffff ffff ffff fc00 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000>} imagemask } put CharacterDefs /shade { makebits { < 2222 2222 2222 2222 2222 4444 4444 4444 4444 4444 8888 8888 8888 8888 8888 1111 1111 1111 1111 1111 2222 2222 2222 2222 2222 4444 4444 4444 4444 4444 8888 8888 8888 8888 8888 1111 1111 1111 1111 1111 2222 2222 2222 2222 2222 4444 4444 4444 4444 4444 8888 8888 8888 8888 8888 1111 1111 1111 1111 1111 2222 2222 2222 2222 2222 4444 4444 4444 4444 4444 8888 8888 8888 8888 8888 1111 1111 1111 1111 1111 2222 2222 2222 2222 2222 4444 4444 4444 4444 4444 8888 8888 8888 8888 8888 1111 1111 1111 1111 1111 2222 2222 2222 2222 2222 4444 4444 4444 4444 4444 8888 8888 8888 8888 8888 1111 1111 1111 1111 1111 2222 2222 2222 2222 2222 4444 4444 4444 4444 4444 8888 8888 8888 8888 8888 1111 1111 1111 1111 1111 2222 2222 2222 2222 2222 4444 4444 4444 4444 4444 8888 8888 8888 8888 8888 1111 1111 1111 1111 1111 2222 2222 2222 2222 2222 4444 4444 4444 4444 4444 8888 8888 8888 8888 8888 1111 1111 1111 1111 1111 2222 2222 2222 2222 2222 4444 4444 4444 4444 4444 8888 8888 8888 8888 8888 1111 1111 1111 1111 1111 2222 2222 2222 2222 2222 4444 4444 4444 4444 4444 8888 8888 8888 8888 8888 1111 1111 1111 1111 1111 2222 2222 2222 2222 2222 4444 4444 4444 4444 4444 8888 8888 8888 8888 8888 1111 1111 1111 1111 1111 2222 2222 2222 2222 2222 4444 4444 4444 4444 4444 8888 8888 8888 8888 8888 1111 1111 1111 1111 1111 2222 2222 2222 2222 2222 4444 4444 4444 4444 4444 8888 8888 8888 8888 8888 1111 1111 1111 1111 1111 2222 2222 2222 2222 2222 4444 4444 4444 4444 4444 8888 8888 8888 8888 8888 1111 1111 1111 1111 1111 2222 2222 2222 2222 2222 4444 4444 4444 4444 4444 8888 8888 8888 8888 8888 1111 1111 1111 1111 1111 2222 2222 2222 2222 2222 4444 4444 4444 4444 4444 8888 8888 8888 8888 8888 1111 1111 1111 1111 1111 2222 2222 2222 2222 2222 4444 4444 4444 4444 4444 8888 8888 8888 8888 8888 1111 1111 1111 1111 1111 2222 2222 2222 2222 2222 4444 4444 4444 4444 4444 8888 8888 8888 8888 8888 1111 1111 1111 1111 1111 2222 2222 2222 2222 2222 4444 4444 4444 4444 4444 8888 8888 8888 8888 8888 1111 1111 1111 1111 1111>} imagemask } put %%%%%%%%% End of chessfont file here. /BuildChar % The procedure BuildChar is { BuildCharDict begin % called everytime a character % from this font must be % constructed. /char exch def % The character code is provided % as an argument to this % procedure. /fontdict exch def % So is the font dictionary. /charname fontdict /Encoding get % Convert the character code to char get def % the corresponding name by % looking it up in the encoding % vector. /charproc fontdict /CharacterDefs % Now retrieve the procedure by get charname get def % that name from the CharacterDefs % dictionary. 1 0 0 0 1 1 setcachedevice % Using the ``setcachedevice'' % operator enables the characters % from this font to be cached. gsave charproc grestore % Call the procedure which renders % the character. end } def end % Now we are done specifying all %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% /ExampleFont2 30 dict def % Allocate the font dictionary. ExampleFont2 begin /CharacterDefs 30 dict def % Define the various character ExampleFont /CharacterDefs get CharacterDefs copy pop % the required entries in the font /Encoding 256 array def % Allocate the Encoding array. 0 1 255 {Encoding exch /.notde
liam@cs.qmc.ac.uk (William Roberts) (05/07/88)
Sender: Followup-To: Distribution: Keywords: The chess font I previously offered owes all of its nice chess pieces to the font posted by Andy Walker - I just reorganised it a bit and added the tie-in with Adobe TranScript and ditroff. I will add the "fairy chess" pieces to my font, but I am still waiting to receive those designs for draughts pieces.... -- William Roberts ARPA: liam@cs.qmc.ac.uk (gw: cs.ucl.edu) Queen Mary College UUCP: liam@qmc-cs.UUCP LONDON, UK Tel: 01-975 5250