如何在棋盘上画箭头?
例如,如果游戏以 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}