
Как рисовать стрелки в шахматной партии?
Например, если игра начинается с хода 1. e4..., я хочу нарисовать черную стрелку от e2 до e4, чтобы показать движение, и на той же диаграмме две красные стрелки от e4 до f5 и еще одну от e4 до d5, чтобы показать атаку пешки на поля.
Следующая игра работает для меня. Я хотел бы найти дополнительные возможности подсветки. Например, в образовательных целях, стрелка между конем на f6 и полями, которые он атакует.
\documentclass[a4paper,10pt]{article}
\usepackage{skak}
\usepackage{xskak}
\begin{document}
\newgame
\mainline{1. e4 e5 2. Nf3 Bc5}
\chessboard
\end{document}
решение1
Я следовал документацииxskak
пакет, особенно страницы 35 и 36, и вот что у меня есть.
%! *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}