\xskakget 与 \newchessgame 失败

\xskakget 与 \newchessgame 失败

\xskakget我正在尝试使用和\newchessgame类似方法来获取棋局的最后一步 ID 。

\newchessgame[id=someid, moveid=10b]

并在一段时间后用来\mainline显示该动作。

\newchessgame[id=someid, moveid=\Xskaksomeidnextmoveid]\mainline{10...Nf6}

使用 xelatex 编译时,我收到“未定义控制序列错误 \@nnil ->\@nil。”\Xskaksomeidnextmoveid本身显示正确值,但在 \newchessgame 中时,我收到此错误。如果这是一个愚蠢的问题,请耐心等待。我是 latex 新手。

编辑:

这里有一个简单的工作示例。之前注释掉的那行\end{document}是罪魁祸首。

\documentclass[9pt]{book}
\usepackage{caption}
\usepackage{floatrow}
\usepackage{xskak}
\usepackage{chessboard}

\begin{document}
\begin{figure}[H]
  \begin{floatrow}[2]
    \newchessgame[id=da, moveid=1w]
    \ffigbox{\caption{}}{\chessboard[
        setfen=rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR
    ]}
  \end{floatrow}
\end{figure}

\newchessgame[id=da, moveid=1w]\mainline{1. e4 e5}

\Xskakdanextmoveid

%% \newchessgame[id=da, moveid=\Xskakdanextmoveid]\mainline{2. Nf6}
\end{document}

答案1

新游戏重置了很多信息。我或许可以定义它,以便\Xskakdanextmoveid给出一些默认值,例如“1w”。但它永远不会像你期望的那样给出“2w”。

使用新的 id (并且​​设置位置!):

\newchessgame[id=dum,moveid=\Xskakdanextmoveid,setfen=\Xskakdalastfen,print]

或者使用\resumechessgame专门用于此类事情的:

\resumechessgame[id=da,moveid=\Xskakdanextmoveid]

或者更简单:

\resumechessgame[id=da]

相关内容