diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
commit | e0c6872cf40896c7be36b11dcc744620f10adf1d (patch) | |
tree | 60335e10d2f4354b0674ec22d7b53f0f8abee672 /usergrps/uktug/baskervi/6_2/spqr/colortab.tex |
Initial commit
Diffstat (limited to 'usergrps/uktug/baskervi/6_2/spqr/colortab.tex')
-rw-r--r-- | usergrps/uktug/baskervi/6_2/spqr/colortab.tex | 220 |
1 files changed, 220 insertions, 0 deletions
diff --git a/usergrps/uktug/baskervi/6_2/spqr/colortab.tex b/usergrps/uktug/baskervi/6_2/spqr/colortab.tex new file mode 100644 index 0000000000..8dd218e874 --- /dev/null +++ b/usergrps/uktug/baskervi/6_2/spqr/colortab.tex @@ -0,0 +1,220 @@ +%% BEGIN colortab.tex/colortab.sty +%% +\def\fileversion{0.9} +\def\filedate{93/01/11} +%% +%% COPYRIGHT 1993, by Timothy Van Zandt, tvz@Princeton.EDU +%% +%% DESCRIPTION: +%% colortab.tex/colortab.sty lets you shade or color the cells in a +%% alignment environments (e.g., \halign and \LaTeX's tabular and +%% array environments). It is compatible with most TeX macro packages, +%% including Plain TeX, LaTeX, AmSTeX, and Ams-LaTeX. You must be +%% use in conjunction with other color commands. +%% +%% INSTALLATION: +%% Put this file where your TeX looks for inputs, under the name +%% colortab.tex. Name a copy colortab.sty to use as a LaTeX style option, +%% or create a file colortab.sty with the lines: +%% \input colortab.tex +%% \endinput +%% +%% DOCUMENTATION: +%% See colortab.doc, which might be appended to this file. +%% +%% COPYING: +%% Copying of part or all of this file is allowed under the following +%% conditions only: +%% (1) You may freely distribute unchanged copies of the file. Please +%% include the documentation when you do so. +%% (2) You may modify a renamed copy of the file, but only for personal +%% use or use within an organization. +%% (3) You may copy fragments from the file, for personal use or for +%% distribution, as long as credit is given where credit is due. +%% +%% You are NOT ALLOWED to take money for the distribution or use of +%% this file or modified versions or fragments thereof, except for +%% a nominal charge for copying etc. +%% +%% CODE: +% +% colortab.tex uses TeX primitives, plus the Plain TeX commands: +% \newcount, \newtoks, \newbox, \newif and \z@. +% +% The LaTeX specific macros also use some LaTeX commands. +% +\csname ColortabLoaded\endcsname +\let\ColortabLoaded\endinput +% +\message{\space\space v\fileversion\space\space\filedate\space\space <tvz>} +\edef\TheAtCode{\the\catcode`\@}\catcode`\@=11 +% +% These scratch registers are set globally: +% +\newcount\CT@cnt +\newdimen\CT@dim +\newbox\CT@box +% +% This flag is used to shut off colortab: +% +\newif\ifcolortab +\colortabtrue +% +% To color row cells of unknown height we first have to put the rows in an +% alignment and measure the resulting height, then put down a row of blobs +% (with \hrule, and then move back up the page. +% +% For TeX's \halign primitive, \coloralign saves the preamble in the token +% register \CT@preamble. This is used to calculate the height of the columns +% that are to be colored in. +% +\newtoks\CT@preamble +\def\coloralign{% + \afterassignment\coloralign@ + \setbox\CT@box=\hbox} +\def\coloralign@#1\cr{% + \egroup + \CT@preamble{\halign\bgroup#1\cr}% + \the\CT@preamble} +% +% \CC reads the next row, which should contain the color commands, and then +% the rows to be colored. The height of the latter rows is calculated, and +% then the row of colors is processed. \CT@columncolor uses \leaders to get +% each color to fill the column horizontally, and it uses the previously +% calculated height to fill the columns vertically. +% \begin{macrocode} +\def\CT@columncolor{% + \ifx\next\@nil + \def\next##1&\@nil{\gdef\CT@next{##1}}% + \expandafter\next\CT@next\@nil + \def\CT@temp\@nil{}% + \else + \ifx\next\CT@space + \def\CT@temp{% + \def\next{\futurelet\next\CT@columncolor}% + \afterassignment\next\let\CT@temp= }% + \else + \def\CT@temp{\CT@@columncolor}% + \fi + \fi + \CT@temp} +\def\CT@@columncolor#1&{% + \ifx\next&% + \expandafter\gdef\expandafter\CT@next\expandafter{\CT@next\omit{}&}% + \else + \expandafter\gdef\expandafter\CT@next\expandafter{\CT@next + \omit{{\ignorespaces#1{\leaders\hrule height\CT@dim\hfil}}}&}% + \fi + \futurelet\next\CT@columncolor} +{\def\\{\global\let\CT@space= }\\ } +\def\CC@#1#2#3{% + \ifcolortab + \noalign{% + \setbox\CT@box=\vbox{#1#3\crcr\egroup}% + \CT@dim=\ht\CT@box + \global\advance\CT@dim by \dp\CT@box + \def\CT@next{}% + \futurelet\next\CT@columncolor#2&\@nil}% + \CT@next\cr + \noalign{\vskip-\CT@dim}% + \fi + #3} +\def\CC#1\cr#2\ECC{\CC@{\the\CT@preamble}{#1}{#2}} +% +% With \LaTeX's alignment macros, the preamble is saved for us in \@preamble. +% Otherwise, \LCC is the same as \CC. +% +\def\LCC#1\\#2\ECC{\CC@{\@preamble}{#1}{#2}} +% +% This unaligned color stuff only works with PSTricks: +% +\def\AC#1{\pstVerb{\pst@usecolor{#1}}} +\def\EAC{\pstVerb{\pst@currentcolor}} +\def\NAC#1{\noalign{\AC{#1}}} +\def\ENAC{\noalign{\EAC}} +% +\def\SP{\noalign{\global\let\CT@savedpreamble\@preamble}} +\def\RP{\noalign{\global\let\@preamble\CT@savedpreamble}} +% +\newcount\CT@LCnum +\def\LColors#1\\{% + \noalign{% + \ifnum\CT@LCinitflag=\c@LT@tables\else\CT@LCinit\fi + \ifnum\CT@LCflag=\z@ + \global\CT@LCnum 1 + \CT@LColors#1&\@nil + \global\CT@LCnum\CT@LCmax + \fi}} +\def\CT@LColors#1&{% + \global\@namedef{LColor@\the\CT@LCnum}{#1}% + \@ifnextchar\@nil{\@gobble}{% + \global\advance\CT@LCnum 1 + \CT@LColors}} +\def\CT@LCinit{% + \ifcolortab + \@ifundefined{LT@\romannumeral\c@LT@tables}% + {\gdef\CT@LCflag{1}}{\gdef\CT@LCflag{\z@}}% + \else + \gdef{CT@LCflag{1}}% + \fi + \ifnum\CT@LCflag=\z@ + \begingroup + \def\omit\kern##1&{% + \advance\CT@LCnum 1 + \CT@dim=##1\relax + \expandafter\xdef\csname LCdim@\the\CT@LCnum\endcsname{% + \number\CT@dim sp}}% + \CT@LCnum\z@ + \@nameuse{LT@\romannumeral\c@LT@tables}&% + \xdef\CT@LCmax{\the\CT@LCnum}% + \endgroup + \fi + \xdef\CT@LCinitflag{\the\c@LT@tables}} +\def\CT@LCinitflag{\z@} +\def\LC@Cell{% + \kern-\@tempdima + \ifnum\CT@LCflag=\z@ + \ifnum\CT@LCnum=\CT@LCmax\relax + \global\CT@LCnum 1 + \else + \global\advance\CT@LCnum 1 + \fi + \CT@dim=\@nameuse{LCdim@\the\CT@LCnum}\relax + \advance\CT@dim-\@tempdimb + \expandafter\ifx\csname LColor@\the\CT@LCnum\endcsname\@empty\else + \begingroup + \@nameuse{LColor@\the\CT@LCnum}{% + \vrule width\CT@dim}% + \endgroup + \kern-\CT@dim + \fi + \fi} +\def\LC{\@tempdima=\z@\@tempdimb=\z@\LC@Cell} +\def\LCi{\LCi@\LC@Cell} +\def\LCi@{% + \@tempdima=\doublerulesep + \ifnum\CT@LCflag=\z@ + \ifnum\CT@LCnum=\CT@LCmax\relax + \@tempdimb=\arrayrulewidth + \else + \@tempdimb=\z@ + \fi + \fi} +\def\LCii{% + \@tempdima=\z@ + \@tempdimb=\doublerulesep + \advance\@tempdimb=\arrayrulewidth + \LC@Cell} +\def\LCiii{% + \LCi@ + \advance\@tempdimb\doublerulesep + \advance\@tempdimb\arrayrulewidth + \LC@Cell} +\def\LCz#1#2{% + \@tempdima=#1 + \@tempdimb=#2 + \LC@Cell} +% +\catcode`\@=\TheAtCode\relax +\endinput +%% END colortab.tex/colortab.sty |