我尝试了一些代码,例如
\documentclass{amsart}
\begin{document}
Let's see $\widehat{\mathcal F}=\hat F=\bar F=\tilde F=\overline F$.
\end{document}
使用默认编译。只有 才能\overline
正确呈现。我查看了生成的 html 代码,在我看来,这些重音符号已被考虑在内(有一个代码<span class='accentwidehat'>...</span>
),但通常的浏览器不会考虑这一点。有什么解决方法吗?谢谢。
答案1
由于您针对的是 MathML 甚至 CSS 支持较差的电子书,我猜唯一通用的解决方法是使用图像来表示数学。尝试将pic-m
所有内联数学转换为图像的选项:
tex4ebook filename.tex "pic-m"
结果:
还有一些未记录的选项需要重音字符的图像:
tex4ebook filename.tex "new-accents,accent-,mathaccent-"
请注意,它甚至可能会要求文本中的重音字符带有图片,这可能是不受欢迎的。
编辑:
我从源中提取了图片重音的代码tex4ht
。它应该保持文本重音正常。尝试以下配置文件:
\Preamble{xhtml,new-accents}
\Configure{HAccent}\vec{}{\Picture+{}}{\EndPicture}
\Configure{HAccent}\widehat{}{\Picture+{}}{\EndPicture}
\Configure{HAccent}\bar{}{\Picture+{}}{\EndPicture}
\Configure{HAccent}\hat{AEIOUaeiou{}}{\Picture+{}}{\EndPicture}
\Configure{HAccent}\tilde{AOaoNn{}}{\Picture+{}}{\EndPicture}
\Configure{HAccent}\widetilde{}{\Picture+{}}{\EndPicture}
\begin{document}
\EndPreamble
编辑2:
new-accents
和之间似乎存在冲突babel
。在这种情况下,我们可以尝试重新定义重音命令以直接使用图片:
\RequirePackage{etoolbox}
\Preamble{xhtml}
\def\patchaccent#1{%
\csletcs{orig#1}{#1}
\expandafter\def\csname #1\endcsname##1{\Picture+{}\csname orig#1\endcsname{##1}\EndPicture}
}
\patchaccent{widehat}
\patchaccent{hat}
\patchaccent{bar}
\patchaccent{tilde}
\patchaccent{overline}
\begin{document}
\EndPreamble