我正在围绕我的第一个问题进行构建。在其中,我给出了游戏摘要。现在这里是猜棋步。用户必须弄清楚 Morphy 的棋步。
这是我的代码,分为两部分。第一部分是主体。第二部分是游戏日期。
我想修复输出。评论中的字体太小了。我可以把它放大吗?并且移动的方向是从上到下,而不是从一边到另一边。可以做到吗?感谢您的建议和反馈。
主体:
\documentclass[10pt,DIV=20]{scrreprt}
% This is a LaTeX file generated by Scid.
% You must have the skak, KOMAScript and pstricks packages installed to typeset this file.
\usepackage{scrpage2}
\usepackage{charter}
\usepackage[svgnames]{xcolor}
\usepackage{xskak}
\usepackage{lmodern}
\usepackage[T1]{fontenc}
\usepackage{latexsym}
\usepackage{pstricks-add}
\usepackage{tabularx}
\usepackage{multicol}
\pagestyle{empty}
\usepackage{titlesec}
\usepackage[LSB2,LSBC4,T1]{fontenc} % use fontenc before chessboard
\usepackage{skak, xskak,chessboard}
\newcommand\getmovestyle[1]{
\ifthenelse
{\equal{#1}{N}}
{\def\mymovestyle{[clockwise=false,style=knight]curvemove}}
{\ifthenelse
{\equal{#1}{}}
{\def\mymovestyle{curvemove}}
{\def\mymovestyle{straightmove}}}}
\newcommand\guessmymove{% this is the 1st macro TO PRINT OUT ALL THE COMMENTS
\xskakloop{%
\ifcsempty{Xskak.\xskakgetgame{gameid}.\xskakget{movenr}.\xskakget{player}.nag}
{}
{%
\getmovestyle{\xskakget{piecechar}}%
\chessboard[boardfontfamily=alphadia,
boardfontencoding=LSBC4,
normallboard, showmover=false, label=false, pgfstyle=\mymovestyle, color=red,
markmoves=\xskakget{move}, pgfshortenend=0.3em, arrow=to,color=blue, markstyle=circle, markfield=\xskakget{movefrom},
emphfields=\xskakget{moveto}, setfen=\xskakget{nextfen},
coloremph=true,
whitefieldmaskcolor=yellow,blackfieldmaskcolor=yellow,emphfield=\xskakget{moveto},,
setfen=\xskakget{nextfen}]\\
\xskakget{opennr}
\xskakget{lan}
\xskakget{nag}
\par
}}}
\xskakset{style=UF}
\fontsize{10pt}{14pt}\selectfont
\font\sachy=SkakNew-Diagram at 10pt
\newdimen\muj \muj=-0.32ex
\makeatletter
\xskaknewstyleitem[%
whiteopen={.~},
blackopen={.\,\space\ldots},
beforewhite={},%\space,
beforeblack=\space,%\space,
afterwhite=,%\space,
afterblack={\space\,},%\space,
]{styleD}
\makeatother
\makeatletter
\providecommand\xskak@beforecomment{}
\makeatother
\begin{document}
%********************* GUESS THE MOVE ***************************
\onecolumn\begin{multicols}{2}
\begin{center}
\setfigstyle{\normalfont}%
\setboardfontcolors{blackfieldmask=gray!40}
\input{game2}
%this is the MACRO guessmymove
\end{center}
\end{multicols}%
\end{document}
Game data body
\newchessgame
\noindent
\hidemoves{
1.e4 e5 \xskakcomment{guess?}
2.Nf3 d6 \xskakcomment{guess?Hint: attack the center }
3.d4 Bg4 \xskakcomment{guess?}
4.dxe5 Bxf3 \xskakcomment{guess?}
5.Qxf3 dxe5 \xskakcomment{guess?}
6.Bc4 Nf6 \xskakcomment{guess?Hint: attacking Freddy pawn}
7.Qb3 Qe7 \xskakcomment{guess?Hint: The other Knight joins in the attack}
8.Nc3 c6 \xskakcomment{guess?}
9.Bg5 b5 \xskakcomment{guess?Hint: A sacrifice}
10.Nxb5 cxb5 \xskakcomment{guess?}
11.Bxb5+ Nbd7 \xskakcomment{guess?Hint: Short or Long}
12.O-O-O Rd8 \xskakcomment{guess?Hint: Another sacrifice}
13.Rxd7 Rxd7 \xskakcomment{guess?}
14.Rd1 Qe6 \xskakcomment{guess?Hint: Sacrifice again}
15.Bxd7+ Nxd7 \xskakcomment{guess?Another sacrifice!!}
16.Qb8+ Nxb8 \xskakcomment{What's the checkmate move?}
17.Rd8#
}
\guessmymove
答案1
您的代码中有一个拼写错误,并且有许多不需要或重复的代码。如果您想要并排移动,请不要使用多列。我删除了 pstricks,以便文档可以使用 pdflatex 进行编译。只有当您真正需要它并且知道它在做什么时才加载它。
\documentclass[10pt,DIV=20]{scrreprt}
\usepackage[svgnames]{xcolor}
\usepackage{lmodern}
\usepackage[T1]{fontenc}
\usepackage[LSB2,LSBC4,T1]{fontenc} % use fontenc before chessboard
\usepackage{xskak}
\newcommand\getmovestyle[1]{%
\ifthenelse
{\equal{#1}{N}}
{\def\mymovestyle{[clockwise=false,style=knight]curvemove}}
{\ifthenelse
{\equal{#1}{}}
{\def\mymovestyle{curvemove}}
{\def\mymovestyle{straightmove}}}}
\newcommand\guessmymove{% this is the 1st macro TO PRINT OUT ALL THE COMMENTS
\xskakloop{%
\ifcsempty{Xskak.\xskakgetgame{gameid}.\xskakget{movenr}.\xskakget{player}.nag}
{}
{%
\getmovestyle{\xskakget{piecechar}}%
\begin{minipage}[t]{0.4\textwidth}\raggedright
\Large
\chessboard[boardfontfamily=alphadia,
boardfontencoding=LSBC4,
normalboard, showmover=false, label=false,
pgfstyle=\mymovestyle, color=red,
markmoves=\xskakget{move}, pgfshortenend=0.3em,
arrow=to,color=blue, markstyle=circle, markfield=\xskakget{movefrom},
emphfields=\xskakget{moveto}, setfen=\xskakget{nextfen},
coloremph=true,
whitefieldmaskcolor=yellow,blackfieldmaskcolor=yellow,emphfield=\xskakget{moveto},,
setfen=\xskakget{nextfen}]\\
\xskakget{opennr}
\xskakget{lan}
\xskakget{nag}
\par
\end{minipage}\quad
}}}
\xskakset{style=UF}
\makeatletter
\providecommand\xskak@beforecomment{}
\makeatother
\pagestyle{empty}
\begin{document}
%********************* GUESS THE MOVE ***************************
\begin{center}
\setboardfontcolors{blackfieldmask=gray!40}
\newchessgame
\noindent
\hidemoves{
1.e4 e5 \xskakcomment{guess?}
2.Nf3 d6 \xskakcomment{guess?\\ Hint: attack the center }
3.d4 Bg4 \xskakcomment{guess?}
4.dxe5 Bxf3 \xskakcomment{guess?}
5.Qxf3 dxe5 \xskakcomment{guess?}
6.Bc4 Nf6 \xskakcomment{guess?\\ Hint: attacking Freddy pawn}
7.Qb3 Qe7 \xskakcomment{guess?\\ Hint: The other Knight joins in the attack}
8.Nc3 c6 \xskakcomment{guess?}
9.Bg5 b5 \xskakcomment{guess?\\ Hint: A sacrifice}
10.Nxb5 cxb5 \xskakcomment{guess?}
11.Bxb5+ Nbd7 \xskakcomment{guess?\\ Hint: Short or Long}
12.O-O-O Rd8 \xskakcomment{guess?\\ Hint: Another sacrifice}
13.Rxd7 Rxd7 \xskakcomment{guess?}
14.Rd1 Qe6 \xskakcomment{guess?\\ Hint: Sacrifice again}
15.Bxd7+ Nxd7 \xskakcomment{guess?\\ Another sacrifice!!}
16.Qb8+ Nxb8 \xskakcomment{What's the checkmate move?}
17.Rd8#
}
\guessmymove
%this is the MACRO guessmymove
\end{center}
\end{document}