tex4ht:如何创建固定宽度的表格列

tex4ht:如何创建固定宽度的表格列

我使用了 tex4ht。

我需要创建列宽固定的长表。但是指定的宽度被忽略了。

例子:

\documentclass[9pt,oneside,a4paper,english,notitlepage]{book}
\usepackage{longtable}
\usepackage{array}

\begin{document}
\begin{longtable}{|l|p{10cm}|m{5cm}} \\\hline
First & Second text cell with width of 10 cm& Third cell with width of 5 cm\\ \hline
\end{longtable}
\end{document}

在此处输入图片描述 出了什么问题?有人能帮助我吗?

答案1

您可以使用p-width命令行选项来保存列宽p

htlatex filename "xhtml,p-width" 

默认情况下不支持m列,但您可以使用此配置文件轻松添加对它们的支持my.cfg

\Preamble{xhtml,p-width}
\catcode`\:=11
\Configure{halignTD} {}{}
   {<}{\HCode{ style="white-space:nowrap; text-align:left;"}}
   {-}{\HCode{ style="white-space:nowrap; text-align:center;"}}
   {>}{\HCode{ style="white-space:nowrap; text-align:right;"}}
   {^}{\HCode{ style="vertical-align:top; white-space:nowrap;"}}
   {=}{\HCode{ style="vertical-align:baseline; white-space:nowrap;"}}
   {||}{\HCode{ style="vertical-align:middle; white-space:nowrap;"}}
   {_}{\HCode{ style="vertical-align:bottom; white-space:nowrap;"}}
   {p}{\HCode{ style="white-space:wrap; text-align:left;"}\Protect\a:HColWidth}
   {m}{\HCode{ style="white-space:wrap; text-align:left; vertical-align:middle;"}\Protect\a:HColWidth}
   {b}{\HCode{ style="white-space:wrap; text-align:left; vertical-align:baseline;"}}
   {}
\catcode`\:=12
\begin{document}

\EndPreamble

魔法就在 中\Protect\a:HColWidth。因为p-width选项已插入\Preamble命令中,所以您不再需要在命令行中指定它。使用以下方法进行编译

 htlatex filename my

结果:

在此处输入图片描述


旧答案,我错了

由于tex4ht重新定义了很多东西,我们似乎无法访问p列的尺寸。设置样式的唯一方法是使用自定义 .cfg 文件和 CSS 样式。您的示例创建了这样的HTML表:

<table id="TBL-1" class="longtable" 
cellspacing="0" cellpadding="0" rules="groups" 
><colgroup id="TBL-1-1g"><col 
id="TBL-1-1" /></colgroup><colgroup id="TBL-1-2g"><col 
id="TBL-1-2" /></colgroup><colgroup id="TBL-1-3g"><col 
id="TBL-1-3" /></colgroup>
...

元素很重要<col id="TBL-1-2" />,因为您可以使用它们来设置列的样式。 被id解释为TBL+ 表格数 + 列数。因此这是文档中第一个表格的第二列。现在,您可以使用此类.cfg文件(例如hello.cfg)轻松设置其样式:

\Preamble{xhtml}
\Css{\#TBL-1-2{width:10cm;}}
\Css{\#TBL-1-3{width:5cm;}}   
\begin{document}
\EndPreamble

使用命令进行编译:

htlatex filename hello

结果:

在此处输入图片描述

请注意,您应该在文档完成后设置表格样式,因为如果您在已经具有样式的其他表格之前添加新表格,则该样式将用于另一个表格!

相关内容