Erweiterungen des CHESS-STYLES für Fernschachspieler

Frank Hassel

Voraussetzungen

CHESS.STY 1.2 von Piet Tutelaers mit PK-Fonts und Font metric files: CHESSF10, CHESS10, CHESS20, CHESS30 (CHESS15 um die Postkarte zu setzen)

BABEL-PACKAGE von Johannes Braams zur Sprachunterstützung

A4WIDE.STY von Jean-François Lamy

Achtung : Dieser Style kann nur mit LaTEX genutzt werden. Der Name BdFCHESS.STY steht zur Erinnerung an den alten Namen des Deutschen Fernschachbundes der vor der Wiedervereinigung Bund deutscher Fernschachfreunde hieß.

Ergänzungen zu CHESS.STY nicht nur für Fernschachspieler

8 ^{7} ^{6} ^{5} ^{4} ^{3} ^{2} ^{1} a b c d e f g h ^{1} ^{2} ^{3} ^{4} ^{5} ^{6} ^{7} ^{8} h g f e d c b a
\showinversboard  \showboardwithnotation  \showinversboardwithnotation

Um die zur Zugübermittlung notwendige Postkarte zu setzen, benutze ich vier Makros, um die Spielstände zwischenzuspeichern und wieder zu laden.

\savegameone \restoregameone \savegametwo \restoregametwo . Diese können auch dazu benutzt werden, um einen Spielstand zu speichern, eine Variation zu spielen und den alten Spielstand wiederherzustellen.

Der neue Font chess10f weist gegenüber chessf10 einige kleine Änderungen auf. Die Basislinie der Figuren sitzt höher und der Springer schaut nach rechts, statt nach links. Dies ist in Übereinstimmung mit der Empfehlung der FIDE ^{1}, daß auf Brettdarstellungen der Springer nach rechts und in der figurinen Notation nach links schaut. Um den neuen Font zu nutzen, muß nur vor \begin{document} \font\Fig=chess10f eingeben werden. Ein anderer, aber uneleganter Weg, ist chess10f.pk in chessf10.pk umzubenennen. Aber bitte stellen sie den alten Zustand wieder her, wenn sie dieses Packet an andere weitergeben.

1Schubart, Nöttger, Turnierleiterhandbuch des Deutschen Schachbundes, Walter de Gruyter Verlag, Berlin 1987

Ergänzungen zu CHESS.STY für Fernschachspieler

Zuerst ein Beispiel:

\documentstyle[a4wide,11pt,germanb,chess,bdfchess]{article}
\pagestyle{empty}
\parindent 0mm
\parskip 0mm
%
\sender{\small Absender:\\
         \large{\bf Frank Hassel}\\
         Im Kirschgarten 14\\
         6501 W\"orrstadt\\
         Germany}
\receiver{\parskip 5mm\LARGE \bf DANTE \vskip 2pt\hrule
          \LARGE Postfach 10 18 40\vskip 2pt\hrule
          \LARGE \bf D-69008 Heidelberg\vskip 2pt\hrule}
%
\begin{document}
%
\centerline{\large \bf Max Mustermann - Frank Hassel}\vskip2mm
\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 - Max Mustermann}\vskip2mm
\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}\newpage
%
\cardmessage{Ich habe Urlaub vom \\30.09.87 bis 14.10.87}
%
\postcard[f](0mm,0mm)\par
\postcardaddress[tf](-1mm,20mm)
%

Ergebnis :

Max Mustermann - Frank Hassel

Datum  Datum
Ankunft Abgang ∑ Weiß  Schwarz Ankunft Abgang ∑
3.9.87 3.9.87  0  e2–e4  1.  d7–d6  11.9.87 11.9.87  0
12.9.87 14.9.87  2  d2–d4  2.  g8–f6 15.9.87 16.9.87  1
17.9.87 19.9.87  4  b1–c3 3.  g7–g6  21.9.87 22.9.87  2

1 ^{2} ^{3} ^{4} ^{5} ^{6} ^{7} ^{8} h g f e d c b a

Frank Hassel - Max Mustermann

Datum  Datum
Ankunft Abgang ∑ Weiß  Schwarz Ankunft Abgang ∑
11.9.87 11.9.87  0  d2–d4  1.  g8–f6 12.9.87 14.9.87  2
15.9.87 16.9.87  1  c2–c4  2.  g7–g6  17.9.87 19.9.87  4
21.9.87 22.9.87  2  b1–c3 3.

8 ^{7} ^{6} ^{5} ^{4} ^{3} ^{2} ^{1} a b c d e f g h 8 ^{7} ^{6} ^{5} ^{4} ^{3} ^{2} ^{1} a b c d e f g h

Partie 1

Nr. Ihr Zug Nr. Mein Zug
3  b1–c3 3  g7–g6

Empfangen am 21.9.87 Beantwortet am 22.9.87 Meine Bedenkzeit 1 Tag(e) Meine Gesamtbedenkzeit 2 Tage

8 ^{7} ^{6} ^{5} ^{4} ^{3} ^{2} ^{1} a b c d e f g h

Partie 2

Nr. Ihr Zug Nr. Mein Zug
2  g7–g6 3  b1–c3

Ihr Poststempeldatum 19.9.87 Ihre Bedenkzeit 2 Tag(e) Ihre Gesamtbedenkzeit 4 Tage

Freundliche Grüße

Absender:

Frank Hassel Im Kirschgarten 14 6501 Wörrstadt Germany

Ich habe Urlaub vom 30.09.87 bis 14.10.87 Postkarte

DANTE

Postfach 10 18 40

D-69008 Heidelberg

Erläuterungen :

\sender{...} Dies ist eine leere Definition. Sie können den Absender nach ihrem Geschmack gestalten.

\receiver{...} Leere Definition für den Empfänger.

\cardmessage{...} Optionales Makro zur Übermittlung von Nachrichten auf der Postkartenvorderseite. Siehe Seite 11 für das Layout der Postkarte.

Environment gameone und gametwo In einem normalen Fernschachturnier spielt jeder Spieler zwei Partien ( Weiß und Schwarz), deshalb verwaltet dieser Style zwei Partien, kann aber auch in einrundigen Turnieren benutzt werden. Die Initialisierung erfolgt mit \newgame \savegameone \savegametwo, welche eine neue Partie startet und diese speichert. Wenn sie nur eine Partie spielen, wird diese und ein Brett in Grundstellung auf der Postkarte gesetzt. Bei Beginn eines neues Spieles mit \begin{gameone} werden die Makros \newgame \finishgameonefalse aufgerufen und der Tabellenkopf wird gesetzt. Wenn sie ein laufendes Spiel fortsetzen wollen, können sie die betreffende Partiestellung mit der position Umgebung, wie in CHESS.STY beschrieben, aufbauen. Zusätzlich müssen die Gesamtbedenkzeiten mit \global\considersumwhite=xxx und \global \considersumblack=xxx eingegeben werden. Dann können sie die Makros \postmove \postply, wie weiter unter beschrieben benutzen. Mit \end{gameone} werden alle Positionen mit \savegameone gespeichert und das Datum und die letzen Züge in Boxen gesetzt , s.Seite 11. Dieser Style geht davon aus, daß der letzte Halbzug ihr Zug ist ! So daß Züge, die nicht auf der Postkarte erscheinen sollen, außerhalb der Umgebung gameone oder gametwo eingegeben werden müssen.

\postmove Um ganze Züge zu setzen, muß \postmove mit 6 Argumenten aufgerufen werden. 1. Ankunftsdatum Spieler Weiß in der Notation Tag.Monat.Jahr (dd.mm.yyyy)

2. Bedenkzeit Spieler Weiß

3. Halbzug Spieler Weiß in der Notation [a-h][1-8][a-h] [1-8]{{Q | R | B | N}Kommentar} Beschreibung s. Dokumentation zu CHESS.STY

4. Halbzug Spieler Schwarz in der Notation [a-h][1-8][a-h] [1-8]{{Q | R | B | N}Kommentar} 5. Ankunftsdatum Spieler Schwarz

6. Bedenkzeit Spieler Schwarz Die Auflösung dieses Makros gibt eine Tabellenzeile : siehe Beispiel Seite 3 TEX berechnet das Abgangsdatum mit dem Makro \departure#1.#2.#3 #4 (dd.mm.yyyy Bedenkzeit) und die Gesamtbedenkzeit für das Feld ∑.

\postply Um Halbzüge zu setzen, muß \postply mit 3 Argumenten aufgerufen werden. 1. Ankunftsdatum in der Notation Tag.Monat.Jahr (dd.mm.yyyy)

2. Bedenkzeit

3. Halbzug in der Notation [a-h][1-8][a-h] [1-8]{{Q | R | B | N}Kommentar}.

\postcard[f](dim,dim) Dieses Makro setzt die Postkartenrückseite mit Zügen und Daten. Der erste Paramter [f] ist optional und setzt einen Rahmen um die Karte. Die beiden anderen Parameter dienen der Positionierung der Karte. Der erste gibt einen horizontalen -, der zweite einen vertikalen Offset. Sie können positiv und negativ sein. Natürlich können zur Positionierung der Karte auch die Optionen des Druckertreibers genutzt werden. So viel Glück und nicht zu viele Versuche um den besten Weg zu finden.

\postcardaddress[tf](dim,dim) Makro um die Postkartenvorderseite zu setzen. Optionen siehe \postcard[..](..,..). Der optionale Parameter [t] teilt die Postkartenvorderseite durch eine senkrechte Linie und setzt das Wort Postkarte.

Für die anderen Makros von BdFCHESS.STY ein weiteres Beispiel :

\documentstyle[a4wide,11pt,germanb,chess,bdfchess]{article}
\pagestyle{empty}
\parindent 0mm
\parskip 0mm
\postcardlanguage{english}
%
\begin{document}
%
\begin{gameone}
\postmove 24.02.1990 2 c2c4 e7e5 27.02.1990 2
Englisches System : Andere spielbare Z\"uge |1. : c7-c5 oder 1. : Sg8-f6|
\postmove 02.03.1990 1 b1c3 g8f6 04.03.1990 1
\postmove 07.03.1990 2 g1f3 b8c6 11.03.1990 1
\holidaywhite 7
\postmove 14.03.1990 9 d2d4 e5e4 28.03.1990 1
\end{gameone}\par
%
\centerline{\bf Zugvorschlag}
| \ifmoveone 5 Sf3-g5 5 h7-h6 |
%
\postcard(0mm,30mm)
%
\end{document}

Ergebnis :

Datum  Datum
Ankunft Abgang ∑ Weiß  Schwarz Ankunft Abgang ∑
24.2.90 26.2.90  2  c2–c4  1.  e7–e5  27.2.90 1.3.90  2

Englisches System : Andere spielbare Züge 1…., c7–c5 oder 1…., g8–f6

2.3.90 3.3.90  3  b1–c3 2.  g8–f6 4.3.90 5.3.90  3
7.3.90 9.3.90  5  g1–f3 3.  b8–c6 11.3.90 12.3.90  4
14.3.90 23.3.90  7  d2–d4  4.  e5–e4  28.3.90 29.3.90  5

Zugvorschlag

5  f3–g5 5  h7–h6

8 ^{7} ^{6} ^{5} ^{4} ^{3} ^{2} ^{1} a b c d e f g h

Game 1

No. Your move No. My move
4  d2–d4 4  e5–e4
if 5  f3–g5 5  h7–h6

Received on 28.3.90 Replied on 29.3.90 My time taken 1 day(s) My total time 5 days

8 ^{7} ^{6} ^{5} ^{4} ^{3} ^{2} ^{1} a b c d e f g h

Your postmark date 23.3.90 Your time taken 2 day(s) Your total time 7 days

Yours sincerly Erläuterungen :

\postcardlanguage{....} Mit diesem Befehl kann die Postkarte in einer anderen Sprache gesetzt werden. Zur Zeit enthält BdFCHESS die Definitionen english, german und french, aber Ergänzungen sind leicht möglich. Im vorhergehenden Beispiel ist die Sprache der Notation Deutsch (definiert durch das BABEL-System und CHESS.STY) und die Postkartensprache ist Englisch.

Analysen und Kommentare Der Analysenmodus, ist wie in CHESS.STY beschrieben, über den Schalter | möglich.

\holidaywhite num, \holidayblack num Dieses Makro korrigiert die Gesamtbedenkzeit, wenn sie zwischen Ankunft und Abgabe des Zuges Urlaub genommen haben.

\ifmoveone, \ifmovetwo Wenn sie ihrem Schachpartner Zugvorschläge machen wollen, können sie dieses Makro verwenden. Es nutzt den Analysenmodus von CHESS.STY, deshalb muß der Befehl innerhalb des Schalters |...| stehen. Die vier Argumente sind - Zugnummer Halbzug Zugnummer Halbzug. Da der Befehl die vier Felder nur korrekt einsortiert, muß jeder Zug vollständig gesetzt werden. Z.B.: |Sf3-e5, Ke8*f8, Dd1-d8+,Lc1-g5| Ergebnis : f3–e5, e8×f8, d1–d8+, c1–g5 Und vergessen sie nicht den Leerschlag zwischen dem letzten Argument und |. Wenn sie \ifmoveone ein zweites Mal aufrufen, werden zwei Zugvorschläge auf der Karte gesetzt. Bei einem dritten Aufruf ist leider nicht mehr genug Platz und die Züge kollidieren mit dem Datum. Deshalb muß für weitere Vorschläge eine neue \moveonebox, siehe Kapitel Wenn alles schiefgeht oder über das Makro \cardmessage auf der Kartenvorderseite gesetzt werden.

Verbleibende Befehle :

\acceptmoveone, \acceptmovetwo Akzeptierte Zugvorschläge müssen auf der Antwortkarte wiederholt werden. Dazu dient dieser Befehl. Er arbeitet wie \ifmoveone, der Zug wird jedoch vor den letzten Zug gesetzt.

\finishgameone, \finishgametwo Wenn eine Partie beendet ist, muß dieser Befehl aufgerufen werden, damit die Partiedaten nicht mehr auf der Postkarte erscheinen.

\tabularheader Wenn die Zugtabelle über eine Seite geht, kann über \tabularheader ein neuer Tabellenkopf gesetzt werden. Ergebnis :

Datum  Datum
Ankunft Abgang ∑ Weiß  Schwarz Ankunft Abgang ∑

\storeboard{filename} Dieses Makro speichert die aktuelle Figurenstellung in einem ASCII-File. Es speichert es als \begin{position} \White(....) \Black(...) \global \movecount= num \global \Whitetrue or \Whitefalse \end{position}. Das Makro hat zwei Nachteile. Mit BdFCHESS arbeitet es nur korrekt innerhalb der Umgebungen gameone und gametwo ( sonst ist movecount=0 und Whitetrue ). Es speichert die Position nur jeweils in der aktuellen Notationssprache, welche durch das Babel-System gesetzt ist. In einem anderen Dokument, das auf die gespeicherten Partien zugreifen soll, muß deshalb die gleiche Notationsprache verwendet werden (Styles: english, french, germanb, dutch). Ich nutze diese Makro, um einen Überblick über alle meine laufenden Partien zu bekommen. Benutzen sie \storeboard{filename} als letzen Befehl vor \end{gameone or gametwo}. Dann können in einem anderen Text z.B. 12 Bretter auf einer DIN A4 Seite dargestellt werden.

\documentstyle[a4wide,germanb,chess]{article}
\textheight 280mm \textwidth 167mm
\parindent 0pt
\topmargin -1cm
\pagestyle{empty}
%
%  macro \boardwithtext{filename}{text}
%
\newcommand{\boardwithtext}[2]{%
\parbox[t]{55mm}
{\input #1
\showboard #2\\
\ifWhite
         \advance\movecount by 1
         Wei\ss , Zugnr. \the\movecount
   \else Schwarz, Zugnr. \the\movecount
   \fi
\vskip 3mm}}
\begin{document}
\font\Chess=chess15
\centerline{\Large Schacher\"offnungen}
%   Spiel 1 - 12
\boardwithtext{game1.brd}{Englisch {\bf A 27}\\(Holl\"andische Struktur)}
\boardwithtext{game2.brd}{Alt-Indisch {\bf A 55}}
\boardwithtext{game3.brd}{Benoni {\bf A 70}\\(Hauptsystem)}\\
%
\boardwithtext{game4.brd}{Aljechin Verteidigung {\bf B 03}\\
(Vierbauernvariante)}
\boardwithtext{game5.brd}{Holl\"andisch {\bf A 83}\\ (Staunton-Gambit)}
\boardwithtext{game6.brd}{Pirc-Ufimzew {\bf B 08}}\\
%
\boardwithtext{game7.brd}{Caro-Kann {\bf B 11}\\(Zweispringer-Variante)}
\boardwithtext{game8.brd}{Sizilianisch {\bf B 45}\\(Klassisches System)}
\boardwithtext{game9.brd}{Franz\"osisch {\bf C 01}\\ (Abtauschvariante)}\\
%
\boardwithtext{game10.brd}{Damengambit {\bf D 07}\\(Tschigorin-Verteidigung)}
\boardwithtext{game11.brd}{Wiener Partie {\bf C 26}}
\boardwithtext{game12.brd}{Nimzowitschindisch {\bf E 23}}
\end{document}

Schacheröffnungen

Englische A 27 (Holländische Struktur) Weiß, Zugnr. 4 Alt-Indisch A 55 Schwarz, Zugnr. 5 Benoni A 70 (Hauptsystem) Schwarz, Zugnr. 8

Aljechin Verteidigung B 03 (Vierbauernvariante) Schwarz, Zugnr. 4 Holländisch A 83 (Staunton-Gambit) Schwarz, Zugnr. 4 Pirc-Ufimzew B 08 Schwarz, Zugnr. 4

Caro-Kann B 11 (Zweispringer-Variante) Weiß, Zugnr. 4 Sizilianisch B 45 (Klassisches System) Weiß, Zugnr. 6 Französisch C 01 (Abtauschvariante) Schwarz, Zugnr. 3

Damengambit D 07 (Tschigorin-Verteidigung) Weiß, Zugnr. 3 Wiener Partie C 26 Weiß, Zugnr. 4 Nimzowitschindisch E 23 Weiß, Zugnr. 6 Wenn alles schief geht, das Layout der Postkarte mit seinen Makros und Boxen.

Brett 1  Brett 2 \moveonebox \acceptonebox  \movetwobox \accepttwobox \mydatebox  \yourdatebox  \cardmessage \sender  \receiver

\postcard(...) \postcardaddress(...)

Wenn sie mit einem Element nicht zufrieden sind, können sie es, wie folgt (vor \postcard[..]) ändern.

Ändern des ersten Brettes

\board{.......} oder \begin{position} ...... \end{position}
\savegameone

Ändern des Inhaltes von Boxen z.B. \moveonebox

\global\setbox\moveonebox=\vbox{..........}

Ändern von Definitionen

\gdef\sender{.....}

Aber sie können nur den Inhalt und nicht die Position eines Elementes ändern.

Für Fehlermeldungen und Anregungen :

Frank Hassel Im Kirschgarten 14 55286 Wörrstadt Germany

Und für die, die auf den Geschmack gekommen sind. Informationen zu Fernschachturnieren gibt es beim

Deutschen Fernschachbund (BdF) Postfach 2025 37010 Göttingen