% ---------------------------------------------------------------------------
%                 This file belongs to the TAP package
% ---------------------------------------------------------------------------
% This is a real-life example suggested by Maciek G\l{}owacki, demonstrating
% a useful technique for constructing ``simple-but-complex'' tables;
% actually, two aspects you may find interesting: (1) macros that facilites
% shading selected rows; (2) composing a table out of predefined pieces.
% In order to see the result, however, PostScript (DVIPS) is necessary.
% ---------------------------------------------------------------------------

\input tap
\nopagenumbers
\font\f=cmr6 \f
% ---
% SHADING MACROS
% ---
\newcount\graynum
\newtoks\graytoxa
\newtoks\graytoxb

\gdef\fixgray{}

\def\begingray{%
  \noalign{\global\advance\graynum1}%
  \uranchor 0 {g\the\graynum}
  \noalign{
    \edef\graytmp{\noexpand\rectfill {0 0 0 .15} {g\the\graynum}}%
    \graytoxa\expandafter{\fixgray}%
    \graytoxb\expandafter{\graytmp}%
    \xdef\fixgray{\the\graytoxa\the\graytoxb}%
%    \message{\meaning\fixgray}%
  }%
}

\def\endgray{\llanchor 0 {g\the\graynum}}
\def\fixgrays{\fixgray \noalign{\global\graynum0\gdef\fixgray{}}}

% ---
% BASIC TABLE PIECES
% ---
\deftable\whiterow##1\begintable
  \B!0\V{f}#1| | | | | | | | | | | | | | | | | | | | | | | | | | | | \E!
\endtable

\deftable\grayrow##1\begintable
  \begingray
  \B!0\V{f}#1| | | | | | | | | | | | | | | | | | | | | | | | | | | | \E!
  \endgray
\endtable

\deftable\partialrule\begintable \B!0 | @28 \- \E!\endtable

% ---
% THE TABLE
% ---
\thistable{\desiredwidth=5in}
\beginanchtable
\begintableformat \right " &\center \endtableformat
\=
\B!: @29 Begin of day ...................... \E!
\=
\B!+ | ~1 | ~2 | ~3 | ~4 | ~5 | ~6 | ~7 | ~8 | ~9 | 10 | 11 | 12 | 13 | 14 |
       15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 \E!
\=
\grayrow{9}
\partialrule
\whiterow{8}
\partialrule
\grayrow{7}
\partialrule
\whiterow{6}
\partialrule
\grayrow{37.5}
\partialrule
\whiterow{4}
\partialrule
\grayrow{3}
\partialrule
\whiterow{2}
\partialrule
\grayrow{1}
\partialrule
\whiterow{0}
\-
\grayrow{9}
\partialrule
\whiterow{8}
\partialrule
\grayrow{7}
\partialrule
\whiterow{6}
\partialrule
\grayrow{36.5}
\partialrule
\whiterow{4}
\partialrule
\grayrow{3}
\partialrule
\whiterow{2}
\partialrule
\grayrow{1}
\partialrule
\whiterow{0}
\-
\grayrow{9}
\partialrule
\whiterow{8}
\partialrule
\grayrow{7}
\partialrule
\whiterow{6}
\partialrule
\grayrow{35.5}
\partialrule
\whiterow{4}
\partialrule
\grayrow{3}
\partialrule
\whiterow{2}
\partialrule
\grayrow{1}
\partialrule
\whiterow{0}
\=
\fixgrays
\endanchtable

\bye

