
Wie kann ich Pfeile auf ein Schachspiel zeichnen?
Wenn das Spiel beispielsweise mit 1. e4 ... beginnt, möchte ich einen schwarzen Pfeil von e2 nach e4 zeichnen, um die Bewegung anzuzeigen, und im selben Diagramm zwei rote Pfeile von e4 nach f5 und einen weiteren von e4 nach d5, um anzuzeigen, dass der Bauer die Felder angreift.
Das folgende Spiel funktioniert für mich. Ich würde gerne zusätzliche Hervorhebungsmöglichkeiten finden. Zum Beispiel für pädagogische Zwecke einen Pfeil zwischen dem Springer auf f6 und den von ihm angegriffenen Feldern.
\documentclass[a4paper,10pt]{article}
\usepackage{skak}
\usepackage{xskak}
\begin{document}
\newgame
\mainline{1. e4 e5 2. Nf3 Bc5}
\chessboard
\end{document}
Antwort1
Ich folgte der Dokumentation derxskak
Paket, insbesondere die Seiten 35 und 36, und das ist, was ich habe.
%! *latex mal-chess.tex
\documentclass[a4paper,10pt]{article}
\pagestyle{empty}\parindent=0pt
\usepackage{xskak}
%\usepackage{chessboard}
\begin{document}
\newcommand\getmovestyle[1]{%
\ifthenelse
{\equal{#1}{N}}%knight move
{\def\mymovestyle{[clockwise=false,style=knight]curvemove}}%
{\ifthenelse
{\equal{#1}{}}% castling
{\def\mymovestyle{curvemove}}%
{\def\mymovestyle{straightmove}}}}%
\newchessgame
\hidemoves{1. e4 e5 2. Nf3 Bc5}%
%\chessboard[setfen=\xskakgetgame{initfen}]% Show me the empty board.
\xskakloop{%
\getmovestyle{\xskakget{piecechar}}%
\chessboard[pgfstyle=\mymovestyle, color=blue,
markmoves=\xskakget{move}, pgfshortenend=0.3em, arrow=to, coloremph, color=red, markstyle=circle, markfield=\xskakget{movefrom},
emphfields=\xskakget{moveto}, setfen=\xskakget{nextfen}]
}% End of \xskakloop...
\end{document}