Configuration

<..@array configuration for MkHalign..>
 \ifx \recall:ar\:UnDef
    \pend:def\@array{\recall:ar}%
    \edef\recall:ar{%
       \noexpand\ifx \noexpand\EndPicture\noexpand\:UnDef \noexpand\else
          \arrayrulewidth=\the\arrayrulewidth
          \doublerulesep=\the\doublerulesep
          \arraycolsep=\the\arraycolsep
          \tabcolsep=\the\tabcolsep
       \noexpand\fi }%
 \fi
 \arrayrulewidth=\z@  \doublerulesep=\z@
 \arraycolsep=\z@     \tabcolsep=\z@
 \Configure{MkHalign}
    {\@array:a}%
    {\@array:b\ProperTrTrue}%
    {\a:putHBorder\InitHBorder
     <.cond eliminate pre cline tr.>%
     \ifProperTr{\@array:c}}%
    {\ifProperTr{\@array:d}%
     <.end cond eliminate pre cline tr.>%
     \a:putHBorder\InitHBorder}%
    {\ifProperTr{\@array:e}\RecallMkHalignConfig\recall:ar}%
    {\ifProperTr{\@array:f}}
 -_-_-

<..latex lttab..>+
 \def\ignoreEndTr{\expandafter
    \ifx \csname :AfterHline\endcsname\relax\else
       \expandafter\ignore:EndTr
    \fi}
 \def\ignore:EndTr{%
    \o:noalign:{\global\futurelet\:AfterHline}%
 }
 \long\def\ifProperTr#1{%
    \ifx \:AfterHline\end
        #1\global\let\:AfterHline\endinput  #1 is \@array:f
        \global\let\Needs:@array:d\@array:d
    \else \ifx \:AfterHline\endinput
        \ifx \Needs:@array:d\@array:d
           #1\global\let\Needs:@array:d\:UnDef
        \fi
        \global\let\:AfterHline\relax
    \else  #1%
    \fi\fi}
 \def\ProperTrTrue{\global\let\:AfterHline=\relax}
 \NewConfigure{putHBorder}{1}
 -_-_-

<..shared html latex array/tabular..>+
 \def\:temp{<.set hooks of array.>\o:array:}
 \HLet\array=\:temp
 \ifx \:@tabular:\:UnDef \let\:@tabular:=\empty \fi
 -_-_-

<..set hooks of array..>
 \let\@array:a=\a:array \let\@array:b=\b:array
 \let\@array:c=\c:array \let\@array:d=\d:array
 \let\@array:e=\e:array \let\@array:f=\f:array
 -_-_-

<..latex lttab..>+
 \def\:tempc{<.set hooks of tabular.>\o:tabular:}
 \HLet\tabular=\:tempc
 -_-_-

<..array/tabular of latex..>+
 \def\:tempc{%
    \leavevmode \hbox \bgroup \:@tabular:
    $\let\@acol\@tabacol  \let\@classz\@tabclassz
    \let\@classiv\@tabclassiv \let\\\@tabularcr
    \@tabarray}
 \HLet\@tabular=\:tempc
 -_-_-

<..set hooks of tabular..>
 \let\@array:a=\a:tabular \let\@array:b=\b:tabular
 \let\@array:c=\c:tabular \let\@array:d=\d:tabular
 \let\@array:e=\e:tabular \let\@array:f=\f:tabular
 -_-_-

The ‘\@tabular’ above to capture both ‘\begin{tabular}’ and ‘\begin{tabular*}’.

<..html latex array/tabular Config util..>
 \NewConfigure{array}{6}
 \NewConfigure{tabular}{6}
 \NewConfigure{VBorder}{4}
 \NewConfigure{HBorder}[9]{\c:def\a:HBorder{#1}%
    \c:def\b:HBorder{#2}\c:def\c:HBorder{#3}\c:def\d:HBorder{#4}%
    \c:def\e:HBorder{#5}\c:def\f:HBorder{#6}\c:def\g:HBorder{#7}%
    \c:def\h:HBorder{#8}\c:def\i:HBorder{#9}\c:HBRD}
 \def\c:HBRD#1{\c:def\j:HBorder{#1}}
 <.configuring @().>
 -_-_-

\@nextchar’ holds the contents of ‘@{...}

<..configuring @()..>
 \def\:temp{\@addtopreamble{\@nextchar
    \csname a:@{}\endcsname}}         \HLet\@tabclassiv=\:temp
 \def\:temp{\@addtopreamble{$\@nextchar
    $\csname a:@{}\endcsname}}        \HLet\@arrayclassiv=\:temp
 \NewConfigure{@{}}{1}
 \Configure{@{}}{}
 -_-_-