<..diagram.4ht..>
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% diagram.4ht 2014-07-12-22:36 %
% Copyright (C) 2008--2009 Eitan M. Gurari %
<.TeX4ht copyright.>
<.config diagram.>
\let\:EndIgnore\relax
\def\:Ignore{\bgroup
\catcode‘\\=12
\long\def\:temp##1:EndIgnore{\egroup}\:temp
}
\ifx \setboardwidth\:UnDef \expandafter\:Ignore\fi
<.config diagram 08.>
\:EndIgnore
\ifx \setboardwidth\:UnDef \else \expandafter\:Ignore\fi
<.config diagram 95.>
\:EndIgnore
\Hinput{diagram}
\endinput
-_-_-
<..config diagram 95..>
\def\@dia@stipulation{%
\a:stipulation
\bgroup%
\stipfont%
\hbox{%
\a:piececounter
\if@show@computer%
C\if@computer +\else --\fi
\fi%
\iffigcnt%
\if@show@computer\ \ \fi{} (\the\w@cnt+\the\b@cnt
\ifnum\z@<\n@cnt+\the\n@cnt\fi)%
\fi%
\b:piececounter
\if@stipulation \c:stipulation\the
\stipulation@tk \d:stipulation\fi
\ifx@twins \@dia@twins\fi%
\ifx@cond \@dia@condition\fi%
}%
\egroup%
\b:stipulation
}
-_-_-
<..config diagram 08..>
\def\@dia@stipulation{%
\if@stipulation%
\a:stipulation
\bgroup%
\stipfont%
\c:stipulation \the\stipulation@tk \d:stipulation
\ifx@twins%
\let\below@newline\@twinskip%
\@dia@twins%
\else\ifx@cond%
\let\below@newline\@twinskip%
\@dia@condition%
\fi\fi%
\egroup%
\b:stipulation
\let\below@newline\newline%
\else%
\x@twinsfalse%
\x@condfalse%
\let\below@newline\relax%
\fi%
}
\def\put@count{%
% First we build the box with the figure count
\ifthenelse{\boolean{piececounter}}{%
\a:piececounter
\if@show@computer%
C\if@computer +\else --\fi
\ \
\fi%
(\arabic{cpd@whitePieces}+\arabic{cpd@blackPieces}%
\ifthenelse{\value{cpd@neutralPieces}>0}{+\arabic{cpd@neutralPieces}}{})%
\b:piececounter
}{}%
}
-_-_-
<..config diagram 95..>+
\def\put@plane{%
% We might want gridchess
\if@stdgrid%
\@stdgrid%
\fi%
% Let us first set the fieldframes
\if@fieldframe%
\let\@action\read@square%
\let\plane@job\set@frame%
\@addToPlane\fieldframe@tk%
\fi%
% Then we should add the gridlines
\if@gridlines%
\let\@action\read@plane%
\let\plane@job\@selGrid%
\@addToPlane\gridlines@tk%
\else%
\if@stereo%
\stereo@center%
\fi%
\fi%
% Now we should clear the board
\clear@board%
% Let us now parse the list of pieces
\if@pieces%
\let\@action\p@rsepieces%
\let\piece@job\l@@k\let\plane@job\set@piece%
\@parseTokenlist\pieces@tk,%
\fi%
% Now we clear all fields, which are given using \nofields
\if@nofields%
\let\@action\read@square%
\let\plane@job\set@nofield%
\@parseTokenlist\nofields@tk,%
\fi%
\global\setbox\plane@box=\hbox{
% Now we can put the pieces to the board
\vbox{\IgnorePar\box\plane@box}%
\vbox{%
\a:diagram
\chessfont%
\baselineskip=\z@\lineskip=\z@%
\@rows=\rows@max%
\multiply\@rows by \lines@max%
\loop%
\advance\@rows -\lines@max%
\tmp:cnt=\@rows \divide\tmp:cnt by 8 \advance\tmp:cnt by 1
\edef\HRow{\the\tmp:cnt}%
\c:diagram \put@line\@rows \d:diagram
\ifnum\@rows>\z@\repeat%
\b:diagram
}%
}%
}
-_-_-
<..config diagram 08..>+
\def\put@plane{%
% We might want gridchess
\if@stdgrid%
\@stdgrid%
\fi%
% Let us first set the fieldframes
\if@fieldframe%
\let\@action\read@square%
\let\plane@job\set@frame%
\@addToPlane\fieldframe@tk%
\fi%
% Now we set text to all squares which are given using \fieldtext
\if@fieldtext%
\let\@action\p@rsetext%
\let\plane@job\set@text%
\@addToPlane\fieldtext@tk%
\fi%
% Then we should add the gridlines
\if@gridlines%
\let\@action\read@plane%
\let\plane@job\@selGrid%
\@addToPlane\gridlines@tk%
\else%
\if@stereo%
\stereo@center%
\fi%
\fi%
% Now we should clear the board
\clear@board%
% Let us now parse the list of pieces
\if@pieces%
\let\@action\p@rsepieces%
\let\piece@job\l@@k\let\plane@job\set@piece%
\@parseTokenlist\pieces@tk,%
\fi%
% Now we clear all fields, which are given using \nofields
\if@nofields%
\let\@action\read@square%
\let\plane@job\set@nofield%
\@parseTokenlist\nofields@tk,%
\fi%
% Now we can put the pieces to the board
\global\setbox\plane@box=\hbox{%
\vbox{\rlap{\box\plane@box}}%
\vbox{%
\a:diagram
\chessfont%
\baselineskip=\z@\lineskip=\z@%
\@rows=\rows@max%
% \multiply\@rows by \lines@max%
\loop%
% \advance\@rows -\lines@max%
% \put@line\@rows%
% Remove \put@line in future versions
\advance\@rows \m@ne%
\tmp:cnt=\@rows \advance\tmp:cnt by 1
\edef\HRow{\the\tmp:cnt}%
\c:diagram \put@row\@rows \d:diagram
\ifnum\@rows>\z@\repeat%
\b:diagram
}%
}%
}
-_-_-
<..config diagram 95..>+
\def\put@line#1{%
\lin@\z@%
\help@b=#1\advance\help@b\brd@ff%
\hbox{%
\if@stereo%
\ifnum\current@plane>\z@%
\ifnum\@rows=12%
\llap{\raise .5\sq@width\hbox{\boardfont c6\ }}%
\fi%
\fi%
\fi%
\hbox to \z@{\vbox to \sq@width{}}%
\loop%
\tmp:cnt=\lin@ \advance\tmp:cnt by 1\relax
\edef\HCol{\the\tmp:cnt}%
\e:diagram
\ifnum\count\help@b=\m@ne\wF%
\else \char\count\help@b\fi%
\advance\lin@\@ne\advance\help@b\@ne%
\f:diagram
\ifnum\lin@<\lines@max\repeat%
}%
}
-_-_-
What \put@line of the 08 version does?
<..config diagram 08..>+
\def\put@row#1{%
\lin@\z@%
\help@b=#1%
\advance\help@b\brd@ff%
\hbox{%
\if@stereo%
\ifnum\current@plane>\z@%
\ifnum\@rows=12%
\llap{\raise .5\sq@width\hbox{\boardfont c6\ }}%
\fi%
\fi%
\fi%
\hbox to \z@{\vbox to \sq@width{}}%
\set@current@square@index{\lin@}{#1}%
\loop%
\tmp:cnt=\lin@ \advance\tmp:cnt by 1\relax
\edef\HCol{\the\tmp:cnt}%
\e:diagram
\get@current@square@value%
\ifthenelse{\value{cpd@current@square@value}=\m@ne}%
{\wF}%
{\char\value{cpd@current@square@value}}%
% \ifnum\count\help@b=\m@ne\wF%
% \else\char\count\help@b\fi%
\advance\lin@\@ne%
\addtocounter{cpd@current@square@index}{1}%
% \advance\help@b\@ne%
\f:diagram
\ifnum\lin@<\lines@max\repeat%
}%
}
-_-_-
<..config diagram..>
\inner@frame = 0pt
\outer@frame = 0pt
\NewConfigure{diagram}{6}
\NewConfigure{stipulation}{4}
\NewConfigure{piececounter}{2}
\pend:def\@dia@authors{\ifauth@r \a:authors\fi}
\append:def\@dia@authors{\ifauth@r \b:authors \fi}
\NewConfigure{authors}{2}
\pend:def\@dia@condition{\if@condition \a:condition\fi}
\append:def\@dia@condition{\if@condition \b:condition \fi}
\NewConfigure{condition}{2}
\pend:def\@dia@solution{\a:solution}
\append:def\@dia@solution{\b:solution }
\NewConfigure{solution}{2}
\pend:def\@dia@award{\if@award\a:award\fi}
\append:def\@dia@award{\if@award\b:award\fi }
\NewConfigure{award}{2}
\pend:def\@dia@dedic{\if@dedication\a:dedic\fi}
\append:def\@dia@dedic{\if@dedication\b:dedic \fi}
\NewConfigure{dedic}{2}
\pend:def\@dia@number{\ifdi@no\a:number\fi}
\append:def\@dia@number{\ifdi@no\b:number\fi}
\NewConfigure{number}{2}
\pend:def\@dia@twins{\ifauth@r \a:twins\fi}
\append:def\@dia@twins{\ifauth@r \b:twins\fi}
\NewConfigure{twins}{2}
\pend:def\@dia@remark{\ifauth@r \a:remark\fi}
\append:def\@dia@remark{\ifauth@r \b:remark \fi}
\NewConfigure{remark}{2}
\pend:def\dia@above{\a:above}
\append:def\dia@above{\b:above }
\NewConfigure{above}{2}
\pend:def\dia@below{\a:below}
\append:def\dia@below{\b:below }
\NewConfigure{below}{2}
\pend:def\@dia@correction{\if@correction\a:correction\fi}
\append:def\@dia@correction{\if@correction\b:correction\fi }
\NewConfigure{correction}{2}
\def\putsol{\immediate\closeout\s@lfd\input\jobname.sol}%\cl@arsol}
\pend:def\putsol{\HAssign\solNum=0}
\def\showlabel#1{\if@develop\a:showlabel\hbox{\labelfont#1}\b:showlabel\fi}
\NewConfigure{showlabel}{2}
\def\@dia@solution{%
\bgroup%
\parindent\z@%
\csname a:sol-title\endcsname
{\bf
\noindent\if@label\showlabel{\the\label@tk}\fi
\csname a:sol-number\endcsname
\the\number@tk \csname b:sol-number\endcsname) %
\ifauth@r%
\csname a:sol-author\endcsname
\ifnormal@names%
\the\aut@tk%
\else%
{\@notfirstfalse% We are the first one
\let\@action=\@solname%
\@parseTokenlist\aut@tk;}:%
\fi%
\csname b:sol-author\endcsname
\fi%
}%
\if@develop\if@judgement\a:judgement\the\judgement@tk\b:judgement\fi\fi%
\csname b:sol-title\endcsname
\par%
\the\sol@tk\par%
\if@comment\the\comment@tk\par\fi%
\egroup%
}
\NewConfigure{judgement}{2}
\NewConfigure{sol-number}{2}
\NewConfigure{sol-author}{2}
\NewConfigure{sol-title}{2}
\def\@dia@source{%
{\if@source%
\a:source
\sourcefont%
\if@sourcenr\the\sourcenr@tk\ \fi
\the\source@tk%
\a:date
\ifnum\from@month>\z@%
\if@day%
\ \ \the\day@tk .\write@month\from@month%
\else%
\ \ \write@month\from@month%
\fi%
\ifnum\to@month>\z@ -\write@month\to@month\fi%
\if@day .\else /\fi%
\else%
\ \ %
\fi%
\if@year\the\year@tk\fi%
\b:date
\if@issue /\a:issue\the\issue@tk\b:issue\fi%
\if@pages ,\ \a:pages\the\pages@tk\b:pages\fi%
\par%
\b:source
\fi}%
}
\NewConfigure{source}{2}
\NewConfigure{source}{2}
\NewConfigure{date}{2}
\NewConfigure{issue}{2}
\NewConfigure{pages}{2}
-_-_-