diff options
Diffstat (limited to 'Master/texmf-dist/tex/latex/chess/chess.sty')
-rw-r--r-- | Master/texmf-dist/tex/latex/chess/chess.sty | 254 |
1 files changed, 132 insertions, 122 deletions
diff --git a/Master/texmf-dist/tex/latex/chess/chess.sty b/Master/texmf-dist/tex/latex/chess/chess.sty index b584d4469bc..c13c39c70f6 100644 --- a/Master/texmf-dist/tex/latex/chess/chess.sty +++ b/Master/texmf-dist/tex/latex/chess/chess.sty @@ -1,20 +1,3 @@ -% - removed spaces inside macros that might show up in output - -% replaced -% width by \@width -% height by \@height -% depth by \@depth -% "by 1" by \@ne - -% added: -% -% dimen \boardrule holding the width of the rule around the board - -% put \global into \Whitetrue and \Whitefalse - - - -\message{FMi updated chess version 96/07/21!!!} % % chess.sty % --------- @@ -57,12 +40,28 @@ % Version: 1.0 (5 Jan 1990) % +% +% Macro specific initialisations +% +{\def\format{plain} +\ifx\fmtname\format + \ifcat/@ \gdef\makeatletter{\catcode`@=11\relax} + \gdef\resetat{\catcode`@=12\relax} + \else\let\makeatletter\relax\let\resetat\relax\fi + \gdef\mbox#1{\leavevmode\hbox{#1}} + \gdef\Box{\vbox{\hrule height .1pt\hbox{\vrule width .1pt\kern3pt + \vbox{\kern6pt}\kern3pt\vrule width .1pt}\hrule height .1pt}} + \global\font\sc=cmcsc10 +\else + \gdef\line#1{\hbox to \textwidth{#1}} +\fi} + +\makeatletter % % Do we have language support? Otherwise take default language! % -%\ifx\undefined\babel@core@loaded\input english.sty\fi - +\ifx\undefined\babel@core@loaded\input english.sty\fi \def\@set[#1#2](#3){%arguments: [a-h1-8](<letter>) @@ -79,91 +78,88 @@ \def\@col{\ifcase\@c\or a\or b\or c\or d\or e\or f\or g\or h\fi} -\def\@showchar{% - \@get\piece[\@col\the\@r]% - \if\piece E\ifodd\@sum 0\else Z\fi\else - \if\piece P\ifodd\@sum P\else O\fi\else - \if\piece p\ifodd\@sum p\else o\fi\else - \if\piece R\ifodd\@sum R\else S\fi\else - \if\piece B\ifodd\@sum B\else A\fi\else - \if\piece N\ifodd\@sum N\else M\fi\else - \if\piece r\ifodd\@sum r\else s\fi\else - \if\piece b\ifodd\@sum b\else a\fi\else - \if\piece n\ifodd\@sum n\else m\fi\else - \if\piece K\ifodd\@sum K\else J\fi\else - \if\piece Q\ifodd\@sum Q\else L\fi\else - \if\piece k\ifodd\@sum k\else j\fi\else - \if\piece q\ifodd\@sum q\else l\fi\else +\def\@showchar{ + \@get\piece[\@col\the\@r] + \if\piece E \ifodd\@sum 0\else Z\fi\else + \if\piece P \ifodd\@sum P\else O\fi\else + \if\piece p \ifodd\@sum p\else o\fi\else + \if\piece R \ifodd\@sum R\else S\fi\else + \if\piece B \ifodd\@sum B\else A\fi\else + \if\piece N \ifodd\@sum N\else M\fi\else + \if\piece r \ifodd\@sum r\else s\fi\else + \if\piece b \ifodd\@sum b\else a\fi\else + \if\piece n \ifodd\@sum n\else m\fi\else + \if\piece K \ifodd\@sum K\else J\fi\else + \if\piece Q \ifodd\@sum Q\else L\fi\else + \if\piece k \ifodd\@sum k\else j\fi\else + \if\piece q \ifodd\@sum q\else l\fi\else \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi} -\def\@showrow#1{% +\def\@showrow#1{ \@r=#1\@c=1 \@sum=\@r\advance\@sum by\@c \loop \@showchar - \ifnum\@c<8 \advance\@c \@ne\advance\@sum \@ne + \ifnum\@c<8 \advance\@c by1\advance\@sum by1 \repeat } -\newdimen\boardrule -\setlength\boardrule{1pt} - -\def\showboard{% +\def\showboard{ \vbox{\offinterlineskip - \hrule \@height \boardrule - \hbox{\vrule \@width \boardrule\Chess - \vbox{\hbox{\@showrow8}% - \hbox{\@showrow7}% - \hbox{\@showrow6}% - \hbox{\@showrow5}% - \hbox{\@showrow4}% - \hbox{\@showrow3}% - \hbox{\@showrow2}% + \hrule height1pt + \hbox{\vrule width1pt\Chess + \vbox{\hbox{\@showrow8} + \hbox{\@showrow7} + \hbox{\@showrow6} + \hbox{\@showrow5} + \hbox{\@showrow4} + \hbox{\@showrow3} + \hbox{\@showrow2} \hbox{\@showrow1}}% - \vrule \@width \boardrule}% - \hrule \@height \boardrule}% + \vrule width1pt} + \hrule height1pt} } % inner loop needs extra { ... } -\def\@emptyboard{% - \@r\@ne +\def\@emptyboard{ + \@r=1 \loop - {\@c\@ne + {\@c=1 \loop - \@set[\@col\the\@r](E)% - \ifnum\@c<8 \advance\@c \@ne - \repeat}% - \ifnum\@r<8 \advance\@r \@ne + \@set[\@col\the\@r](E) + \ifnum\@c<8 \advance\@c by1 + \repeat} + \ifnum\@r<8 \advance\@r by 1 \repeat } -\def\@initboard{% +\def\@initboard{ % empty squares - \@r\thr@@ + \@r=3 \loop - {\@c\@ne + {\@c=1 \loop - \@set[\@col\the\@r](E)% - \ifnum\@c<8 \advance\@c \@ne - \repeat}% - \ifnum\@r<6 \advance\@r \@ne + \@set[\@col\the\@r](E) + \ifnum\@c<8 \advance\@c by1 + \repeat} + \ifnum\@r<6 \advance\@r by 1 \repeat % pawns - \@c\@ne + \@c=1 \loop - \@set[\@col2](P)\@set[\@col7](p)% - \ifnum\@c<8 \advance\@c \@ne + \@set[\@col2](P)\@set[\@col7](p) + \ifnum\@c<8 \advance\@c by1 \repeat % pieces - \@set[a1](R)\@set[h1](R)% - \@set[a8](r)\@set[h8](r)% - \@set[b1](N)\@set[g1](N)% - \@set[b8](n)\@set[g8](n)% - \@set[c1](B)\@set[f1](B)% - \@set[c8](b)\@set[f8](b)% - \@set[d1](Q)\@set[e1](K)% - \@set[d8](q)\@set[e8](k)% + \@set[a1](R)\@set[h1](R) + \@set[a8](r)\@set[h8](r) + \@set[b1](N)\@set[g1](N) + \@set[b8](n)\@set[g8](n) + \@set[c1](B)\@set[f1](B) + \@set[c8](b)\@set[f8](b) + \@set[d1](Q)\@set[e1](K) + \@set[d8](q)\@set[e8](k) } % @@ -211,8 +207,24 @@ \expandafter\ifx\csname l@#1\endcsname\relax% \else\ifnum\language=\expandafter\csname l@#1\endcsname\relax#2\fi\fi} \def\select@pieces{% select pieces depending on language + \ifcurrentlanguage{english}{% \define@White@pieces{K}{Q}{R}{B}{N}{P} - \define@Black@pieces{k}{q}{r}{b}{n}{p} + \define@Black@pieces{k}{q}{r}{b}{n}{p}} + \ifcurrentlanguage{dutch}{% + \define@White@pieces{K}{D}{T}{L}{P}{I} + \define@Black@pieces{k}{d}{t}{l}{p}{i}} + \ifcurrentlanguage{german}{% + \define@White@pieces{K}{D}{T}{L}{S}{B} + \define@Black@pieces{k}{d}{t}{l}{s}{b}} + \ifcurrentlanguage{french}{% + \define@White@pieces{R}{D}{T}{F}{C}{P} + \define@Black@pieces{r}{d}{t}{f}{c}{p}} +% Define here your language and choose an unique set of uppercase letters +% for the White pieces (KING, QUEEN, etc.) and the corresponding lowercase +% letters for the Black pieces (king, queen, etc.). +% \ifcurrentlanguage{FOREIGN}{% +% \define@White@pieces{KING}{QUEEN}{ROOK}{BISHOP}{KNIGHT}{PAWN} +% \define@Black@pieces{king}{queen}{rook}{bishop}{knight}{pawn}} } \def\let@pieces#1#2#3#4#5{% let character codes be macros \let#1=\@king\let#2=\@queen\let#3=\@rook% @@ -225,7 +237,13 @@ \catcode`:=\active\catcode`.=\active\catcode`*=\active\catcode`-=\active \activate@pieces % I would like to say ``\let\king@=\@king'' but how? - \let@pieces{K}{Q}{R}{B}{N}% + \ifcurrentlanguage{english}{\let@pieces{K}{Q}{R}{B}{N}}% + \ifcurrentlanguage{dutch}{\let@pieces{K}{D}{T}{L}{P}}% + \ifcurrentlanguage{german}{\let@pieces{K}{D}{T}{L}{S}}% + \ifcurrentlanguage{french}{\let@pieces{R}{D}{T}{F}{C}}% +% Fill in your language and the uppercase letters for KING, QUEEN, etc. +% \ifcurrentlanguage{FOREIGN}{\let@pieces{KING}{QUEEN}{ROOK}{BISHOP}{KNIGHT}}% +% Your language will be activated by FOREIGN.sty. \let-=\@dash\let*=\@capt\let:=\@dots\let.=\@dot}% \gdef\@notation{\begingroup\let|=\endgroup\trigger@pieces}% % @@ -246,10 +264,6 @@ \newif\ifWhite \newif\ifFigure \newif\ifcapture -%FMi -\def\Whitetrue{\global\let\ifWhite\iftrue} -\def\Whitefalse{\global\let\ifWhite\iffalse} - % % next newif's needed for castling % @@ -262,7 +276,7 @@ \newif\ifenpassant \newif\ifpromotion -\def\@color#1{% Color of a piece 0: none, -1: black, 1: white +\def\@color#1{ % Color of a piece 0: none, -1: black, 1: white \if #1E0\else \ifnum`#1=\uccode`#11\else-1\fi\fi} @@ -309,7 +323,7 @@ \ifpromotion\@set[#3#4](\PROM)\else\@set[#3#4](\piece)\fi \ifenpassant\@set[#3#2](E)\enpassantfalse\fi \fi - \Whitefalse + \global\Whitefalse \else % ``same'' for Black \if\piece p\Figurefalse \if#43 @@ -347,7 +361,7 @@ \ifpromotion\@set[#3#4](\prom)\else\@set[#3#4](\piece)\fi \ifenpassant\@set[#3#2](E)\enpassantfalse\fi \fi - \Whitetrue + \global\Whitetrue \fi} % @@ -371,21 +385,17 @@ \newcount\movecount \movecount=0 -%FMi LaTeX name: allows \setcounter.... -\let\c@movecount\movecount - -%FMi LaTeX name \@@line not \line \def\showmove#1#2{\par - \@@line{\strut\hbox to1cm{\hfil\the\movecount.}% + \line{\strut\hbox to1cm{\hfil\the\movecount.}% \hbox to2.8cm{\hfil#1}\hbox to2.8cm{\hfil#2}\hfil}\par} \def\move#1 #2 { - \advance\movecount \@ne + \advance\movecount by 1 \showmove{\@ply#1 }{\@ply#2 }} \def\ply#1 { \ifWhite - \advance\movecount \@ne + \advance\movecount by 1 \showmove{\@ply#1 }{} \else \showmove{$\ldots$}{\@ply#1 } @@ -419,7 +429,7 @@ \if\@@next\uc@king \@set[\@col\the\@r](K)\else \if\@@next\lc@king \@set[\@col\the\@r](k)\else \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi - \advance\@c \@ne} + \advance\@c by1} \def\@initrow#1#2{\@r=#1\@c=1\@dolist#2\@endlist} @@ -467,7 +477,7 @@ \def\position{\begingroup% \@emptyboard\movecount=0\xdef\eprow{x} - \Whitetrue\global\castlingfalse + \global\Whitetrue\global\castlingfalse \global\Knotmovedtrue\global\knotmovedtrue \global\promotionfalse\global\enpassantfalse} \def\endposition{\endgroup} @@ -490,12 +500,12 @@ \def\equal{=} \def\unclear{\mbox{$\infty$}} \def\compensation{\mbox{\baselineskip0pt$\vcenter{\vbox{% - \hbox{\kern.056em\vbox{\hrule \@width 0.89em\kern0.35ex\hrule \@width 0.89em}} + \hbox{\kern.056em\vbox{\hrule width0.89em\kern0.35ex\hrule width0.89em}} \kern.2ex\hbox{$\infty$}}}$}} % next symbol should be build using METAFONT \def\devadvantage{{\symbolten\char'015}\kern-4.8pt - \vrule \@width 2.4pt \@height 6pt \@depth -5.6pt - \vrule \@width .4pt \@height 8pt \@depth -5.6pt\kern2.4pt} + \vrule width 2.4pt height6pt depth-5.6pt + \vrule width .4pt height8pt depth-5.6pt\kern2.4pt} \def\moreroom{{\symbolten\char'015}} \def\withattack{$\rightarrow$} \def\withinit{$\uparrow$} @@ -503,14 +513,14 @@ $\vcenter{\vbox{\hbox{$\leftarrow$}\hbox{$\rightarrow$}}}$}} \def\zugzwang{$\odot$} \def\mate{\kern.4pt\mbox{% - \vrule \@width 2ex \@height 1.18ex \@depth -1.1ex\kern-2ex - \vrule \@width 2ex \@height .52ex \@depth -.44ex\kern-1.381ex - \vrule \@width .08ex \@height 1.8ex \@depth .2ex\kern0.615ex - \vrule \@width .08ex \@height 1.8ex \@depth .2ex\kern0.406ex}\kern.4pt} + \vrule width2ex height1.18ex depth-1.1ex\kern-2ex + \vrule width2ex height.52ex depth-.44ex\kern-1.381ex + \vrule width.08ex height1.8ex depth.2ex\kern0.615ex + \vrule width.08ex height1.8ex depth.2ex\kern0.406ex}\kern.4pt} \def\withidea{$\triangle$} \def\onlymove{$\Box$} \def\betteris{\mbox{\baselineskip0pt - $\vcenter{\vbox{\hbox{$\frown$}\kern-0.35ex\hrule \@width 0.95em}}$}} + $\vcenter{\vbox{\hbox{$\frown$}\kern-0.35ex\hrule width0.95em}}$}} \def\file{$\Leftrightarrow$} % next symbol should be build using METAFONT \def\diagonal{$\nearrow$} @@ -520,28 +530,28 @@ \def\weakpt{$\times$} \def\ending{$\perp$} % John Saba's method: -\def\blackbox{\vrule \@height .8ex \@width 1.2ex \@depth 0ex} -\def\whitebox{\vbox{\hrule \@height .1pt\hbox{\vrule \@width .1pt\kern.6ex - \vbox{\kern.8ex}\kern.6ex\vrule \@width .1pt}\hrule \@height .1pt}} +\def\blackbox{\vrule height .8ex width 1.2ex depth 0ex} +\def\whitebox{\vbox{\hrule height .1pt\hbox{\vrule width .1pt\kern.6ex + \vbox{\kern.8ex}\kern.6ex\vrule width .1pt}\hrule height .1pt}} \def\bishoppair{\whitebox\kern-2pt\raise1.8pt\hbox{\whitebox}} \def\opposbishops{\whitebox\kern-2pt\raise1.8pt\hbox{\blackbox}} \def\samebishops{\blackbox\kern-2pt\raise1.8pt\hbox{\blackbox}} % My method %\def\bishoppair{\setbox0=\hbox{% -% \vrule \@width 1.4ex \@height 1ex \@depth -.92ex\kern-1.4ex -% \vrule \@width 1.4ex \@height .08ex \@depth 0pt\kern-1.4ex -% \vrule \@width .08ex \@height 1ex \@depth 0ex\kern1.24ex -% \vrule \@width .08ex \@height 1ex \@depth 0ex}% +% \vrule width1.4ex height1ex depth-.92ex\kern-1.4ex +% \vrule width1.4ex height.08ex depth0pt\kern-1.4ex +% \vrule width.08ex height1ex depth0ex\kern1.24ex +% \vrule width.08ex height1ex depth0ex}% % \kern.4pt\mbox{\copy0\kern-.6ex\raise0.56ex\box0}\kern.4pt} %\def\opposbishops{\kern.4pt\mbox{% -% \vrule \@width 1.4ex \@height 1ex \@depth -.92ex\kern-1.4ex -% \vrule \@width 1.4ex \@height .08ex \@depth 0pt\kern-1.4ex -% \vrule \@width .08ex \@height 1ex \@depth 0ex\kern1.24ex -% \vrule \@width .08ex \@height 1ex \@depth 0ex\kern-.6ex -% \vrule \@width 1.4ex \@height 1.56ex \@depth -0.56ex}\kern.4pt } +% \vrule width1.4ex height1ex depth-.92ex\kern-1.4ex +% \vrule width1.4ex height.08ex depth0pt\kern-1.4ex +% \vrule width.08ex height1ex depth0ex\kern1.24ex +% \vrule width.08ex height1ex depth0ex\kern-.6ex +% \vrule width1.4ex height1.56ex depth-0.56ex}\kern.4pt } %\def\samebishops{\kern.4pt\mbox{% -% \vrule \@width 1.4ex \@height 1ex \@depth 0ex\kern-.6ex -% \vrule \@width 1.4ex \@height 1.56ex \@depth -0.56ex}\kern.4pt} +% \vrule width1.4ex height1ex depth0ex\kern-.6ex +% \vrule width1.4ex height1.56ex depth-0.56ex}\kern.4pt} \def\unitedpawns{$\circ\kern-.05em\circ$} \def\seppawns{$\circ\kern-.3em\cdot\kern-.35em\cdot\kern-.1em\circ$} \def\doublepawns{\mbox{\baselineskip0pt @@ -555,12 +565,12 @@ \def\comment{{\sc RR}} \def\various{{\sc R}} \def\without{\kern.4pt\mbox{% - \vrule \@width 1ex \@height .08ex \@depth 0ex\kern-0.08ex - \vrule \@width 0.08ex \@height 1.5ex \@depth 0ex}\kern.4pt} + \vrule width 1ex height.08ex depth0ex\kern-0.08ex + \vrule width0.08ex height1.5ex depth0ex}\kern.4pt} \def\with{\kern.4pt\mbox{% - \vrule \@width 0.08ex \@height 1.5ex \@depth 0ex\kern-0.08ex - \vrule \@width 1ex \@height .08ex \@depth 0ex}\kern.4pt} + \vrule width 0.08ex height1.5ex depth0ex\kern-0.08ex + \vrule width 1ex height.08ex depth0ex}\kern.4pt} \def\etc{$\parallel$} -\def\see{\kern.4pt\mbox{\vrule \@width 1em \@height .54ex \@depth -.46ex}\kern.4pt} - +\def\see{\kern.4pt\mbox{\vrule width 1em height.54ex depth-.46ex}\kern.4pt} +\resetat |