在 skak 包中使用 \variation 命令时出错

在 skak 包中使用 \variation 命令时出错

我正在使用该skak包来撰写和评论一场象棋比赛。

当您使用命令\variation分析改变移动 15 的可能后果时会出现问题MWE。如果我取消注释注释行(第 16 和 17 行),此代码会产生错误,但我想输入此解释。

该命令\variation之前已经使用过(在代码中),没有问题。

这是我的代码

\documentclass{minimal}
\usepackage{skak}
\begin{document}
\newgame
\noindent\mainline{1.e4 c6 2.d4 d5 3.Nd2 dxe4 4.Nxe4 Nd7 5.Ng5 Ngf6 6.Bc4 e6 7.Qe2 Nb6 8.Bb3 h6 9.N5f3 c5} (\variation{9...a5}) \mainline{10.Bf4 Bd6 11.Bg3 Qe7}
(it's also possible \variation{11...Qc7} and \variation{11...O-O})
\mainline{12.dxc5 Bxc5 13.Ne5 Bd7 14.Ngf3 Nh5}
(no \variation{14...O-O-O 15.Nxf7 Qxf7 16.Qe5}).\\
\begin{center}
\showboard
\end{center}
\styleC
\mainline{15.O-O-O Nxg3}
Change this move by \variation{15...O-O-O} allows 
%\variation{16.Nxd7 Nxd7 17.Bc5!}
%and if \variation{17...Nxe5?!}, then \variation{18.Nxe5 Nf4 19.Qc4}, giving an advantage.
\mainline{16.hxg3 O-O-O}
\end{document}

正如我之前所说,如果我取消注释这些行,则会收到如下错误消息

[]

! mainline: 16 不是正确的移动数。...: 16 不是正确的移动数}

l.15 \variation{16.Nxd7 Nxd7 17.Bc5!}

该错误消息是由 \errmessage 命令生成的,因此我无法提供任何明确的帮助。

感谢您的帮助!

答案1

如果将 skak 更改为 xskak,它可以正常工作。

\listfiles
\documentclass{minimal}
\usepackage{xskak}
\begin{document}
\newgame
\noindent\mainline{1.e4 c6 2.d4 d5 3.Nd2 dxe4 4.Nxe4 Nd7 5.Ng5 Ngf6 6.Bc4 e6 7.Qe2 Nb6 8.Bb3 h6 9.N5f3 c5} (\variation{9...a5}) \mainline{10.Bf4 Bd6 11.Bg3 Qe7}
(it's also possible \variation{11...Qc7} and \variation{11...O-O})
\mainline{12.dxc5 Bxc5 13.Ne5 Bd7 14.Ngf3 Nh5}
(no \variation{14...O-O-O 15.Nxf7 Qxf7 16.Qe5}).\\
\begin{center}
\showboard
\end{center}
\styleC
\mainline{15.O-O-O Nxg3}
Change this move by \variation{15...O-O-O} allows \variation{16.Nxd7 Nxd7 17.Bc5!}
\mainline{16.hxg3 O-O-O}

%and if \variation{17...Nxe5?!}, then \variation{18.Nxe5 Nf4 19.Qc4}, giving an advantage.
\end{document}

相关内容