\documentstyle[a4wide,germanb,chess,bdfchess]{article} \parskip 3mm \parindent 0pt \newcommand{\bs}{$\backslash$} \def\TeX{\rm T\kern-.1667em\lower.7ex\hbox{E}\kern-.125emX} \def\LaTeX{\rm L\kern-.36em\raise.3ex\hbox{\sc a}\kern-.15em T\kern-.1667em\lower.7ex\hbox{E}\kern-.125emX} \sloppy \newfont{\ch}{chess10} \textheight 230mm \hbadness=10000 \begin{document} \twocolumn[\Large \bf Schachfigurensatz mit \TeX\ und \LaTeX]\par Frank Hassel\par Als Vereinsspieler mu\ss te ich in vielen Diskussionen feststellen, da\ss\ fast jeder aktive Spieler den Wunsch hat, seine Partien zu dokumentieren oder welcher Verein h\"atte nicht gerne eine Vereinszeitung. Dazu greift der versierte Schachspieler zu Diagrammstempel mit Figurentypen oder Diagramm-Prints mit Abreibefiguren und stellt bei fehlendem manuellem Geschick fest, da\ss\ ihm das Resultat mi\ss f\"allt oder auf die Dauer zu teuer wird. Der Computerbesitzer startet sein Schachprogramm, w\"ahlt den Menuepunkt \glqq PRINT DIAGRAM\grqq\ und wird in den meisten F\"allen auf eine ASCII-Textdatei sto\ss en. Wenn er Gl\"uck hat kann er eine PCX, DGM, WPG oder sonstige Graphikdatei anlegen und falls er das dazu passende Graphikprogramm hat auch ausdrucken. Wer viel Geld hat kauft sich ChessBase mit ChessSet f\"ur ca. 700.-DM. Wer allerdings \TeX\ hat, kann dies nat\"urlich auch auf elegante Weise zum Nulltarif.\par {\large \bf Schach und \TeX ?}\par Zu verdanken haben wir dies Piet Tutelaers \cite{piet}, der die f\"ur den Schachfigurensatz erforderlichen Fonts und ein Makropaket (CHESS.STY) entworfen hat. Dieser \TeX -Style erlaubt das Setzen von Schachpartien mit automatischer Stellungsberechnung in Buchdruckqualit\"at. Ebenso beinhaltet er einen Analysenmodus, welcher es erlaubt Partien zu kommentieren oder in der platzsparenden Kurznotation zu setzen. Von mir wurde ein weiteres Makropaket (BdFCHESS.STY) hinzugef\"ugt \cite{bdfchess}. Es erweitert CHESS.STY um Diagrammdarstellungen und f\"ugt insbesondere Optionen f\"ur Fernschachspieler, wie Verwaltung der Bedenkzeiten f\"ur die Z\"uge und Druck einer Postkarte zur Zug\"ubermittlung nach den Richtlinien des Deutschen Fernschachbundes hinzu.\par {\large \bf Schachfiguren}\par Um ein komplettes Schachdiagramm zu setzen ben\"otigt man 26 Zeichen. Ein leeres helles und ein leeres dunkles Feld. F\"ur jede Schachfigur (Bauer, Springer, L\"aufer, Turm, Dame und K\"onig) 4 Zeichen, je eine wei\ss e und schwarze Figur auf hellem bzw. dunklem Feld.\\[5mm] \begin{tabular}{rrrrrrrrrr} \\ P&{\ch P}&O&{\ch O}&p&{\ch p}&o&{\ch o}&0&{\ch 0}\\ N&{\ch N}&M&{\ch M}&n&{\ch n}&m&{\ch m}&Z&{\ch Z}\\ B&{\ch B}&A&{\ch A}&b&{\ch b}&a&{\ch a}&&\\ R&{\ch R}&S&{\ch S}&r&{\ch r}&s&{\ch s}&&\\ Q&{\ch Q}&L&{\ch L}&q&{\ch q}&l&{\ch l}&&\\ K&{\ch K}&J&{\ch J}&k&{\ch k}&j&{\ch j}&&\\ \end{tabular}\\[5mm] Die Tabelle zeigt uns alle Zeichen des Schachfonts CHESS10 der Gr\"o\ss e 10 point mit der je\-weiligen ASCII-Zuordung. Die Schachfonts werden von Piet Tutelaers in der Gr\"o\ss e 10, 20 und 30 point zur Verf\"ugung gestellt. Da in dem Makropaket auch der METAFONT-Quellcode der Fonts enthalten ist, ist es nach dem \"Andern eines einzigen Parameters leicht m\"oglich mit METAFONT neue Fontgr\"o\ss en zu berechnen. Mit diesem Font w\"are es im Prinzip schon m\"oglich ein Schachdiagramm zusammenzubasteln. Die ele\-gante L\"osung besteht jedoch in dem Makro \bs board\{...\}, dessen Gebrauch im folgenden Bei\-spiel erl\"autert wird : \begin{verbatim} \board{ * * L *} {* * * B } { b * * *} {* * * * } { S * * *} {kB* * * } { *K* * *} {* * * * } $$\showboard$$ \end{verbatim} \centerline{\tt Wei\ss\ am Zug, Matt in 3 Z\"ugen} Die 64 Argumente des Befehles \verb+\board+ repr\"asentieren die 64 Felder eines Schachbrettes. Um eine Figur auf ein bestimmtes Feld zu setzen, mu\ss\ man nicht die ASCII-Codierung des Zeichens kennen, sondern nur den Anfangsbuchstaben der Figur. Gro\ss buchstaben stehen f\"ur wei\ss e - ,Kleinbuchstaben f\"ur schwarze Figuren, $\sqcup$ und * f\"ur leere wei\ss e und schwarze Felder. Zur Darstellung des Brettes dient der Befehl \verb+\showboard+ bzw. \verb+$$\showboard$$+ um es zentriert zu setzen. Ergebnis mit dem Font chess20 (20~point)~: \board{ * * L *} {* * * B } { b * * *} {* * * * } { S * * *} {kB* * * } { *K* * *} {* * * * } $$\showboard$$ \centerline{Wei\ss\ am Zug, Matt in 3 Z\"ugen}\\[5mm] Die Orginalgr\"o\ss e des Brettes betr\"agt 9x9cm. Weitere Brettdarstellungsbefehle sind \bs showinversboard, \bs showboardwithnotation und \bs showinversboardwithnotation, deren Namensgebung wohl selbsterkl\"arend ist.\par {\large \bf Schachpartien}\par Falls Sie komplette Schachpartien oder Ausz\"uge daraus mit \TeX\ bzw. \LaTeX\ setzen m\"ochten, ist dies leicht mit den in diesem Absatz beschriebenen Befehlen m\"oglich. Doch zuerst wieder ein kleines Beispiel, da\ss\ einen Auszug aus einer Schachpartie wiedergibt~: \begin{position} \White(Kg1,Dc2,Tf1,Ta1,Le4,Le5,Sc3, a3,b2,d4,e3,f2,g2,h2) \Black(Ke8,Dd8,Ta8,Tg8,Lc6,Sa5,Sf6, a6,b6,c7,e6,f7,g5,h6) \global\Whitetrue\global\movecount=17 \end{position} $$\showboardwithnotation$$ \move e5f6 d8f6 \move e4c6+ a5c6 \move c3e4 f6d8 \ply c2c6+ $$\showboardwithnotation$$ Die Befehlsfolge mit \LaTeX\ sieht wie folgt aus~: \begin{verbatim} \begin{position} \White(Kg1,Dc2,Tf1,Ta1,Le4,Le5,Sc3, a3,b2,d4,e3,f2,g2,h2) \Black(Ke8,Dd8,Ta8,Tg8,Lc6,Sa5,Sf6, a6,b6,c7,e6,f7,g5,h6) \global\Whitetrue\global\movecount=17 \end{position} $$\showboardwithnotation$$ \move e5f6 d8f6 \move e4c6+ a5c6 \move c3e4 f6d8 \ply c2c6+ $$\showboardwithnotation$$ \end{verbatim} Die Initialisierung des Schachbrettes erfolgt bei einer neuen Partie mit \verb+\newgame+. Bei einem Teilspiel mit der Umgebung \verb+position+, mit seinen Befehlen \verb+\White(...)+ und \verb+\Black(...)+ mit denen die Position jeder Figur in algebraischer Notation festgelegt wird. Wei\ss\ am Zug wird mit dem Flag \verb+\Whitetrue+ und Schwarz am Zug mit \verb+\Whitefalse+ festgelegt. Mit \verb+\movecount=17+ wird \LaTeX\ die aktuelle Zugnummer mitgeteilt. Damit ist die Initialisierung abgeschlossen und der eigentliche Spielverlauf kann mit den beiden (programmiertechnisch aufwendigsten) Macros \verb+\move+ und \verb+\ply+ gesetzt werden. Mit \verb+\move+ wird ein kompletter Zug, mit \verb+\ply+ ein Halbzug dargestellt. Als Argument mu\ss\ nur das Startfeld und das Endfeld \"ubergeben (z.B. e5f6) werden. \TeX\ berechnet f\"ur Sie die Zugnummer, zeigt die Figur ({\Fig KQRBN}), die gezogen wurde und stellt fest, ob eine Figur geschlagen wurde. Eine Rochade und Schlagen \glqq en passant\grqq\ werden erkannt. Zus\"atzlich zum Zug k\"onnen Kommen\-tare, wie Schach |+|, guter Zug |!|, schlechter Zug |?| usw. angeh\"angt werden. Wenn ein Bauer das letzte Feld erreicht, wird eine Figuren\-umwandlung durch Anh\"angen des Anfangsbuchstabens der Figur gesetzt (\bs ply b7b8D). Die Stellung der Figuren auf dem Brett wird nach jedem Zug neu berechnet und kann jederzeit mit \verb+\showboard+ angezeigt werden. \par {\large \bf Analysen und Kurznotation}\par Abgerundet wird das Makropaket von Piet Tutelaers durch einen Analyse- und Turniermodus der durch die Umgebungen $\mid$...$\mid$ bzw. \verb+\begin{chess}+ und \verb+\end{chess}+ aufgerufen wird. Innerhalb dieser Umgebung ist es zum Beispiel m\"oglich eine Partie zu kommentieren :\\[2mm]\parindent 0mm\par\parskip 0mm \bs ply e8f8\\ H\"atte ich doch besser $\mid$17.: Lc6*e4$\mid$ gespielt\\ \bs move a1c1 a8a7\\[2mm] ergibt :\\ \ply e8f8 H\"atte ich doch besser |17.: Lc6*e4| gespielt \move a1c1 a8a7 \vskip 5mm oder Partien in der Kurzform zu setzen \begin{verbatim} \bf %Fettdruck \begin{chess} 1. d4 d5 2. c4 Sf6 3. Sc3 e6 4. Lg5 Lb4 5. e3 Ld7 6. Sf3 dc 7. Lc4* \end{chess} \end{verbatim} ergibt :\\[2mm] \bf \begin{chess} 1. d4 d5 2. c4 Sf6 3. Sc3 e6 4. Lg5 Lb4 5. e3 Ld7 6. Sf3 dc 7. Lc4* \end{chess}\\[3mm] \rm Im Analysemodus haben einige der Buchstaben spezielle Bedeutungen, so wird aus jedem K,D,T,L,S ein |K,D,T,L,S|. Aus * wird, um das Schlagen einer Figur zu kennzeichnen, ein |*| und falls Schwarz in der Analyse am Zug ist kann mit : der entsprechende Platz |:| einr\"aumt werden.\par\parskip 3mm Abschlie\ss end noch einige Beispiele zum Analysemodus : \parindent 5mm \begin{center} \tabcolsep 5mm \begin{tabular}{ll} Eingabe & Ausgabe\\ $\mid$21. Sf3-e5??$\mid$ &|21. Sf3-e5??|\\ $\mid$21. : Ke8*f8$\mid$ &|21. : Ke8*f8|\\ &\\ \verb+\begin{chess}+&\\ 21. Sfe5, K*f8 &\begin{chess}21. Sfe5, K*f8\end{chess}\\ 21. : f8D+ &|21.: f8D+|\\ \verb+\end{chess}+&\\ \end{tabular} \end{center}\parindent 0pt\par % % % {\large \bf Fernschach}\par Unter Fernschach ist das Partieschach zu verstehen, bei dem die Z\"uge postalisch auf Fernschachkarten, Postkarten oder Briefen \"ubermittelt werden. Hinter dieser Definition steckt, da\ss\ jeder Fernschachspieler, und das sind in Deutschland ca. 10000, seine Spiele und Partiestellungen notieren und seine Z\"uge versenden mu\ss . Die Z\"uge werden \"ublicherweise auf vorgedruckten Fernschachkarten verschickt. Die Zugabgabe mu\ss\ in zweifelsfreier und ausreichender Notation \cite{to} erfolgen. Gebr\"auchlich ist die folgende Zahlennotation \\[2mm] \begin{tabular}{ccccc} Partie& Nr. & Ihr Zug & Nr. & Mein Zug\\ 1&13&1131&13&6848 \end{tabular}\\[2mm] jedes Schachfeld wird hierbei durch eine zwei\-stellige Zahl bezeichnet (11\^{=}a1, 18\^{=}a8, 81\^{=}h1, 88\^{=}h8). Diese Notation ist zwar eindeutig, sieht aber f\"ur meinen Geschmack unsch\"on aus. Um die Vorteile von Piet Tutelaers CHESS.STY auch f\"ur Fernschachspieler nutzbar zu machen, habe ich deshalb ein Erweiterungsmakropaket BdF\-CHESS.STY erstellt. Das K\"urzel BdF steht zur Erinnerung an den alten Namen des Deutschen Fernschachbundes (BdF) \cite{bdf}, der bis vor einigen Jahren noch {\bf B}und {\bf d}eutscher {\bf F}ernschachfreunde hie\ss . Das Ma\-kro\-paket stellt z.B. die Befehle \bs postmove und \bs postply zur Verf\"ugung, die \"ahnlich wie \bs move und \bs ply arbeiten, zus\"atzlich aber die erforderlichen Ankunfts- und Abgangsdaten, sowie die Bedenkzeiten in einer \"ubersichtlichen Tabelle verwalten. Nachdem die Z\"uge in den Tabellen erstellt wurden, kann durch einen einzigen Befehl (\bs postcard(...,...)), die f\"ur die Zug\"ubermittlung notwendige Postkartenr\"uckseite gesetzt werden :\\[3mm] \setlength{\unitlength}{1mm} \small \begin{picture}(70,50) \put(0,0){\framebox(70,48.5){}} \put(6,24){\dashbox(23,23){Brett 1}} \put(41,24){\dashbox(23,23){Brett 2}} \put(3,12){\dashbox(28,10){Z\"uge Partie 1}} \put(38,12){\dashbox(28,10){Z\"uge Partie 2}} \put(5,2){\dashbox(23,9){Meine Daten}} \put(41,4){\dashbox(23,7){Ihre Daten}} \put(35,1){\dashbox(20,2){}} \end{picture}\\[3mm] \normalsize Sie zeigt die~aktuellen Partie\-stel\-lungen (\bs showboard), was nat\"urlich den Brettaufbau zu Hause erleichtert und Hilfsmittel, wie Fernschachpartiealben mit Plastiksteckfiguren zum Festhalten der jeweiligen Stellung \"uberfl\"ussig macht. Die Z\"uge werden nicht mehr in der Zahlennotation, sondern in der algebra\-ischen Notation \\[2mm] \begin{tabular}{ccccc} Partie& Nr. & Ihr Zug & Nr. & Mein Zug\\ 1&13&|Ta1-c1|&13&|Df8*d8| \end{tabular}\\[2mm] \"ubermittelt. F\"ur internationale Turniere kann die Postkartensprache \"uber den Schalter \bs postcardlanguage[...] gew\"ahlt werden. Standardm\"a\ss ig mitgeliefert wird Deutsch, Englisch und Franz\"osisch, kann jedoch leicht selbst an andere Sprachen angepa\ss t werden. \\ Die Postkartenvorderseite besteht aus Absender, Empf\"anger und optionalen Mitteilungen. Um sie zu setzen, m\"ussen die Makros \bs sender, \bs receiver und \bs cardmessage definiert werden. Da es sich um \glqq leere\grqq\ Definitionen handelt, k\"onnen sie individuell nach eigenem Geschmack gestaltet werden. Sie werden durch den Befehl \bs postcardaddress(...) nach folgendem Schema zur Postkarte zusammengesetzt: \\ \small \begin{picture}(70,50) \put(0,0){\framebox(70,48.5){}} \put(56,36){\framebox(9,11){}} \put(1,1){\dashbox(30,32.5){Mitteilungen}} \put(1,33.5){\dashbox(30,14){Absender}} \put(36,1){\dashbox(32,32.5){Empf\"anger}} \end{picture}\\[3mm] \normalsize Die abschlie\ss enden Befehle von BdFCHESS ber\"ucksichtigen bei der Bedenkzeitberechnung Urlaubstage und erm\"oglichen es dem Schachpartner Eventualz\"uge vorzuschlagen.\par % % % {\large \bf Fazit und W\"unsche}\par In Deutschland sind ca. 100000 Schach\-spieler im Deutschen Schach\-bund organisiert. Ein Vielfaches davon ist an Schachprogrammen und -computern verkauft worden, so da\ss\ sicherlich \"ofter der Wunsch auftritt eine Schachpartie in ansprechender Form auszudrucken oder welcher Schachverein h\"atte nicht gerne eine Vereinszeitung. Die hier vorgestellten Makros und Fonts f\"ur \TeX\ und \LaTeX\ erlauben es dem Schachspieler in einfacher Weise Schachpartien und Schachstellungen zu setzen und zu kommentieren. Die Ergebnisse liegen in hervorragender Qualit\"at vor, die einen Ver\-gleich mit professionellen Schachzeitschriften und B\"uchern nicht zu scheuen brauchen. Und dies alles zum Nulltarif, die Makros und Fonts sind \glqq In the spirit of \TeX\grqq\ Public Domain. Subjektive Nachteile von CHESS.STY sind fr mich die zwingende Nutzung der Style-Files des BABEL-Systems zur Sprachumschaltung, die es nicht erm\"oglicht zum Beispiel GERMAN.STY 2.4a zu nutzen oder die fehlende Pr\"ufung auf unsinnige Z\"uge (ein Zug von einem leeren Feld wird als K\"onigszug akzeptiert). Die Eingabe von vielen Partien ist nach wie vor m\"uhsam und ein daf\"ur geeigneter Editor mit graphischer Oberfl\"ache und Mausunterst\"utzung w\"are eine feine Sache. Wer Informationen \"uber Dateiformate von Schachprogrammen hat, kann diese mir zuschicken, damit sie Ber\"ucksichtigung in einem Konvertierprogramm nach \TeX\ finden.\par \begin{thebibliography}{99} \bibitem{piet} Piet Tutelaers, A Font and a Style for Typesetting Chess using \LaTeX\ or \TeX , Dokumentation zu CHESS.STY erschienen in TUGboat. \bibitem{bdfchess} Frank Hassel, Im Kirschgarten 14, 55286 W\"orrstadt, A \LaTeX\ style for management of correspondence chess games, Dokumentation zu BdFCHESS.STY. \bibitem{bdf}Informationen zu Fernschachturnieren und -meisterschaften national und international vom Deutschen Fernschachbund (BdF), Postfach 2025, 37010 G\"ottingen. \bibitem{to} Turnierordnung des Deutschen Fernschachbundes \S\ 2. \end{thebibliography} % % % % Beispiele % % % \newpage {\bf \LaTeX \bf - Eingabe :} \tt \begin{flushleft} {\bs bf System des Damenfianchettos}\bs\bs \\ \bs newgame\\ \bs move c2c4 e7e5\\ \bs ply b2b3\\[2.8cm] \$\$\bs showboard\$\$\\[2.8cm] Ein etwas passives System. Wei\ss \\ m\"ochte Druck auf den zentralen\\ Bauern e5 aus\"uben, r\"aumt dem Gegner\\ dabei aber die M\"oglichkeit ein,\\ seine Kr\"afte ungehindert zu\\ mobilisieren.\\ \bs ply g8f6\\ \bs move c1b2 b8c6\\ \bs move e2e3 f8e7\\ Gut ist auch $\mid$4. : d5 5. cd S*d5\\ 6. a3 Ld6$\mid$ (Petrosjan-Balaschow,\\ Moskau 1978).\\ \bs move a2a3 e8g8\\ \bs move d1c2 d7d5\\ Oder $\mid$6. : Te8 7. d3 Lf8 8. Sd2 d5\\ 9. cd D*d5 10. Sgf3 Lg4 11. Le2 a5$\mid$\\ mit gleichem Spiel (Psachis-\\ Faibissowitsch, Leningrad 1979).\\ \bs move c4d5 f6d5\\ \bs move g1f3 e7f6\\ \bs move d2d3 g7g6\\ \bs move b1d2 f6g7\\ \bs move a1c1 f8e8\\ Die Chancen halten sich ungef\"ahr die\\ Waage (Petrosjan-Sosonko,\\ Tilburg 1981) \end{flushleft}\par \rm \vbox{ \hbox to 150mm{\hss Beispiel einer \LaTeX -Eingabe und Ausgabe einer kommentierten Schacher\"offnung\hss}\newpage \hbox to 150mm{\hss aus Moderne Er\"offnungstheorie, Mark Taimanow, Englisch, S.124, Sportverlag Berlin.\hss}} \newpage {\bf Ergebnis :}\\[5mm] \centerline{\bf System des Damenfianchettos}\vskip 4mm \newgame \move c2c4 e7e5 \ply b2b3 $$\showboard$$ Ein etwas passives System. Wei\ss\ m\"ochte Druck auf den zentralen Bauern e5 aus\"uben, r\"aumt dem Gegner dabei aber die M\"oglichkeit ein, seine Kr\"afte ungehindert zu mobilisieren. \ply g8f6 \move c1b2 b8c6 \move e2e3 f8e7 Gut ist auch |4.: d5 5.cd S*d5 6.a3 Ld6| (Petrosjan-Balaschow,Moskau 1978). \move a2a3 e8g8 \move d1c2 d7d5 Oder |6.: Te8 7.d3 Lf8 8.Sd2 d5 9.cd D*d5 10.Sgf3 Lg4 11.Le2 a5| mit gleichem Spiel\\ (Psachis-Faibissowitsch, Leningrad 1979). \move c4d5 f6d5 \move g1f3 e7f6 \move d2d3 g7g6 \move b1d2 f6g7 \move a1c1 f8e8 Die Chancen halten sich ungef\"ahr die Waage (Petrosjan-Sosonko, Tilburg 1981) \onecolumn \parskip 0pt \postcardlanguage{german} \centerline{\large \bf DANTE - Frank Hassel} \begin{gameone} \postmove 03.09.1987 0 e2e4 d7d6 11.09.1987 0 \postmove 12.09.1987 2 d2d4 g8f6 15.09.1987 1 \postmove 17.09.1987 2 b1c3 g7g6 21.09.1987 1 $$\showinversboardwithnotation$$ \end{gameone}\par \centerline{\large \bf Frank Hassel - DANTE} \begin{gametwo} \postmove 11.09.1987 0 d2d4 g8f6 12.09.1987 2 \postmove 15.09.1987 1 c2c4 g7g6 17.09.1987 2 \postply 21.09.1987 1 b1c3 $$\showboardwithnotation$$ \end{gametwo}\par Fertig gesetzte Tabelle der Fernschachpartien mit Ankunfts- und Abgangsdaten, Bedenkzeiten, Z\"ugen und Partiestellungen. \newpage \sender{\small Absender:\\ \large\bf Frank Hassel\\ Im Kirschgarten 14\\ 55286 W\"orrstadt} \receiver{\parskip 5mm\Large \bf DANTE\vskip 2pt\hrule Postfach 10 18 40\vskip 2pt\hrule \LARGE \bf 69008 Heidelberg\vskip 2pt\hrule} \cardmessage{Mitteilungen} \postcard[f](0mm,0mm)\par \postcardaddress[tf](0mm,20mm)\par\vskip 5mm Fernschachkartenr\"uck- und Vorderseite \end{document} \end{document}