
Como posso desenhar flechas em um jogo de xadrez?
Por exemplo, se o jogo começa com 1. e4..., quero desenhar uma seta preta de e2 a e4 para mostrar o movimento, e, no mesmo diagrama, duas setas vermelhas de e4 a f5, e outra de e4 até d5, para mostrar o peão atacando as casas.
O seguinte jogo funciona para mim. Gostaria de encontrar possibilidades adicionais de destaque. Por exemplo, para fins educacionais, uma flecha entre o cavalo em f6 e as casas que estão sendo atacadas por ele.
\documentclass[a4paper,10pt]{article}
\usepackage{skak}
\usepackage{xskak}
\begin{document}
\newgame
\mainline{1. e4 e5 2. Nf3 Bc5}
\chessboard
\end{document}
Responder1
Acompanhei a documentação doxskak
pacote, especialmente as páginas 35 e 36, e é isso que tenho.
%! *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}