\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]