我想为特定的动作设置颜色\mainline
,例如\mainline{1. f4 e5 2. {\color{red} g4} Qh4#}
。
有什么方法可以改变某些动作的颜色吗?
答案1
没有自然的方法,但您可以尝试以下混合使用 NAG 来启动和停止颜色以及手工制作的样式。主要问题是停止颜色:(skak
由使用xskak
)混合了解析和打印,因此分组命令有爆炸的趋势。
\documentclass[]{scrbook}
\usepackage{xskak,xcolor}
\newcommand\mycolor{}
%NAG to start color:
\expandafter\def\csname $100\endcsname{\gdef\mycolor{\color{red}}}
%NAG to stop color:
\expandafter\def\csname $101\endcsname{\gdef\mycolor{\color{black}}}
\xskaknewstyleitem[%
whiteopen={.\,},
beforewhite=\mycolor,
beforeblack=\mycolor,
blackopen={\ldots\,},
afterwhite={\color{black}\ },
beforenumber=\color{black},
afterblack={\ }]{color}
\xskaknewstyle[level= 1,styleitem=color,font=\bfseries,
level= 3,font=\itshape]{color}
\begin{document}
\newchessgame
\mainline[style=color]{1. f4 e5 $100 2. e4 $101 e6 3. Nf3 $100 Nf6 4. d4 $101 d5}
\end{document}