在 \variation 中关闭移动次数

在 \variation 中关闭移动次数

我们可以自定义\variation命令来抑制移动次数的显示吗?\variation{1. e4}应该显示e4(不显示移动次数)。可以这样做吗?

我应该更清楚地解释这个问题。我说的是\variation作为包的一部分的命令xskak,用于显示棋步。我可以\variation使用beforenumberwhiteopen等自定义命令blackopen。无论我做什么,最终输出都会显示移动次数。此外,由于命令需要移动次数,因此\variation{e4}无效。所以,我的问题是,我们是否可以自定义命令以不在最终输出中显示移动次数(类似于等)。\variation\variationbeforenumber

这是 MWE

\documentclass{book}
\usepackage{xskak}

\begin{document}
\newchessgame\mainline{1. e4 e5} \variation{2. Nf3}
\end{document}

\variation{Nf3}是无效语句。但我不希望它出现2.在输出中。

答案1

\variationNM您可以按照相同的方式定义命令\variation

\documentclass{book}
\usepackage{xskak}
\makeatletter
\newcommand{\variationNM}[1][]{%
 \setkeys[UFXS]{print}{#1}%
 \begingroup\catcode`\#=12 \@variationNM}
\def\@variationNM#1{\endgroup
  \gdef\NumberNext{\False}%
  \gdef\AfterBlack{\False}%
  \gdef\PrintMoves{\False}%
  \gdef\ExecuteMoves{\False}%
  \gdef\StoreLastMove{\False}%
  {\variationstyle\opencommands%
   \variationmovemode
   \Mainline(#1 Z )%
   \closecommands}}
\makeatother

\begin{document}
\newchessgame\mainline{1. e4 e5} \variationNM{Nf3}
\end{document}

在此处输入图片描述

答案2

如果用法有点不同,有一个非常简单的解决方案:

\documentclass{article}

\begin{document}

\def\variation#1.{}

\variation1.e4
\variation11. e4-e5

\end{document}

这就给出了e4 e4-e5等等,简单地吃数字。

否则定义会更加复杂:

\def\variation#1{\def\pomin##1.##2.{##2}\pomin#1.}

使用

\variation{12. e6}
\variation{13. e7}

以及期望的结果。

答案3

@Surya,这是一个例子:

\documentclass[10pt,twocolumn]{article}
\title{xskak Dua Kolom}
\usepackage{xskak}

\begin{document}

\begin{center}
    \textbf{Botvinnik -- Smyslov} \\
    \textit{World Championship Match (17)} \\
    \textit{Moscow 1957} \\
    Gr\"{u}nfeld Defence
\end{center}

\newchessgame
\xskakset{style=styleC}

\mainline{1. Nf3 Nf6 2. g3 g6 3. c4 c6 4. Bg2 Bg7 5. Nc3 O-O 6. d4 d5 7. cxd5
cxd5 8. Ne5 b6}
\[ \showboard \]
A satisfactory way of developing.  After {\variation[invar]{8... Nc6 9. Nxc6
bxc6}} Black would be saddled with a weak pawn at c6.

\mainline{9. Bg5 Bb7 10. Bxf6 Bxf6 11. O-O}

In the variation {\variation[invar]{11. e4 dxe4 12. Nxe4 Bxe5 13. dxe5 Nd7
14. f4 Nc5}} Black has a good game.

\mainline{11... e6 12. f4}

If {\variation[invar]{12. e4 Nc6 13. exd5} (\variation[invar]{13. Nxc6 Bxc6
14. exd5 exd5}) \variation[outvar]{13... Nxe5 14. dxe5 Bxe5 15. dxe6 Bxg2 16.
exf7+ Rxf7 17. Kxg2 Bxc3 18. bxc3 Qxd1 19. Rfxd1 Rc8 20. Rd3 Rc4}}, and Black
can successfully battle for a draw in the rook ending.

\end{document}

相关内容