tex4ht:UTF-8 HTML 源代码中撇号的 Unicode 表示

tex4ht:UTF-8 HTML 源代码中撇号的 Unicode 表示

如果我使用 tex4ht 编译 latex 文档(在 Tex Live 2016 / Windows 10 下)

htlatex "my_doc.tex" "xhtml,charset=utf-8,fn-in" " -cunihtf -utf8"

LaTeX 源代码中的撇号字符(U+2019 (') 或 U+0027 ('))在 HTML 源代码中呈现为 ,而’不仅仅是

是否有可能修复此问题,也许通过自定义配置?

提前致谢。

答案1

tex4ht使用特殊文件unicode.4hf,将转换后的文档中的某些字符转换为其他字符或实体。否则,当您使用选项时,XML它们将写为字符。utf8-utf8tex4ht

-c此文件由命令选项请求tex4ht,在您的情况下是unihtf。发行版中有多个版本unicode.4hf,它们的位置在文件中配置tex4ht.env

<unihtf>
i~/tex4ht.dir/texmf/tex4ht/ht-fonts/unicode/!
i~/tex4ht.dir/texmf/tex4ht/ht-fonts/ascii/!
i~/tex4ht.dir/texmf/tex4ht/ht-fonts/alias/!
</unihtf>

第一个找到的文件会被使用。你可以在命令行输出中找到哪一个:

tex4ht.c (2012-07-25-19:36 kpathsea)
tex4ht -utf8 
  -cunihtf 
  sample.dvi 
(/usr/local/texlive/2016/texmf-dist/tex4ht/base/unix/tex4ht.env)
(/usr/local/texlive/2016/texmf-dist/tex4ht/ht-fonts/unicode/html/charset/unicode.4hf)

当你打开此文件时,你可以在开头看到:

'&#x003C;' '' '&#x003C;' '' 
'&#x003E;' '' '&#x003E;' '' 
'&#x0022;' '' '&#x0022;' '' 
'&#x2019;' '' '&#x2019;' '' 
'&#x0026;' '' '&#x0026;' '' 

要查找的字符位于第一个字段中,并且必须是数字实体的形式xml。输出字符位于第三个字段中,它可以是任何字符串,在这种情况下,它与源中的实体相同。

因此,要在文档中输出撇号,请将 复制unicode.4hf到文档的目录中,然后删除该行

'&#x2019;' '' '&#x2019;' ''

示例输出:

<!--l. 7--><p class="noindent" >hello’ world’
</p>

相关内容