我们可以自定义\variation
命令来抑制移动次数的显示吗?\variation{1. e4}
应该显示e4
(不显示移动次数)。可以这样做吗?
我应该更清楚地解释这个问题。我说的是\variation
作为包的一部分的命令xskak
,用于显示棋步。我可以\variation
使用beforenumber
、whiteopen
等自定义命令blackopen
。无论我做什么,最终输出都会显示移动次数。此外,由于命令需要移动次数,因此\variation{e4}
无效。所以,我的问题是,我们是否可以自定义命令以不在最终输出中显示移动次数(类似于等)。\variation
\variation
beforenumber
这是 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}