daved@cbnewsl.att.com (david.dougherty) (07/31/90)
The following shell archive contains macros for typesetting chess. These macros were written by Piet Tutelaers in the Netherlands. His address appears below. The archive contains 1. chess.sty the actual typesetting macros, 2. tal.ltx an excerpt from Bobby Fischer's "60 of my Most Memorable Games," 3. tal.ltx.diff a context diff of tal.ltx and tal.tex. That is, 'patch < tal.ltx.diff' yields tal.tex, for those who do not have LaTeX. 4. 2side.tex a set of Plain TeX macros to typeset in two- column mode (ala LaTeX). The fonts that go with these macros (also done by Piet) can be found on ymir.claremont.edu in the local:[anonymous.mf.chess] directory. -- David W. Dougherty @ AT&T Bell Laboratories ARPA: dwd@attunix.att.COM UUCP: ...!att!attunix!dwd and uucp: rcpt@urc.tue.nl | Piet Tutelaers Room RC 1.82 bitnet: rcpt@heithe5.BITNET | Eindhoven University of Technology phone: +31 (0)40 474541 | P.O. Box 513, 5600 MB Eindhoven, NL ------------------------------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 shell archive." # Contents: chess.sty tal.ltx tal.ltx.diff 2side.tex # Wrapped by rcpt@rw3.urc.tue.nl on Thu Jul 26 16:40:40 1990 PATH=/bin:/usr/bin:/usr/ucb ; export PATH if test -f 'chess.sty' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'chess.sty'\" else echo shar: Extracting \"'chess.sty'\" \(12040 characters\) sed "s/^X//" >'chess.sty' <<'END_OF_FILE' X% X% chess.sty X% --------- X% Style for writing about chess games X% Author : Piet Tutelaers (UUCP: rcpt@urc.tue.nl) X% Version: 1 (5 Jan 1990) X% X\def\@digits{ X\catcode`0=11 X\catcode`1=11 X\catcode`2=11 X\catcode`3=11 X\catcode`4=11 X\catcode`5=11 X\catcode`6=11 X\catcode`7=11 X\catcode`8=11 X\catcode`9=11} X X\def\@nodigits{ X\catcode`0=12 X\catcode`1=12 X\catcode`2=12 X\catcode`3=12 X\catcode`4=12 X\catcode`5=12 X\catcode`6=12 X\catcode`7=12 X\catcode`8=12 X\catcode`9=12} X X\def\@set[#1#2](#3){%arguments: [a-h1-8](<letter>) X \@digits\expandafter\xdef\csname#1\number#2\endcsname{#3}\@nodigits} X X% Finding next macro was not simple ... (See Excercise 7.10 TeXbook.) X\def\@get#1[#2#3]{%arguments:\cs[a-h1-8] X \@digits\edef#1{\def\noexpand#1{\csname#2\number#3\endcsname}}#1\@nodigits} X X\font\Chess=chess20 X X\newcount\@c % column X\newcount\@r % row X\newcount\@sum % row+column X X\def\@col{\ifcase\@c\or a\or b\or c\or d\or e\or f\or g\or h\fi} X X\def\@showchar{ X \@get\piece[\@col\the\@r] X \if\piece E \ifodd\@sum 0\else Z\fi\else X \if\piece P \ifodd\@sum P\else O\fi\else X \if\piece p \ifodd\@sum p\else o\fi\else X \if\piece R \ifodd\@sum R\else S\fi\else X \if\piece B \ifodd\@sum B\else A\fi\else X \if\piece N \ifodd\@sum N\else M\fi\else X \if\piece r \ifodd\@sum r\else s\fi\else X \if\piece b \ifodd\@sum b\else a\fi\else X \if\piece n \ifodd\@sum n\else m\fi\else X \if\piece K \ifodd\@sum K\else J\fi\else X \if\piece Q \ifodd\@sum Q\else L\fi\else X \if\piece k \ifodd\@sum k\else j\fi\else X \if\piece q \ifodd\@sum q\else l\fi\else X \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi} X X\def\@showrow#1{ X \@r=#1\@c=1 X \@sum=\@r\advance\@sum by\@c X \loop X \@showchar X \ifnum\@c<8 \advance\@c by1\advance\@sum by1 X \repeat X} X X\def\showboard{ X\vbox{\offinterlineskip X \hrule height1pt X \hbox{\vrule width1pt\Chess X \vbox{\hbox{\@showrow8} X \hbox{\@showrow7} X \hbox{\@showrow6} X \hbox{\@showrow5} X \hbox{\@showrow4} X \hbox{\@showrow3} X \hbox{\@showrow2} X \hbox{\@showrow1}}% X \vrule width1pt} X \hrule height1pt} X} X X% inner loop needs extra { ... } X X\def\@emptyboard{ X \@r=1 X \loop X {\@c=1 X \loop X \@set[\@col\the\@r](E) X \ifnum\@c<8 \advance\@c by1 X \repeat} X \ifnum\@r<8 \advance\@r by 1 X \repeat X} X X\def\@initboard{ X% empty squares X \@r=3 X \loop X {\@c=1 X \loop X \@set[\@col\the\@r](E) X \ifnum\@c<8 \advance\@c by1 X \repeat} X \ifnum\@r<6 \advance\@r by 1 X \repeat X% pawns X \@c=1 X \loop X \@set[\@col2](P)\@set[\@col7](p) X \ifnum\@c<8 \advance\@c by1 X \repeat X% pieces X \@set[a1](R)\@set[h1](R) X \@set[a8](r)\@set[h8](r) X \@set[b1](N)\@set[g1](N) X \@set[b8](n)\@set[g8](n) X \@set[c1](B)\@set[f1](B) X \@set[c8](b)\@set[f8](b) X \@set[d1](Q)\@set[e1](K) X \@set[d8](q)\@set[e8](k) X} X X% X% The next part defines a user friendly notation for chess moves. X% Moves works only in chess-environment: \begin{chess} ... \end{chess} X% in LaTeX, or \chess ... \endchess in TeX. X% Some examples: |21. Nf3-e5, Ke8*f8 22. 0-0-0+, Bh8*a1| X% : |21.: Ke8*f8 22. Bh8*a1, 0-0| X% : |21 Nfe5 K*f8 22 0-0-0! B*a1| X% : |21: K*f8 22 B*a1 0-0| X% X X\font\Fig=chessfig10 X X\gdef\@king{{\Fig K}} X\gdef\@queen{{\Fig Q}} X\gdef\@rook{{\Fig R}} X\gdef\@bishop{{\Fig B}} X\gdef\@knight{{\Fig N}} X\gdef\@dash{--} X\gdef\@capt{$\times$} X\gdef\@dots{~$\ldots$,} X\gdef\@dot{\char46} X X\newif\ifnotation \notationfalse X\catcode`|=\active X{% X \catcode`:=\active\catcode`.=\active\catcode`*=\active\catcode`-=\active X \catcode`K=\active\catcode`Q=\active\catcode`R=\active\catcode`B=\active X \catcode`N=\active\catcode`D=\active\catcode`T=\active\catcode`L=\active X \catcode`P=\active X \gdef\@notation{% X \ifnotation X \endgroup\notationfalse X \else X \begingroup\notationtrue X \catcode`:=\active\catcode`.=\active\catcode`*=\active\catcode`-=\active X \catcode`K=\active\catcode`Q=\active\catcode`R=\active\catcode`B=\active X \catcode`N=\active\catcode`D=\active\catcode`T=\active\catcode`L=\active X \catcode`P=\active X \let K=\@king\let Q=\@queen\let R=\@rook\let B=\@bishop\let N=\@knight X \let D=\@queen\let T=\@rook\let L=\@bishop\let P=\@knight\let-=\@dash X \let*=\@capt\let:=\@dots\let.=\@dot X \fi} X% X% Provide a chess environment in which the `|' character is active, because X% the `|' is used by LaTeX in the `tabular' environment! X% X \gdef\chess{\catcode`|=\active\let|=\@notation} X \gdef\endchess{\catcode`|=12} X} X\catcode`|=12 X X% X% Next part provides a ply (half move) generator X% X X\newif\ifWhite \newif\ifFigure \newif\ifcapture X X% X% next newif's needed for castling X% X\newif\ifKnotmoved \newif\ifknotmoved X\newif\ifcastling \newif\ifoo X X% X% Globals for special pawn moves (en passant capture and promotion) X% X X\newif\ifenpassant \newif\ifpromotion X X\def\@color#1{ % Color of a piece 0: none, -1: black, 1: white X \if #1E0\else X \if #1P1\else\if #1R1\else\if #1N1\else\if #1B1 X \else\if #1K1\else\if #1Q1\else X \if #1p-1\else\if #1r-1\else\if #1n-1\else\if #1b-1\else X \if #1q-1\else\if #1k-1 X \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi} X X% X% No checking is done for validity of moves, only legal moves behave well!! X% X X\def\@ply#1#2#3#4#5 {% Syntax: [a-h][1-8][a-h][1-8]{QRBN} X \@get\piece[#1#2]\@get\capture[#3#4]\Figuretrue X \if\capture E\capturefalse\else\capturetrue\fi X \ifWhite X \if\piece P\Figurefalse X \if#46 X \if\eprow#3\capturetrue\enpassanttrue\fi X \xdef\eprow{x} X \else X \xdef\eprow{x} X \if#22 X \if#44\xdef\eprow{#3}\fi X \else X \if#48\promotiontrue\fi X \fi X \fi X \else X \if\piece K% check for possible castling X \ifKnotmoved X \if#3g\if#41\castlingtrue\ootrue\fi X \else\if#3c\if#41\castlingtrue\oofalse\fi\fi X \fi X \fi X \fi X \fi X \ifcastling X \@set[#1#2](E)\@set[#3#4](K) X \ifoo 0\@dash0#5\@set[f1](R)\@set[h1](E) X \else 0\@dash0#5\@dash0\@set[d1](R)\@set[a1](E)\fi X \castlingfalse\Knotmovedfalse X \else X \ifFigure{\Fig\piece}\fi X #1#2\ifcapture\@capt\else\@dash\fi#3#4 X \ifpromotion{\Fig#5}\else#5\fi X \@set[#1#2](E) X \ifpromotion\@set[#3#4](#5)\else\@set[#3#4](\piece)\fi X \ifenpassant\@set[#3#2](E)\enpassantfalse\fi X \fi X \global\Whitefalse X \else X \if\piece p\Figurefalse X \if#43 X \if\eprow#3\capturetrue\enpassanttrue\fi X \xdef\eprow{x} X \else X \xdef\eprow{x} X \if#27 X \if#45\xdef\eprow{#3}\fi X \else X \if#41\promotiontrue\fi X \fi X \fi X \else X \if\piece k X \ifknotmoved X \if#3g\if#48\castlingtrue\ootrue\fi X \else\if#3c\if#48\castlingtrue\oofalse\fi\fi X \fi X \fi X \fi X \fi X \ifcastling X \@set[#1#2](E)\@set[#3#4](k) X \ifoo 0\@dash0#5\@set[f8](r)\@set[h8](E) X \else 0\@dash0#5\@dash0\@set[d8](r)\@set[a8](E)\fi X \castlingfalse\knotmovedfalse X \else X \ifFigure{\Fig\if\piece rR\else\if\piece bB\else\if\piece nN\else X \if\piece qQ\else K\fi\fi\fi\fi}\fi% X #1#2\ifcapture\@capt\else\@dash\fi#3#4 X \ifpromotion{\Fig#5}\else#5\fi X \@set[#1#2](E)\ifpromotion\@set[#3#4](#5)\else\@set[#3#4](\piece)\fi X \ifenpassant\@set[#3#2](E)\enpassantfalse\fi X \fi X \global\Whitetrue X \fi X} X X\newcount\movecount \movecount=0 X X\def\move#1 #2 {\frenchspacing X \ifWhite\advance\movecount by 1\fi X \hskip1cm\llap{\the\movecount.}\hskip.5cm X \hbox to 2.3cm{\hfil\@ply#1 \hfil}\hskip.5cm X \hbox to 2.3cm{\hfil\@ply#2 \hfil} X \par} X X\def\ply#1 {\frenchspacing X \ifWhite\advance\movecount by 1 X \hskip1cm\llap{\the\movecount.}\hskip.5cm X \hbox to 2.3cm{\hfil\@ply#1 \hfil} X \else\hskip1cm\llap{\the\movecount.}\hskip.5cm X \hbox to 2.3cm{\hfil$\ldots$\hfil}\hskip.5cm X \hbox to 2.3cm{\hfil\@ply#1 \hfil} X \fi\par} X X\def\newgame{\movecount=0 \@initboard X \Whitetrue\castlingfalse X \Knotmovedtrue\knotmovedtrue X \promotionfalse\enpassantfalse} X X\def\@dolist{\afterassignment\@dodolist\let\@next= } % Answer 11.5 TeXbook X\def\@dodolist{\ifx\@next\@endlist \let\@next\relax % adapted to generate X \else \\\let\@next\@dolist \fi % chess diagrams X \@next} X X\def\@endlist{\@endlist} X X\def\\{\if\@next\space\@set[\@col\the\@r](E)\else X \if\@next * \@set[\@col\the\@r](E)\else X \if\@next P \@set[\@col\the\@r](P)\else X \if\@next p \@set[\@col\the\@r](p)\else X \if\@next R \@set[\@col\the\@r](R)\else X \if\@next r \@set[\@col\the\@r](r)\else X \if\@next B \@set[\@col\the\@r](B)\else X \if\@next b \@set[\@col\the\@r](b)\else X \if\@next N \@set[\@col\the\@r](N)\else X \if\@next n \@set[\@col\the\@r](n)\else X \if\@next K \@set[\@col\the\@r](K)\else X \if\@next k \@set[\@col\the\@r](k)\else X \if\@next Q \@set[\@col\the\@r](Q)\else X \if\@next q \@set[\@col\the\@r](q)\else X \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi X \advance\@c by1} X X\def\@initrow#1#2{\@r=#1\@c=1\@dolist#2\@endlist} X X% X% For setting up a position X% X\def\board#1#2#3#4#5#6#7#8{ X \@initrow8{#1} X \@initrow7{#2} X \@initrow6{#3} X \@initrow5{#4} X \@initrow4{#5} X \@initrow3{#6} X \@initrow2{#7} X \@initrow1{#8}} X X% X% Next macros for defining chess position (thanks to Victor Eijkhout) X% X\newcount\@L X\def\White(#1){\xWhite#1,xxx,} X\def\xWhite#1,{\def\temp{#1}\def\match{xxx} X \ifx\temp\match \else \WhitePieceOrPawn#1XY \expandafter\xWhite \fi} X\def\WhitePieceOrPawn#1#2#3#4Y{% X \if#3X \@set[#1#2](P) X \else\@L=`#1\advance\@L by-`A % X \ifcase\@L\or X \@set[#2#3](B)\or% Bishop X \@set[#2#3](N)\or% Cavalier X \@set[#2#3](Q)\or\or% Dame X \@set[#2#3](B)\or\or\or\or\or% Fou X \@set[#2#3](K)\or% King Koning K"onig X \@set[#2#3](B)\or\or% Loper L"aufer X \@set[#2#3](N)\or\or % kNight X \@set[#2#3](N)\or% Paard X \@set[#2#3](Q)\or% Queen X \@set[#2#3](R)\or% Rook (no Roi....) X \@set[#2#3](N)\or% Springer X \@set[#2#3](R)\or\or\or\or\or\or\fi% Toren T"urm Tour X \fi} X X\def\Black(#1){\xBlack#1,xxx,} X\def\xBlack#1,{\def\temp{#1}\def\match{xxx} X \ifx\temp\match \else \BlackPieceOrPawn#1XY \expandafter\xBlack \fi} X\def\BlackPieceOrPawn#1#2#3#4Y{ X \if#3X\@set[#1#2](p) X \else\@L=`#1\advance\@L by-`A % X \ifcase\@L\or X \@set[#2#3](b)\or% Bishop X \@set[#2#3](n)\or% Cavalier X \@set[#2#3](q)\or\or% Dame X \@set[#2#3](b)\or\or\or\or\or% Fou X \@set[#2#3](k)\or% King Koning K"onig X \@set[#2#3](b)\or\or% Loper L"aufer X \@set[#2#3](n)\or\or % kNight X \@set[#2#3](n)\or% Paard X \@set[#2#3](q)\or% Queen X \@set[#2#3](r)\or% Rook (no Roi....) X \@set[#2#3](n)\or% Springer X \@set[#2#3](r)\or\or\or\or\or\or\fi% Toren T"urm Tour X \fi} X X\def\beginposition{\begingroup% X \@emptyboard\movecount=0 X \Whitetrue\castlingfalse X \Knotmovedtrue\knotmovedtrue X \promotionfalse\enpassantfalse} X\def\endposition{\endgroup} X X\let\Wit=\White \let\Zwart=\Black X\let\Weiss=\White \let\Schwarz=\Black X\let\Blanc=\White \let\Noir=\Black END_OF_FILE if test 12040 -ne `wc -c <'chess.sty'`; then echo shar: \"'chess.sty'\" unpacked with wrong size! fi # end of 'chess.sty' fi if test -f 'tal.ltx' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'tal.ltx'\" else echo shar: Extracting \"'tal.ltx'\" \(6850 characters\) sed "s/^X//" >'tal.ltx' <<'END_OF_FILE' X\documentstyle[a4wide,chess,twocolumn]{article} X\font\sc=cmcsc10 X X\begin{document} X\subsection*{Fischer -- Tal} X\centerline{Candidates' Tournament 1959}\medskip X\begin{chess} % this activates the | character X{\sl A very near miss\smallskip X XThis is one of the four games that Fisher lost to Tal who, in winning Xthis tournament, earned the right to meet and trounce Botvinnik for the Xworld championship. X XIn jest the whimsical Tal signed Fisher's name, in addition to his own, Xwhen asked for an autograph. ``Why not?'' he quipped; ``I've beaten XBobby so often |:| that gives me the right to sign for him!'' X XA carefull reading of Fisher's notes will reveal a clear echo of the Xstrong emotions that engulfed him during this tense encounter. He misses Xa win in the opening and several draws along the way, demonstrating Xdramatically how a continuously advantageous position can abruptly be Xturned into defeat by seemingly insignificant miscalculations.} X X{\sc Sicilian Defense}\medskip X X\newgame X\move e2e4 c7c5 X\move g1f3 d7d6 X\move d2d4 c5d4 X\move f3d4 g8f6 X\move b1c3 a7a6 X\move f1c4 e7e6 X\ply c4b3 X XI had no better luck against Blackstone, in an exhibition game at Davis, XCalifornia, 1964, with |7. 0-0, Be7; 8. Bb3, Qc7; 9. f4, b5; 10. f5, b4; X11. f*e6!? (11. Nce2, e5; 12. Ng3, Bb7| is bad for White), |b*c3; 12. e*f7+, XKf8; 13. Bg5, Ng4!| and Black should win. X X\ply b7b5! X XThis reaction must be prompt! X XIn our first lap game here Tal played the weaker |7.: Be7?; 8. f4, 0-0| X(for |8.: b5| see the note to Black's 8th move); |9. Qf3, Qc7 and now X10. f5! (instead of 10. 0-0?, b5; 11. f5, b4!; 12. Na4, e5; 13. Ne2, XBb7| and Black stands better), |e5 (not 10.: Nc6; 11. Be3 with a bind); X11. N4e2, b5; 12. a3, Bb7; 13. g4| with a strong attack. X X\move f2f4!? b5b4! XIndirectly undermining White's center. X X\move c3a4 f6e4 X\move e1g1 g7g6? XCorrect is |10.: Bb7|. X X\ply f4f5! XThis riposte caught Tal completely unaware. Black's king trapped in the Xcenter, will soon be subject to mayhem. X X\ply g6f5 XNot |11.: e*f5; 12. Bd5, Ra7; 13. N*f5!, g*f5; 14. Qd4|. X X\ply d4f5! XPanov, with typical iron curtain ``objectivity'', commented in the XSoviet tournament bulletins: ``Almost all game Fischer played in Tal Xstyle. But all his trouble was in vain because Tal did not defend in XFischer style---instead he found the one and only saving Xcounterchance!'' X X$$\showboard$$ X X\ply h8g8 XWoozy, Tal stumbles into a dubious defense. Better is |12.: d5 (not 12.: Xe*f5?; 13. Qd5, Ra7; 14. Qd4 spearing a rook); Nh6, B*h6; 14. B*h6|. X X\ply b3d5! XA shot! X X\ply a8a7 X``|13.: e*d5; 14. Q*d5, B*f5; 15. R*f5, Ra7; 16. Qe4+; Re7; 17. Q*b4, XRe2; 18. Bg5!, R*g5; 19. R*g5, Q*g5; 20. Q*b8+ wins|'' ({\sc PANOV}). X X\ply d5e4? XCorrect is |14. Be3!, Nc5; 15. Qh5!, Rg6 (if 15.: N*a4, 16. B*a7, e*d5; XRae1+); 16. Rae1!| and White's every piece is bearing down on Black's Xking ({\sc KEVITZ}). X X\ply e6f5 X\ply e4f5 XProbably it's better to avoid exchanges with |15. Bd5 or Bf3|. X X\ply a7e7! XA unique way of shielding the K-file. X X\move f5c8 d8c8 X\ply c1f4? XThe right move is simply |17. c3! (not 17. Q*d6?, R*g2+; 18. K*g2, Re2+; X19. Kf3, B*d6; 20. K*e2, Q*c2+ wins), and if : Qc6; 18. Rf2|. X X\ply c8c6! X\move d1f3 c6a4 XSuch a surprise that I didn't dare believe my eyes! I had expected |18.: XQ*f3; 19. R*f3, Re2; 20. Rf2, R*f2; 21. K*f2| and White has a slight Xedge after a3 because of Black's disconnected pawns. X X\move f4d6 a4c6! XTal finds a inspired defense. X X\move d6b8 c6b6+ XWhite remains a clear pawn ahead after |20.: D*f3; 21. R*f3, Bg7; 22. c3|. X X\move g1h1 b6b8 XThe crowd was shouting and whistling with each move. Later I was Xinformed that many sport fans were in the audience. Maybe some soccer Xmatch had been canceled. As a consequence chess was the main attraction Xthat day in Belgrade. X X\ply f3c6+ XMany annotators believed that |22. Rae1| was the winning move. Tal Xhimself confessed he thougt Black was lost after that. But |22.: Kd8!| Xholds in all lines (not |22.: Rg6?; 23. Q*f7+, Kd7; 24. Rd1+!, Rd6; 25. XR*d6+, K*d6; 26. Rf6+!| wins). I've studied this position for ages, it Xseems, and the best I can find is |23. Rd1+, Kc7! (23.: Kc8?; Qc6+ Xwins); 24. Qf4+ (if 24. Rd4, Qb7!), Kb7; 25. Rd6, Qc7; 26. Q*b4+, Kc8; X27. R*a6, Qb7!; 28, Q*b7+, K*b7; 29. Raf6, Rg7|=. X X\ply e7d7 X\ply a1e1+ XBlack holds after |23. Rad1, Bd6; 24. R*f7 (if 24. Rf6, Rg6; 25. R1*d6?, XQ*d6!), Qc7,| etc. And on |23. R*f7, Qd6|. X X\ply f8e7 XFinally Tal ``develops'' his bishop. Not |23.: Kd8; 24. R*f7!, Be7; 25. XR7*e7, R*e7; 26. Rd1+| wins. X X\move f1f7 e8f7 X\move c6e6+ f7f8! XI thought he had to go to g7, whereupon |26. Q*d7| wins easily. X X$$\showboard$$ X X\ply e6d7 XNot |26. Rf1+. Kg7; 27. Rf7+, Kh8; and if 28. Q*d7, Rd8; 29. Qg4, Qe5| Xwins. X X\ply b8d6 X\move d7b7 g8g6 XWithin a handfull of moves the game has changed its complexion. Now Xit is White who must fight for a draw! X X\ply c2c3! XBlack's extra piece means less with each pawn that's exchanged. X X\ply a6a5 XOn |28.: b*c3; 29. Qb8+, Qd1; 30. Q*a6|=. X X\ply b7c8+ XOn the wrong track. Right is |29. c*b4!, Q*b4 (if 29.: a*b4; 30. a3!, Xb*a3; 31. b*a3, Q*a3 draws); 30. Qf3+, Kg7; 31. Qe2| draws, since Black Xcan't possibly build up a winning K-side attack and his own king is to Xexposed. X X\ply f8g7 X\move c8c4 e7d8 X\move c3b4 a5b4 XOn |31.: Q*b4; 32. Qe2| White should draw with best play. X X\ply g2g3? XCreating loosing chances. I don't see how Black can make any progress Xafter |32. Qe4|. If |32.: Bc7; 33. Qe7+, Kg8; 34. Qe8+, Qf8; 35. Qe4|, Xetc. X X\ply d6c6+ X\move e1e4 c6c4 X\move e4c4 g6b6! XI overlooked this. Now Black has winning chances. I had planned on a Xdraw after |34.: Be7?; 35. a3!| dissolving Black's b--pawn (|35.: b3 is Xanswerred by 36. Rc7 followed by Rb7|). X X\move h1g2 g7f6 X\move g2f3 f6e5 X\ply f3e3 X|37. a3| is met as always, by b3. Once White can eliminate Black's Xb--pawn it's a theoretical draw. X X\ply d8g5+ X\move e3e2 e5d5 X\move e2d3 g5f6 XWhite might be able to draw this ending, but it's an ugly defensive chore. X X\ply c4c2? XToo passive. I wanted to avoid immobilizing my Q--pawns with |40. b3| Xbut it's the best hope now. On |40.: Be7; 41. Rd4+| preserves drawing Xchances. X X$$\showboard$$ X X\ply f6e5 X\move c2e2 b6f6 X\move e2c2 f6f3+ X\move d3e2 f3f7 X\move e2d3 e5d4! XLittle by little Tal inches his way in. X X\ply a2a3 XOn |45. b3, Rf3+; 46. Ke2, Rf2+; 47. Qd3, R*c2; 48. Ke4| wins. X X\ply b4b3 X\ply c2c8 XEqually hopeless is |46. Re2 (or 46. Rd2, Rf3+; 47. Ke2, Rf2+), Rf3+; X47. Kd2, B*b2| etc. X X\ply d4b2 X\move c8d8+ d5c6 X\move d8b8 f7f3+ X\move d3c4 f3c3+ X\move c4b4 b2a1 X\move a3a4 b3b2! X X$$\showboard$$ X XWhite resigns. X XIf |52. K*c3, b1Q+!| X\end{chess} X XFrom: {\sl My 60 Memorable Games}, by Bobby Fischer; Faber and Faber, XLondon. 1969. {\sc ISBN} 0 571 09312 4 X\end{document} END_OF_FILE if test 6850 -ne `wc -c <'tal.ltx'`; then echo shar: \"'tal.ltx'\" unpacked with wrong size! fi # end of 'tal.ltx' fi if test -f 'tal.ltx.diff' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'tal.ltx.diff'\" else echo shar: Extracting \"'tal.ltx.diff'\" \(1366 characters\) sed "s/^X//" >'tal.ltx.diff' <<'END_OF_FILE' X*** tal.ltx Thu Jul 26 16:01:32 1990 X--- tal.tex Thu Jul 26 16:03:51 1990 X*************** X*** 1,10 **** X! \documentstyle[a4wide,chess,twocolumn]{article} X \font\sc=cmcsc10 X X! \begin{document} X! \subsection*{Fischer -- Tal} X! \centerline{Candidates' Tournament 1959}\medskip X! \begin{chess} % this activates the | character X {\sl A very near miss\smallskip X This is one of the four games that Fisher lost to Tal who, in winning X this tournament, earned the right to meet and trounce Botvinnik for the X--- 1,13 ---- X! \catcode`@=11 X! \input chess.sty X! \catcode`@=12 X! \input 2side X! \gutter{15pt} X \font\sc=cmcsc10 X X! {\bf Fischer -- Tal}\smallskip X! Candidates' Tournament 1959\medskip X! \chess % this activates the | character X {\sl A very near miss\smallskip X This is one of the four games that Fisher lost to Tal who, in winning X this tournament, earned the right to meet and trounce Botvinnik for the X*************** X*** 222,229 **** X White resigns. X X If |52. K*c3, b1Q+!| X! \end{chess} X X From: {\sl My 60 Memorable Games}, by Bobby Fischer; Faber and Faber, X London. 1969. {\sc ISBN} 0 571 09312 4 X! \end{document} X--- 225,232 ---- X White resigns. X X If |52. K*c3, b1Q+!| X! \endchess % | not active anymore X X From: {\sl My 60 Memorable Games}, by Bobby Fischer; Faber and Faber, X London. 1969. {\sc ISBN} 0 571 09312 4 X! \bye END_OF_FILE if test 1366 -ne `wc -c <'tal.ltx.diff'`; then echo shar: \"'tal.ltx.diff'\" unpacked with wrong size! fi # end of 'tal.ltx.diff' fi if test -f '2side.tex' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'2side.tex'\" else echo shar: Extracting \"'2side.tex'\" \(1607 characters\) sed "s/^X//" >'2side.tex' <<'END_OF_FILE' X% X% This is a 2-side format for TeX. Simply X% X% \input 2side X% \gutter{5pt} X% X% You want to have set your hsize, vsize, hoffset, and voffset X% (and magnification) *before* inputting this file. X% X% You can also say `\top{...}' and the `...' will be placed at X% the top of the page, and the columns will be reduced X% proportionally. This is useful for the title of the document, X% and any comments you might want to put later in the document. X% Note that if you put this command after the first half of the X% page has been `shipped', it will be postponed until the next X% page. X% X\newdimen\fullsize\fullsize=\hsize X\newdimen\realvsize\realvsize=\vsize X\def\gutter#1{\global\advance\hsize by-#1 \global\divide\hsize by 2}% X\def\makefootline{\baselineskip24pt\hbox to\fullsize{\the\footline}}% X\let\lr=L \newbox\leftcolumn X\let\ntop=\relax X\output={\if L\lr X \global\setbox\leftcolumn=\columnbox \global\let\lr=R X \else\global\let\lr=L\doubleformat\global\fi X \ifnum\outputpenalty>-20000\else\dosupereject\fi X \global\let\ntop=\relax}% X\def\doubleformat{\shipout\vbox{\hbox{\box\topbox}% X \hbox to\fullsize{\box\leftcolumn\hfil\columnbox}% X \makefootline}% X \global\vsize=\realvsize\ntop X \advancepageno}% X\def\columnbox{\leftline{\pagebody}}% X\newbox\topbox X\def\top#1{\if L\lr\message{Setting...} X {\hsize=\fullsize\global\setbox\topbox=\vbox{#1}% X \global\vsize=\realvsize X \global\advance\vsize by-\ht\topbox X \global\advance\vsize by-\baselineskip}% X \else\global\def\ntop{\top{#1}}\message{Saving...}% X \fi}% X\def\bye{\vfill\eject\if R\lr\null\vfill\eject\fi\end}% END_OF_FILE if test 1607 -ne `wc -c <'2side.tex'`; then echo shar: \"'2side.tex'\" unpacked with wrong size! fi # end of '2side.tex' fi echo shar: End of shell archive. exit 0 # end of shell archive -- -- David W. Dougherty @ AT&T Bell Laboratories ARPA: dwd@attunix.att.COM UUCP: ...!att!attunix!dwd