1.10.9 Horizontal Borders

<..latex tabular..>+
 \Configure{hline}{\ifx \ar:cnt\:UnDef
    \else\o:noalign:{<.hline body for array/tabular.>}%
         \expandafter\ignoreEndTr
    \fi}
 \Configure{//[]}{\ifx \ar:cnt\:UnDef
    \else\o:noalign:{<.vspace body for array/tabular.>}\fi}
-_-_-

<..vspace body for array/tabular..>
 \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:cnt=0 \:tempb
 \append:def\vspc:s{\j:HBorder}\global\let\vspc:s=\vspc:s
-_-_-

<..hline body for array/tabular..>
 \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
-_-_-

<..latex tabular..>+
 \def\ignore:EndTr{\o:noalign:{\global\futurelet\:AfterHline}}
 \long\def\ifProperTr#1{%
    \ifx \:AfterHline\end
        #1\global\let\:AfterHline\endinput
    \else \ifx \:AfterHline\endinput \else #1\fi\fi}
 \def\ProperTrTrue{\global\let\:AfterHline=\relax}
-_-_-

<..latex tabular..>+
 \Configure{putHBorder}{\HCode{\HBorder}}
 \Configure{HBorder}
    {<.HBorder hline.>}
       {<.HBorder hline cell.>}
    {<.end HBorder hline.>}
    {<.HBorder cline.>}
       {<.HBorder cline p cell.>}
       {<.HBorder cline p-hr cell.>}
    {<.end HBorder cline.>}
    {<.HBorder vspace.>}
        {<.HBorder vspace td.>}
    {<.end HBorder vspace.>}
 \OOstyles {<.hline-p-hr style.>}
-_-_-

<..configure ooffice-mml latex..>+
 \Configure{HBorder}
    <.HBorder hline row.>%
    <.HBorder cline row.>%
    <.HBorder vspace row.>%
-_-_-

<..HBorder hline row..>
 {\ifmathml <\a:mathml mtr\Hnewline class="hline">
  \else     <.HBorder hline.>\fi}
 {\ifmathml <.mml mtd hline.>
    \else   <.HBorder hline cell.>\fi}
 {\ifmathml </\a:mathml mtr>
  \else     <.end HBorder hline.>\fi}
-_-_-

<..HBorder cline row..>
 {\ifmathml <\a:mathml mtr\Hnewline class="cline">
  \else <.HBorder cline.>\fi}
 {\ifmathml  <\a:mathml mtd></\a:mathml mtd>
  \else <.HBorder cline p cell.>\fi }
 {\ifmathml <.mml mtd hline.>
  \else <.HBorder cline p-hr cell.>\fi}
 {\ifmathml </\a:mathml mtr>
  \else <.end HBorder cline.>\fi}
-_-_-

<..HBorder vspace row..>
 {\ifmathml <\a:mathml mtr\Hnewline class="vspace"  style="font-size:\HBorderspace">
  \else     <.HBorder vspace.>\fi}
 {\ifmathml <\a:mathml mtd\Hnewline></\a:mathml mtd>
  \else     <.HBorder vspace td.>\fi}
 {\ifmathml </\a:mathml mtr>
  \else     <.end HBorder vspace.>\fi}
-_-_-

<..HBorder hline..>
 <table:table-row  \Hnewline table:style-name="hline-row">%
-_-_-

<..mml mtd hline..>
 <\a:mathml mtd><math:mo> \string&\#x0332; </math:mo></\a:mathml mtd>
-_-_-

<..HBorder hline cell..>
 <table:table-cell table:style-name="hline-cell"
                          table:value-type="string">%
           <text:p text:style-name="hline-p-hr"  />%
        </table:table-cell>\Hnewline
-_-_-

<..end HBorder hline..>
 </table:table-row>\Hnewline
-_-_-

<..HBorder cline..>
 <table:table-row  \Hnewline table:style-name="cline-row">\Hnewline
-_-_-

<..HBorder cline p cell..>
 <table:table-cell table:style-name="cline-cell">%
           <text:p text:style-name="cline-p"  />%
        </table:table-cell>\Hnewline
-_-_-

<..HBorder cline p-hr cell..>
 <table:table-cell table:style-name="cline-cell">%
           <text:p text:style-name="cline-p-hr"  />%
        </table:table-cell>\Hnewline
-_-_-

<..end HBorder cline..>
 </table:table-row>\Hnewline
-_-_-

<..HBorder vspace..>
 <tr\Hnewline class="vspace" style="font-size:\HBorderspace">%
-_-_-

<..HBorder vspace td..>
 <td\Hnewline>\string&nbsp;</td>%
-_-_-

<..end HBorder vspace..>
 </tr>%
-_-_-

<..hline-p-hr style..>
 <style:style style:name="hline-p-hr"
              style:family="paragraph">\Hnewline
  <style:paragraph-properties
       fo:padding="0.00001cm"
       fo:margin-top="0.00001cm"
       fo:margin-bottom="0.00001cm"
       fo:border-left="none"
       fo:border-right="none"
       fo:border-top="none"
       fo:line-height="<.hline resolution.>11cm"
       fo:border-bottom="<.hline resolution.>1cm solid \#000000"
    />\Hnewline
 </style:style>
-_-_-

<..hline-p-hr style..>+
 <style:style style:name="cline-p-hr"
              style:family="paragraph">\Hnewline
  <style:paragraph-properties
       fo:padding="0.00001cm"
       fo:margin-top="0.00001cm"
       fo:margin-bottom="0.00001cm"
       fo:border-left="none"
       fo:border-right="none"
       fo:border-top="none"
       fo:line-height="0.01cm"
       fo:border-bottom="<.hline resolution.>1cm solid \#000000"
    />\Hnewline
 </style:style>
 <style:style style:name="cline-p"
              style:family="paragraph">\Hnewline
  <style:paragraph-properties
       fo:margin="0.00001cm"
       fo:border="none"
       fo:line-height="0.001cm"
    />\Hnewline
 </style:style>
-_-_-
 > In addition, of course the formatting of borders for OOo tables doesn’t  
 > come out exactly the same as when entered in OOo itself, so that  
 > round-tripping won’t work,  
 
TeX4ht introduces the borders in segments: top, down, left,  
right. Moreover, the horizontal segments appear in separate cells. The  
segmentation is there to provide for special effects in LaTeX  
tables. I don’t know how to improve the outcome, short of trying to  
post process the output.

Multicolumn

<..latex tabular..>+
 \Configure{multicolumn}
    {\let\col:Css\empty
     \expandafter\let\csname col:Css0\endcsname\empty
     \expandafter\let\csname col:Css1\endcsname\empty
     \Configure{VBorder}
        {}
        {\edef\col:Css{\col:Css
                       \ifnum \ar:cnt=0 L\else R\fi }%
         \expandafter\edef\csname col:Css\ar:cnt\endcsname{%
                       fo:border-\ifnum \ar:cnt=0 left\else right\fi
                       ="0.01cm solid \#000000"
                      fo:padding-\ifnum \ar:cnt=0 left\else right\fi
                      ="0.17cm"  5pt 
             }%
        }{}{}%
    }
    {<.multicolumn sty.>}
    {<.multicolumn sty.>%
     \Configure{HtmlPar}
        {<.multicolumn par.>}
        {<.multicolumn par.>}
        {}{}%
    }
    {}
-_-_-

<..multicolumn par..>
 \Configure{HtmlPar}
    {\HCode{<text:line-break/><text:line-break/>}}
    {\HCode{<text:line-break/><text:line-break/>}}
    {}
    {}%
-_-_-

The above text:p doesn’t get into the code. Where the contributions comes from???

<..multicolumn sty..>
 \ifx \col:Css\empty \else
   \edef\col:Css{multicolumn-\col:Css 11\halignTD-\cell:style:name}%
   \expandafter\ifx \csname \col:Css\endcsname\relax
      \expandafter\xdef\csname \col:Css\endcsname{}%
      <.multicolumn oOOstyles.>%
   \fi
   \HCode{<text:span
      text:style-name="\col:Css"></text:span>}%
 \fi
-_-_-

<..multicolumn oOOstyles..>
 \OOstyles{%
    <style:style
        style:name="\col:Css"
        style:family="paragraph"
        style:parent-style-name="\cell:style:name">\Hnewline
      <style:paragraph-properties
        \csname col:Css0\endcsname
        \csname col:Css1\endcsname
       />\Hnewline
    </style:style>\Hnewline
 }%
-_-_-

 
 \OOstyles{%
   <style:style style:name="TBL-\TableNo-\HRow-\HCol"
                style:family="table-cell">\Hnewline
       <style:table-cell-properties
 %           style:vertical-align="bottom"
           \col:Css
       />\Hnewline
   </style:style>\Hnewline
 }