4.5 Tables and Arrays
\ConfigureEnv{table}
{\ifvmode \IgnorePar\fi \EndP
\HCode{<para role="table"><blockquote>}}
{\ifvmode \IgnorePar\fi \EndP
\HCode{</blockquote></para>}}
{}{}
-_-_-
4.5.1 Tabular and Array
\:CheckOption{debug-} \if:Option
\def\IgnoreDebug#1{}
\else
\def\IgnoreDebug#1{#1}
\fi
-_-_-
\Configure{tabular}
{\IgnorePar\EndP \halignTB{tabular}%
\HCode{<informaltable><tgroup cols="\ar:cnt">}%
<.tabular colspec width.>%
\HCode{<tbody>}}
{\HCode{</tbody></tgroup></informaltable>}\ShowPar}
{\HCode{<row>}}
{\HCode{</row>}}
{\HCode{<entry\Hnewline}\halignTD
\ifnum \HMultispan>1
\tmp:cnt=\HCol \advance\tmp:cnt by \HMultispan
\advance\tmp:cnt by -1
\HCode{ namest="c\HCol" \IgnoreDebug{nameend="c\the\tmp:cnt"}}\fi
\HCode{>}\par\ShowPar}
{\ifvmode\IgnorePar\fi \EndP \HCode{</entry>}} -_-_-
[test data]
\HAssign\tabularN=0
\Configure{halignTB<>}{tabular}{<>\HAlign}
\Configure{halignTB}
{\halignTBL}
{}
-_-_-
\Configure{halignTB}
{\ifmathml \HCode{<\:MT table }\fi \halignTBL}
{\ifmathml \HCode{>}\fi}
-_-_-
\Configure{halignTB}
{\ifmathml \HCode{<\:MT table }\fi \halignTBL}
{\ifmathml \HCode{>}\fi}
-_-_-
\tmp:cnt = 0
\loop
\ifnum \tmp:cnt < \ar:cnt
\advance\tmp:cnt by 1
{\HAssign\HCol=\tmp:cnt
\HCode{<colspec colname="c\HCol"
\expandafter\expandafter\expandafter\ifx
\HColWidth\relax\else
colwidth="\HColWidth"
\fi
/>}}%
\repeat
-_-_-
\Configure{halignTD} {}{}
{<}{\HCode{ align="left"}}
{-}{\HCode{ align="center"}}
{>}{\HCode{ align="right"}}
{^}{\HCode{ valign="top"}}
{=}{\HCode{ valign="middle"}}
{|}{\HCode{ valign="middle"}}
{_}{\HCode{ valign="bottom"}}
{p}{\HCode{ align="char"}}
{m}{\HCode{ align="left" valign="middle"}}
{b}{\HCode{ align="left" valign="middle"}}
{}
-_-_-
\Configure{halignTD} {}{}
{<}{\ifmathml \HCode{ \a:mathml columnalign="left"}\else
\HCode{ align="left" }\fi}
{-}{\ifmathml \HCode{ \a:mathml columnalign="center"}\else
\HCode{ align="center" }\fi}
{>}{\ifmathml \HCode{ \a:mathml columnalign="right"}\else
\HCode{ align="right" }\fi}
{^}{\ifmathml \HCode{ \a:mathml rowalign="top"}\else
\HCode{ valign="top" }\fi}
{=}{\ifmathml \HCode{ \a:mathml rowalign="baseline"}\else
\HCode{ valign="baseline" }\fi}
{|}{\ifmathml \HCode{ \a:mathml rowalign="center"}\else
\HCode{ valign="middle" }\fi}
{_}{\ifmathml \HCode{ \a:mathml rowalign="bottom"}\else
\HCode{ valign="bottom" }\fi}
{p}{\ifmathml \HCode{ \a:mathml columnalign="left"}\else
\HCode{ align="left"}\fi}
{}
-_-_-
\Configure{hline}{}
\Configure{//[]}{}
-_-_-
4.5.2 Horizontal Borders
\Configure{HBorder}
{<row\Hnewline role="hline">}
{<entry rowsep="1"></entry>}
{</row>}
{<row\Hnewline role="cline">}
{<entry rowsep="0"></entry>}
{<entry rowsep="1"></entry>}
{</row>}
{<row\Hnewline role="vspace">}
{<entry rowsep="1"\Hnewline></entry>}
{</row>}
\Configure{putHBorder}{\HCode{\HBorder}}
-_-_-
\def\:MM{\ifmathml \a:mathml m\fi}
\Configure{HBorder}
{<\ifmathml \a:mathml mtr class\else row role\fi ="hline">}
{\ifmathml <\a:mathml mtd><mo> \string&\#x0332; </mo></\a:mathml mtd>\else
<entry rowsep="1"></entry>\fi}
{</\ifmathml \a:mathml mtr\else row\fi>}
{<\ifmathml \a:mathml mtr class\else row role\fi ="cline">}
{\ifmathml <\a:mathml mtd></\a:mathml mtd>\else
<entry rowsep="0"></entry>\fi}
{\ifmathml<\a:mathml mtd><mo> \string&\#x0332; </mo></\a:mathml mtd>\else
<entry rowsep="1"></entry>\fi}
{</\ifmathml \a:mathml mtr\else row\fi>}
{<\ifmathml \a:mathml mtr class\else row role\fi ="vspace">}
{\ifmathml <\a:mathml mtd></\a:mathml mtd>\else
<entry rowsep="1"\Hnewline>\string&\#x00A0;</entry>\fi}
{</\ifmathml \a:mathml mtr\else row\fi>}
-_-_-
\Configure{xcline}{\ht:special{t4ht=<!--dirt-->}}
-_-_-
\let\VBorder=\empty \let\AllColMargins=\empty
\Configure{VBorder}
{\let\VBorder=\empty \let\AllColMargins=\empty
\global\let\GROUPS=\empty \HAssign\NewGroup = 0
\gHAdvance\Next:TableNo by 1 \global\let\TableNo=\Next:TableNo }
{\xdef\VBorder{\VBorder\ifnum \NewGroup> 0 </colgroup>\fi}
\HAssign\NewGroup = 0 \gdef\GROUPS{rules="groups"}}
{\Advance:\NewGroup by 1
\ifnum \NewGroup=1 \xdef\VBorder{\VBorder<colgroup
xml:id="TBL-\TableNo-\ar:cnt g">}\fi
\xdef\VBorder{\VBorder<col\Hnewline xml:id="TBL-\TableNo
-\ar:cnt"\xml:empty>}\xdef\AllColMargins{\AllColMargins1}}
{\xdef\AllColMargins{\AllColMargins 0}}
\HAssign\Next:TableNo=0 \global\let\TableNo=\Next:TableNo
-_-_-
\append:def\hline:s{\a:HBorder}%
\def\:tempb{\ifnum \tmp:cnt<\ar:cnt
\advance\tmp:cnt by 1 \append:def\hline:s{\b:HBorder}%
\expandafter\:tempb
\fi }%
\tmp:cnt=0 \:tempb
\append:def\hline:s{\c:HBorder}\global\let\hline:s=\hline:s
-_-_-
\append:def\vspc:s{\h:HBorder}%
\def\:tempb{\ifnum \tmp:cnt<\ar:cnt
\advance\tmp:cnt by 1 \append:def\vspc:s{\i:HBorder}%
\expandafter\:tempb
\fi }
\tmp:cnt0 \:tempb
\append:def\vspc:s{\j:HBorder}\global\let\vspc:s\vspc:s
-_-_-
4.5.3 Long Tables
\Configure{longtable}
{\IgnorePar\EndP
\HCode{<informaltable}\halignTB{longtable}%
\HCode{><tgroup cols="\ar:cnt"><tbody>}}
{\HCode{</tbody></tgroup></informaltable>}\ShowPar}
{\HCode{<row \Hnewline}\halignTR\HCode{>}}
{\r:HA}
{\HCode{<entry}%
\halignTD
\ifnum \HMultispan>1
\tmp:cnt=\HCol \advance\tmp:cnt by \HMultispan
\advance\tmp:cnt by -1
\HCode{ namest="c\HCol" \IgnoreDebug{nameend="c\the\tmp:cnt"}}\fi
\HCode{\Hnewline role="td}<.tabular td align.>%
\HCode{">}<.td save EndP.>%
<.start array par box.>\PushStack\Table:Stck\TableNo}
{\PopStack\Table:Stck\TableNo <.end array par box.>\d:HA}
\Configure{halignTB<>}{longtable}{\HCode{role="longtable"\Hnewline
}<>\HAlign}
\Configure{longtableparbox}{\IgnorePar\leavevmode\ShowPar\par} -_-_-
\def\r:HA{\HCode{</row>}}
\def\d:HA{\ifvmode \IgnorePar \fi \EndP\HCode{</entry>}<.td recall EndP.>} -_-_-
<!--l. \the\inputlineno-->%
-_-_-
4.5.4 Obey Lines and Alignments
\Configure{verb}{}{}
-_-_-
\Configure{obeylines}
{\ifvmode \IgnorePar \EndP
\HCode{<blockquote role="obeylines-v">}%
\gdef\ob:ln{blockquote}%
\else \HCode{<remark role="obeylines-h">}%
\gdef\ob:ln{remark}%
\fi
}
{\ht:special{t4ht=</\ob:ln>}\ShowPar} {\hbox{\HCode{<!--br /-->}}}
-_-_-
\ConfigureEnv{center}
{} {\ShowPar} {}{}
\Configure{centerline}
{\ifvmode \IgnorePar\fi\HCode{<!--centerline-->}}
{\HCode{<!--/centerline-->}}
\Configure{leftline}
{\ifvmode \IgnorePar\fi\HCode{<!--leftline-->}}
{\HCode{<!--/leftline-->}}
\Configure{rightline}
{\ifvmode \IgnorePar\fi\HCode{<!--rightline-->}}
{\HCode{<!--/rightline-->}}
-_-_-
4.5.5 multirow
\Configure{multirow}
{\HCode{<blockquote
role="multirow"><para role="\the\@tempcnta">}}
{\HCode{</para></blockquote>}}
-_-_-
4.5.6 multirow
\Configure{dcolumn}
{\HCode{<blockquote role="align-char"><para role="\Dpoint">}}
{\HCode{</para></blockquote>}}
-_-_-
4.5.7 colortbl.sty
\HAssign\Table:No=0
\HAssign\TableNo=0
\HAssign\Prev:Col=0
\HAssign\HRow=0
\Configure{@classz}
{\let\begin:current@color=\relax
\let\end:current@color=\relax }
{%
\ifx \CT@column@color\relax \else
\ifx \CT@column@color\empty \else{%
\def\CT@color{\@ifnextchar[\color:ii\color:i}%
\CT@column@color<.par del.>%
\edef\:temp{\noexpand\add:color
{background-color}{\:temp}{\ar:cnt}}\:temp
}\fi \fi
}
{\begin:current@color}
{\end:current@color}
\Configure{rowcolor}{\row:clr}
\def\row:clr#1{{%
% \HAdvance\HRow by 1
\add:color{background-color}{#1}{\HRow-}}}
\Configure{text-colortbl}
{\add:color{color}{\current@color}{\HRow-\HCol}}
\Configure{cell-colortbl}
{\add:color{background-color}{\current@color}{\HRow-\HCol}}
\def\add:color#1#2#3{%
\Configure{SetHColor}{\Css{ \#TBL-\TableNo-#3{ #1:\HColor }}}{#2}} -_-_-