为什么 tex4ht 在 longtable 里面添加额外的框架?

为什么 tex4ht 在 longtable 里面添加额外的框架?

这仅与 tex4ht 相关。

tabular当 tex4ht位于单元格内部时,它会在周围添加额外的框架,longtable但当它单独存在时则不会。如何解决这个问题?

平均能量损失

\documentclass[11pt]{article}      
\usepackage{longtable}     
\begin{document}

When table inside long table, it adds extra frame

\begin{longtable}{|p{1.75in}p{1.75in}|}\hline
\begin{tabular}{p{1.75in}}
entry 1
\end{tabular}
&
\begin{tabular}{p{1.75in}}
entry 2
\end{tabular}
\\\hline
\end{longtable}

When table on its own, no extra frame shows up

\begin{tabular}{p{1.75in}}
entry 1
\end{tabular}        
\end{document}

PDF 输出正确

在此处输入图片描述

但是 html,在使用命令编译之后

 make4ht -ulm default -a debug  foo3.tex "htm,mathjax"

显示这个

在此处输入图片描述


longtable顺便说一句,这与在 tex4ht 中使用无关,即使在没有要求的情况下,tabular内部tabular也会将这些额外的框架添加到内部。MWE。在 HTML 中给出与上述类似的输出tabular

\documentclass[11pt]{article} 
\begin{document}

When table inside table also, it adds extra frame

\begin{tabular}{|p{1.75in}p{1.75in}|}\hline
\begin{tabular}{p{1.75in}}
entry 1
\end{tabular}
&
\begin{tabular}{p{1.75in}}
entry 2
\end{tabular}
\\\hline
\end{tabular}

When table on its own, no extra frame shows up

\begin{tabular}{p{1.75in}}
entry 1
\end{tabular}

\end{document}

似乎tex4ht 会从外部继承或使用框架设置table(如果有)。

使用 TL 2020

答案1

这是 CSS 问题。这是生成的 CSS 文件中的内容:

#TBL-1 colgroup{border-left: 1px solid black;border-right:1px solid black;}

它将边框设置为 id 表的左边框和右边框TBL-1。但由于 HTML 和 CSS 的工作方式,此声明也适用于此表的子表。

要修复此问题,您需要提供自定义 CSS。请注意,以一般方式执行此操作实际上是不可能的,因此您需要手动修复特定表格。

尝试这个.cfg 文件:

\Preamble{xhtml}
\Css{\#TBL-1 table colgroup{border:none;}}
\begin{document}
\EndPreamble

它禁用了 子表的边框TBL-1。您应该只在文档完成时添加此类修复,因为在配置的表之前插入的每个表都会更改 ID,您需要更改配置文件。

结果如下:

在此处输入图片描述

相关内容