+2001-11-20 Kayvan A. Sylvan <kayvan@sylvan.com>
+
+ * examples/chess-article.lyx: Fixed comments. Removed hacks
+ caused by my lack of understanding of TeX macros and LyX layouts.
+ This version is immensely cleaner.
+
+ * examples/chessgame.lyx: Minimized ERT while still showing off
+ the external chess material insets.
+
+ * tex/lyxskak.sty: Added LyX supporting macros. Added better embedded
+ comment handling into skak framework. Fixed some bugs in skak.sty!
+
+ * layouts/chess.layout: Fixed up layout. Removed kludges in previous
+ version. Added Subvariation, Subsubvariation, etc.
+
2001-11-13 André Pönitz <poenitz@gmx.net>
* ui/default.ui: create a new Submenu Insert->Math, since placing
\layout Standard
\backslash
-vspace*{-1in} % This is a hack!
+vspace*{-0.75in} % This is a hack!
\end_inset
\layout Variation
5...
- Nge7}
+ Nge7 [
\backslash
-equal{} was better.{
+equal{} was better.
+ ]
\layout Mainline
6.
\layout Mainline
12...
- O-O?} This move loses instantly.
- {
+ O-O? [ This move loses instantly.
+ ]
\layout Standard
The following was better, even though white retains the upper hand.
12...
e5 13.
Be3 Qc7 14.
- Na4 O-O }
+ Na4 O-O [
\backslash
-wbetter {
+wbetter ]
\layout Mainline
13.
#LyX 1.2 created this file. For more info see http://www.lyx.org/
\lyxformat 220
-\textclass article
+\textclass chess
\begin_preamble
\usepackage{chess-workshop-symbols}
+\smallboard
\end_preamble
\language english
\inputencoding auto
(1623)
\hfill
(1639)
+\layout Mainline
+
+1.
+ e4 c5 2.
+ Nc3 d6 3.
+ g3 Nc6 4.
+ Bg2 e6 5.
+ Nge2
\layout Standard
\layout Standard
\backslash
-newgame
-\backslash
-smallboard%
-\layout Standard
-
-\backslash
-mainline{1. e4 c5 2. Nc3 d6 3. g3 Nc6 4. Bg2 e6 5. Nge2}
+vspace*{-0.2in}
\end_inset
\begin_inset ERT
-status Inlined
+status Collapsed
\layout Standard
\backslash
]
-\backslash
-printknightmove{g1}{e2}
-\backslash
-highlight{d4,f4}
\end_inset
-\layout Standard
+\layout KnightMove
-So far, so good.
- This is all according to theory.
+g1->e2
+\layout HighLight
+
+d4,f4
\layout Standard
\layout Standard
\backslash
-mainline{5... Be7?!}
-\backslash
-variation{5... Nge7}
-\backslash
-equal %
+vspace*{-0.5in} % This is a hack!
+\end_inset
+
+
\layout Standard
-\backslash
-mainline{6. d4 cxd4 7. Nxd4 a6}
-\end_inset
+So far, so good.
+ This is all according to theory.
+\layout Mainline
+
+5...
+ Be7?!
+\layout Variation
+5...
+ Nge7 [
+\backslash
+equal{} ]
+\layout Mainline
+6.
+ d4 cxd4 7.
+ Nxd4 a6
\layout Standard
With 7...\SpecialChar ~
\end_inset
-\layout Standard
-
-
-\begin_inset ERT
-status Open
-
-\layout Standard
-
-\backslash
-mainline{8. Nxc6 bxc6 9. O-O Bb7 10. Qg4 Bf6 11. Bf4 Ne7 12. Rad1}
-\end_inset
-
+\layout Mainline
+8.
+ Nxc6 bxc6 9.
+ O-O Bb7 10.
+ Qg4 Bf6 11.
+ Bf4 Ne7 12.
+ Rad1
\layout Standard
\begin_inset ERT
-status Inlined
+status Collapsed
\layout Standard
\backslash
]
-\backslash
-printarrow{a1}{d1}
\end_inset
-\layout Standard
+\layout Arrow
-White continues to develop pieces and also sets a trap for Black.
+a1->d1
\layout Standard
+White continues to develop pieces and also sets a trap for Black.
+\layout Mainline
-\begin_inset ERT
-status Open
-
-\layout Standard
-
-\backslash
-mainline{12... O-O?} This loses instantly.
-\layout Standard
-Best was
-\backslash
-variation{12... e5 13. Be3 Qc7 14. Na4 O-O}
-\backslash
-wbetter
-\layout Standard
+12...O-O? [ This move loses instantly.
+ ]
+\layout Variation
+12...
+ e5 13.
+ Be3 Qc7 14.
+ Na4 O-O [
\backslash
-mainline{13. e5!} Black's knight and bishop form a bumbling pair here, the Bishop is doomed.
-\layout Standard
+wbetter{} is best ]
+\layout Mainline
-\backslash
-mainline{13... Nd5!? 14. Bxd5 cxd5 15. exf6 Qxf6 16. Bxd6 Rfd8 17. Bc7 Rd7 18. Bf4 1-0 }%
+13.
+ e5!
\layout Standard
-\backslash
-[
-\backslash
-showboard
-\backslash
-]
-\end_inset
-
+Black's knight and bishop are in each other's way.
+ The bishop is doomed.
+\layout Mainline
+
+13...
+ Nd5!? 14.
+ Bxd5 cxd5 15.
+ exf6 Qxf6 16.
+ Bxd6 Rfd8 17.
+ Bc7 Rd7 18.
+ Bf4 1-0
+\layout BoardCentered
\the_end
Preamble
\usepackage[ps,mover]{lyxskak}
- %%% Modified routines from skak.sty
- %
- \def\lyxprintarrow#1{\lyxprintarrow@#1@}
- \def\lyxprintarrow@#1->#2@{\ncline[style=psskak]{-|>}{#1}{#2}}
-
- \def\lyxknightmove#1{\lyxknightmove@#1@}
- \def\lyxknightmove@#1->#2@{%
- \setcounter{ps@knightangle}{\get@fileangle{\First#1}{\First#2}+%
- \get@rankangle{\Second#1}{\Second#2} + \value{ps@inverse}}%
- \ncdiagg[style=psskak,angleA=\arabic{ps@knightangle}]{-|>}{#1}{#2}}
-
- %%% Variation indent (You can set this in your preamble)
- %
- \newlength{\lyxvarindent}
- \setlength{\lyxvarindent}{0.2in}
-
- %%% \Var[ moves ] - use in the Variation paragraph styles.
- %
- \def\Var[#1]{\variation{#1}}
-
%%% initialize board
%
\newgame
Style Variation
CopyStyle Mainline
LatexType Command
- LatexName hspace*\lyxvarindent\variation
+ LatexName lyxvariation[1]
LabelString "Variation: "
LeftMargin MMMMMMMM
End
+# This is a subvariation.
+#
+Style SubVariation
+ CopyStyle Variation
+ LatexName lyxvariation[2]
+ LabelString "Subvariation: "
+ LeftMargin MMMMMMMMMMM
+End
+
+# This is a subsubvariation.
+#
+Style SubVariation2
+ CopyStyle Variation
+ LatexName lyxvariation[3]
+ LabelString "Subvariation(2): "
+ LeftMargin MMMMMMMMMMMMMM
+End
+
+# This is a subsubsubvariation.
+#
+Style SubVariation3
+ CopyStyle Variation
+ LatexName lyxvariation[4]
+ LabelString "Subvariation(3): "
+ LeftMargin MMMMMMMMMMMMMMMMM
+End
+
+# This is a subsubsubsubvariation.
+#
+Style SubVariation4
+ CopyStyle Variation
+ LatexName lyxvariation[5]
+ LabelString "Subvariation(4): "
+ LeftMargin MMMMMMMMMMMMMMMMMMMM
+End
+
+# This is a subsubsubsubsubvariation.
+#
+Style SubVariation5
+ CopyStyle Variation
+ LatexName lyxvariation[6]
+ LabelString "Subvariation(5): "
+ LeftMargin MMMMMMMMMMMMMMMMMMMMMMM
+End
+
# Same as mainline, but it does not print the moves (only updates the
# board position.
#
Style HighLight
CopyStyle Mainline
LatexType Command
- LatexName highlight
+ LatexName lyxhighlight
LeftMargin MMMMMMM
LabelString "Highlights: "
LabelFont
% based on skak.sty
% modified to work with older babel versions
+% Bug fixes and comment parsing code by Kayvan Sylvan <kayvan@sylvan.com>
+%
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{lyxskak}
\expandafter\xdef\csname skaklanguage.#1\endcsname{#2}}
\newcommand{\skaklanguage}[1][english]{%
-%\def\skaklanguage#1{%
\def\currentlanguage{#1}%
\skak@ifthenelse{\equal{#1}{english}}%
{\let\skak@pieceToEnglish=\skak@englishToEnglish%
\ParseCoordinates(#2)}%
{\IsPromotion{#1}%
{\def\Promotion{\True}%
- \gdef\PromotionPieceName{\skak@pieceToEnlish{\FirstChar(#2)}}}}%
+ \gdef\PromotionPieceName{\skak@pieceToEnglish{\FirstChar(#2)}}}}%
{}% no more information is of interest
}}}}
\def\@mainline#1{\endgroup\gdef\NumberNext{\True}%
\Mainline(#1 Z ){\mainlinestyle\typeset@A{#1}}}
-
\def\hidemoves{\begingroup\catcode`\#=12 \@hidemoves}
\def\@hidemoves#1{\endgroup\def\NumberNext{\True}%
\Mainline(#1 Z )}
\def\Mainline(#1 #2){%
\EqStr{Z}{#1}%
- {}%
- {\NumberNext%
- {\EatNumber{#1}% sets \NumberOK, \ExpectedColour
+ {\EqStr{Z}{#2}{}{\Mainline(#2)}}%
+ {\EqStr{[}{#1}%
+ {\typeset@eatcomment#1#2QXXQQ}%
+ {\NumberNext%
+ {\EatNumber{#1}% sets \NumberOK, \ExpectedColour
% executes a move not separated from the
% number with a space, eg, 1.e4
- \NumberOK%
- {\gdef\NumberNext{\False}%
- \Mainline(#2)}%
- {\errmessage{mainline: not the correct move number}}}%
- {\MakeMoveMainline{#1}%
- \Mainline(#2)}}}
-
+ \NumberOK%
+ {\gdef\NumberNext{\False}%
+ \Mainline(#2)}%
+ {\errmessage{mainline: not the correct move number}}}%
+ {\MakeMoveMainline{#1}%
+ \Mainline(#2)}}}}
+\def\typeset@eatcomment[#1]#2QXXQQ{\Mainline(#2)}
%%%%% typesetting
%%% figurine notation
\def\typeset@AA(#1 #2){%
\EqStr{Z}{#1}%
{}%
- {\TypeSetNumberNext%
- {\typeset@number{#1}% sets \TypeSetColour
- \gdef\TypeSetNumberNext{\False}%
- \typeset@AA(#2)}%
- {\typeset@A@move{#1}%
- \typeset@AA(#2)}}}
-
+ {\EqStr{[}{#1}%
+ {\typeset@printcomment#1#2QXXQX}%
+ {{\TypeSetNumberNext%
+ {\typeset@number{#1}% sets \TypeSetColour
+ \gdef\TypeSetNumberNext{\False}%
+ \typeset@AA(#2)}%
+ {\typeset@A@move{#1}%
+ \typeset@AA(#2)}}}}}
+\def\typeset@printcomment[#1]#2QXXQX{{\ }{#1}{\typeset@AA(#2)}}
\def\variation{\begingroup\catcode`\#=12 \@variation}
\def\@variation#1{\endgroup{\variationstyle\typeset@A{#1}}}
\edef\restore@temp{\csname chessgame.#1\endcsname}
\expandafter\FenBoard\restore@temp)}
-% end skak.sty
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Added in support of the chess.layout by Kayvan Sylvan <kayvan@sylvan.com>
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%% Modified routines from skak.sty
+%
+\def\lyxprintarrow#1{\lyxprintarrow@#1@\vspace*{-1\parskip}}
+\def\lyxprintarrow@#1->#2@{\ncline[style=psskak]{-|>}{#1}{#2}}
+
+\def\lyxknightmove#1{\lyxknightmove@#1@\vspace*{-1\parskip}}
+\def\lyxknightmove@#1->#2@{%
+ \setcounter{ps@knightangle}{\get@fileangle{\First#1}{\First#2}+%
+ \get@rankangle{\Second#1}{\Second#2} + \value{ps@inverse}}%
+ \ncdiagg[style=psskak,angleA=\arabic{ps@knightangle}]{-|>}{#1}{#2}}
+
+\def\lyxhighlight#1{\highlight{#1}\vspace*{-1\parskip}}
+
+%%% Variation indent (You can set this in your preamble)
+%
+\newlength{\lyxvarindent}
+\setlength{\lyxvarindent}{0.15in}
+\newlength{\lyxvar@ll}% temporary for storing line length in variations
+%%% lyxvariation{....} - Indented paragraph of variation moves, typeset
+%%% in the normal fashion (styleB).
+%
+\def\lyxvariation[#1]#2{%
+ %\setlength{\lyxvar@ll}{\textwidth}%
+ \setlength{\lyxvar@ll}{\columnwidth}%
+ \addtolength{\lyxvar@ll}{-#1\lyxvarindent}%
+ \hspace*{#1\lyxvarindent}\parbox{\lyxvar@ll}{\variation{#2}}}
+% end lyxskak.sty