66.17 colortbl.sty


Rows
Utilities

colortbl.sty invokes color.sty, if the last package is not loaded. The same is true for array.sty.

<..colortbl.4ht..>
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 % colortbl.4ht                          2014-07-12-22:36 %
 % Copyright (C) 1997--2009       Eitan M. Gurari         %
 <.TeX4ht copyright.>
 
    <.fix colortbl.>
    <.colortbl.sty shared config.>
 \Hinput{colortbl}
 \endinput
 -_-_-

<..fix colortbl..>
 \CT@everycr{\o:noalign:{\global\let\CT@row@color\relax}\the\everycr}
 -_-_-

<..fix colortbl..>+
 \def\columncolor#1{{\def\current@color{#1}%
                     \csname a:cell-colortbl\endcsname}}
 \Odef\columncolor[#1]#2{{\if :#1:\def\current@color{#2}%
                          \else
                             \Configure{tblcol:#1}{#2}%
                          \fi
                     \csname a:cell-colortbl\endcsname}%
    \futurelet\:temp\left:colcol}
 \def\left:colcol{%
    \ifx [\:temp \expandafter\left::colcol \fi
 }
 \def\left::colcol[#1]{
    \futurelet\:temp\right:colcol
 }
 \def\right:colcol{%
    \ifx [\:temp \expandafter\right::colcol \fi
 }
 \def\right::colcol[#1]{}
 \HAssign\tblcol:N = 0
 \NewConfigure{tblcol:gray}[1]{%
    \gHAdvance\tblcol:N by 1
    \def\:temp##1 ##2//{%
        \int:of\:tempa{255}{##1}%
        \Configure{HColor}{tblcol-\tblcol:N}{rgb(\:tempa,\:tempa,\:tempa)}%
    }\:temp #1 //%
    \def\current@color{tblcol-\tblcol:N}%
 }
 \NewConfigure{tblcol:rgb}[1]{%
    \gHAdvance\tblcol:N by 1
    \def\:temp##1 ##2 ##3 ##4//{%
        \int:of\:tempa{255}{##1}%
        \int:of\:tempb{255}{##2}%
        \int:of\:tempc{255}{##3}%
        \Configure{HColor}{tblcol-\tblcol:N}{rgb(\:tempa,\:tempb,\:tempc)}%
    }\:temp #1 //%
    \def\current@color{tblcol-\tblcol:N}%
 }
 \NewConfigure{tblcol:cmyk}[1]{%
    \gHAdvance\tblcol:N by 1
    \def\:temp##1 ##2 ##3 ##4 ##5//{%
       \int:of\:Cyan{255}{##1}%
       \int:of\:Magenta{255}{##2}%
       \int:of\:Yellow{255}{##3}%
       \int:of\:Black{255}{##4}%
       \:cmyk\:tempa\:Cyan
       \:cmyk\:tempb\:Magenta
       \:cmyk\:tempc\:Yellow
        \Configure{HColor}{tblcol-\tblcol:N}{rgb(\:tempa,\:tempb,\:tempc)}%
    }\:temp #1 //%
    \def\current@color{tblcol-\tblcol:N}%
 }
 -_-_-

The followning is a redefinition of a macro from array.sty

<..fix colortbl..>+
 \NewConfigure{@classz}{4}
 \pend:def\@classz{\pic:gobble\a:@classz}
 \append:def\@classz{\pic:gobble\b:@classz}
 \pend:def\insert@column{\pic:gobble\c:@classz}
 \append:def\insert@column{\pic:gobble\d:@classz}
 -_-_-

\insert@column’ is used only in array.

Used to have ‘\let\HRow|=\relax\let\HCol|=\relax’ in ‘\pend:def\@classz’, but that caused a problem in \multicol. Do we still need that protection in \@classz?

We take ‘\Configure{@classz} {before col}{after col} {before entry}{efter entry}’, where the last two need protection if their content is to expand when the item is reached. Otherwise, everything expands when the Preamble is visited.

The following is a reduced definition which removes the ruler used in painting the backrounds.

<..fix colortbl..>+
 \def\:temp{\global\let\CT@do@color=\relax}
 \HLet\CT@@do@color=\:temp
 -_-_-

The configuration:

<..fix colortbl..>+
 \let\::maketitle=\o:maketitle:
 \def\o:maketitle:{%
    \ifx \EndPicture\:UnDef
       \NewConfigure{@classz}{4}%
       \Configure{@classz}{}{}{}{}%
    \fi
    \::maketitle }
 -_-_-

Don’t \CT@setup, \CT@row@color, and \CT@do@color need also a treatment similar to \CT@column@color?