使用 \input 命令导入 xskak 的国际象棋数据

使用 \input 命令导入 xskak 的国际象棋数据

有没有办法从文件导入棋谱数据?文件内容只能限制为棋步。

我很清楚

\hidemoves{\input{datafile}}

行不通。但是,是否可以\input{datafile}先扩展,然后再将结果提供给\hidemoves

答案1

使用readarray包将文件内容放入\def名为的中\myhidemoves,然后只需要展开\myhidemoves一次就可以将其传递给\hidemoves

已编辑,以更改#catcode \readdef

\documentclass{book}
\usepackage{xskak,filecontents,readarray}
\begin{filecontents*}{datafile}
1.e4 e6 2.d4 b6#
\end{filecontents*}

\begin{document}
\newchessgame[id=title]
\catcode`#=12 %
\readdef{datafile}{\myhidemoves}
\catcode`#=6 %
\expandafter\hidemoves\expandafter{\myhidemoves}

\tableofcontents

\chapter{\protect\printchessgame[id=title]}

\printchessgame[id=title]
\chessboard[id=title]

\end{document}

在此处输入图片描述

注:复制自 MWE\chapter 命令和 skak 包

相关内容