棋盘:创造并定位红王(新棋子)

棋盘:创造并定位红王(新棋子)

在此处输入图片描述

我需要一个红王中间的那个是黑色的王,但是颜色是红色的。他应该有自己的角色,比如“R”(如果可能的话)。
这通常是\char"2654

手册上介绍的是一种“硬核方法”,但对我来说不起作用。
我该怎么办?

% arara: lualatex
\documentclass[margin=5mm, varwidth]{standalone}
\usepackage{chessboard}
\usepackage{skak}

% chessboard.pdf, p. 73:
%\cbDefineNewPiece[〈game〉]{〈color〉}{〈char〉}{〈on white〉}{〈on black〉}
\makeatletter
\cbDefineNewPiece{black}{M}% I am not allowed to use R'
{\raisebox{\depth}{\cfss@whitepiececolor
\char"2654}}
{\BlackEmptySquare%
\makebox[0pt][r]{\cfss@whitepiececolor
\raisebox{\depth}{%
\makebox[1em]{\char"2654}}}}
\makeatother   

\begin{document}
\setchessboard{showmover=false,
boardfontfamily={DejaVu Sans}% no effect....
}

\def\mylist{kd1, kd2, kd3, kd5, kd6, kd7,  
Ka4, Kb4, Kc4, Ke4, Kf4, Kg4, 
Md4% <-------   !
}
\setchessboard{setpieces=\mylist}
\chessboard
\end{document}

答案1

默认情况下,新棋子将使用国际象棋字体,但您可以在定义中切换到普通文本字体或其他字体:

\documentclass[margin=5mm, varwidth]{standalone}
\usepackage{chessboard}
\usepackage{skak}

\usepackage{fontspec}
\setmainfont{DejaVu Sans}
% chessboard.pdf, p. 73:
%\cbDefineNewPiece[〈game〉]{〈color〉}{〈char〉}{〈on white〉}{〈on black〉}
\makeatletter
\cbDefineNewPiece{white}{m}% I am not allowed to use R'
{\raisebox{\depth}{\cfss@whitepiececolor\normalfont
\char"2654}}
{\BlackEmptySquare%
\makebox[0pt][r]{\cfss@whitepiececolor
\raisebox{\depth}{%
\makebox[1em]{\normalfont
\char"265A}}}}
\makeatother

\begin{document}
\setchessboard{showmover=false}

\def\mylist{kd1, kd2, kd3, kd5, kd6, kd7,
Ka4, Kb4, Kc4, Ke4, Kf4, Kg4,
md4% <-------   !
}
\setchessboard{setpieces=\mylist}
\chessboard
\end{document}

新棋子必须有新名字,而 R 已被占用。我还建议坚持使用小写字母表示黑色棋子这一惯例。

在此处输入图片描述

相关内容