使用Tex4Ht为中文文档生成html

使用Tex4Ht为中文文档生成html

我在 Ubuntu 11.10 上使用 TexLive 2011。例如:

\documentclass[UTF8]{ctexart}
\begin{document}
文章内容。
\end{document}

然后我运行htlatex test.tex把它转换成html,但是转换之后,在浏览器中显示不出中文字符。然后我查看了html源码,是这样的:

<body>
<!--l. 3--><p class="noindent" ><span 
class="unisong-65x-x-105"></span><span 
class="unisong7a-x-x-105"></span><span 
class="unisong-51x-x-105"></span><span 
class="unisong5b-x-x-105"></span><span 
class="unisong-30x-x-105"></span>
</body>

看起来它正在以一种最奇怪的方式转换字符。

那么我该如何配置它才能生成可读的中文?如果 tex4ht 无法做到这一点,我还应该研究哪些其他工具?

答案1

原因是tex4ht找不到htf字体文件,例如unisong51.htf等等。然而,tex4ht 附带utf8song*.htf文件%TEX4HT%/ht-fonts/unicode/cjk/utf8/,因此您可以创建这些文件的副本。(%TEX4HT%很可能%TEXMF%/tex4ht在您的系统上。)

这是我所做的。

  • 将每个副本创建utf8song*.htfunisong*.htf,并修改第一的最后的文件内容的unisong*相应行。
  • 就我而言,我还必须编辑%TEX4HT%/tex4ht/base/unix/tex4ht.env。 (或者win32如果你使用的是 Windows,则编辑 )。 将该文件中的所有 更改~/tex4ht.dir/texmf为我的树的实际路径TEXMF,尤其是标题 下的<unihtf>
  • 然后运行以下命令:

    htlatex test.tex "xhtml,charset=utf-8,NoFonts" " -cunihtf -utf8"

然后我就能够获得一个可读的中文网页。

相关内容