为什么在 tex4ht 的 HTML 输出中,使用 unicode 编码与使用 iso-8859-1 编码相比,“ff”显示得很奇怪?

为什么在 tex4ht 的 HTML 输出中,使用 unicode 编码与使用 iso-8859-1 编码相比,“ff”显示得很奇怪?

我理解应该 (?) 使用 UNICODE 来编码 html。但是将它与 tex4ht 一起使用时,总是会使“ff”看起来很奇怪。为什么“ff”会出现这种情况?并且根据下面的测试,在使用 htlatex 从 Latex 生成 HTML 时,是否应该改用 iso-8859-1 编码,或者可能是我没有使用正确的选项组合?

鉴于这个乳胶文件

\documentclass{article}%
\begin{document}
\title{Kamke differential equations}
\maketitle
\end{document}

这里有 5 个不同的 htlatex 命令:3 个使用 utf8,一个不使用任何编码(默认),最后一个使用 iso-8859-1。iso 选项产生了最佳结果。这是在 Windows 上使用 Firefox 的结果。

在此处输入图片描述

参考

http://www.tug.org/applications/tex4ht/mn-commands.html

使用 texlive 2012 debian 编译 latex 文件。


更新

下图显示了使用下面提供的测试的结果。它显示了一个问题。

我已将包含所有输出和 HTML 文件的 zip 文件放在此文件夹中

http://12000.org/tmp/061613/

我正在使用 Firefox 20,Windows 7

在此处输入图片描述

答案1

至于“为什么”的问题,这里发生的情况是,在某些情况下,字母对“ff”被替换为“ffi”拉丁小写连字符 FF U+FB00,这在某种意义上是可以理解的,但随后事情就出错了。

在情况 3 和 4 中,该字符可能在 HTML 文档中写得正确,但所使用的字体不包含该字符,因此浏览器会从备用字体中选取一个字形。这可能取决于字体设置,但问题中并未披露。

在情况 2 中,字符被写为 UTF-8 编码,字节 0xEF 0xAC 0x80,但随后这些字节根据 windows-1252 进行解释,结果为“ff”。原因是字符编码声明不正确,或者根本没有声明,迫使浏览器进行猜测,而它们可能会猜错。

使用 U+FB00 是可以理解的,但值得怀疑。这些字符曾经是 HTML 文档中使用连字的唯一方式,但它们只有在所用字体包含它们时才有效。如今,您可以font-feature-settings在 CSS 中使用它们,尽管它们仍然得不到很好的支持(在字体和浏览器中),但它们是安全的,因为当它们失败时,例如“ff”会显示为“ff”,而不是以一种花哨的错误方式。

相关内容