表格的tex4ht转换(回忆录类问题)

表格的tex4ht转换(回忆录类问题)

我正在尝试使用 htlatex 将我的文档转换为 HTML。我的文档(超过 70 页)一切正常,直到我查看表格。生成的表格实际上不遵循任何类型的表格格式。

这是我重现该问题的最小示例:

\documentclass[12pt,letter]{memoir}
\begin{document}
\begin{center}
\begin{tabular}{| l | p{9cm} |}
\hline
\textbf{Column Name} & \textbf{Column Description} \\ \hline
Test line 1 & Insert text here (line 1)\\ \hline
Test line 2 & Insert text here (line 2)\\ \hline
Test line 3 & Insert text here (line 3) \\ \hline
\end{tabular}
\end{center}
\end{document}

在命令提示符中,我使用:

htlatex.exe MinimalTest.tex "html,3,info" "" "-dhtml" "--interaction=nonstopmode"

注意:如果我运行相同的命令而不使用“nonstopmode”,我会收到警告,提示 \halign 被翻译为线性文本,并出现错误,提示缺少一个数字,该数字将被视为零。我尝试搜索这两个错误,但没有找到有效的解决方案。

编辑:
我不敢相信我以前没有尝试过,但我更改了文档类类型,它正常工作了。但是,问题是我需要使用 memoir 来布局我的 PDF。有谁知道有什么解决方法可以让使用 memoir 的 HTML 生成正常工作吗?

答案1

问题是memoir重新定义了很多内部 latex 命令和环境。由于tex4ht还重新定义这些命令和环境,并使用钩子来放置html代码,因此这两个包发生冲突。最好的解决方案是为 创建memoir配置tex4ht,但这将是一项艰巨的任务。

目前的解决方案是在运行article时切换到类:tex4ht

\ifcsname HCode\endcsname%
\documentclass{article}
\else
\documentclass[12pt,letter]{memoir}
\fi
\begin{document}
\begin{center}
\begin{tabular}{| l | p{9cm} |}
\hline
\textbf{Column Name} & \textbf{Column Description} \\ \hline
Test line 1 & Insert text here (line 1)\\ \hline
Test line 2 & Insert text here (line 2)\\ \hline
Test line 3 & Insert text here (line 3) \\ \hline
\end{tabular}
\end{center}
\end{document}

我们检查\HCode由 定义的命令是否存在tex4ht

由于memoir定义了一些新命令,如果你在文档中使用了其中的一些命令,你还需要在这里为它们提供一些定义。例如:

\ifcsname HCode\endcsname%
\documentclass{article}
% If you need to add some xml structure, you can use xml tags right here
\newcommand\sample[1]{%
\leavevmode%
\Tg<strong>#1\Tg</strong>%
}
% But it should suffice to use only normal LaTeX commands
\newcommand\simple[1]{%
\textit{#1}
}
\else
\documentclass[12pt,letter]{memoir}
\fi
\begin{document}
\sample{Hello world} and \simple{hello world}
\end{document}

产生以下段落:

<!--l. 16--><p class="noindent" ><strong>Hello world</strong> and <span 
class="cmti-10">hello world</span>
</p>

请注意,这不是一个干净的解决方案,最好的选择是将这些命令收集到包中并创建packagename.4ht重新定义的文件tex4ht,但在更简单的文档的情况下,显示的解决方案应该足够了

相关内容