skak、xskak 中带箭头的国际象棋图

skak、xskak 中带箭头的国际象棋图

如何在棋盘上画箭头?

例如,如果游戏以 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}

姆韦

相关内容