我使用 TeX4ht 和 MathJax 将 tex 转换为 HTML/MathML。我遇到的一个问题是,分隔符会根据行高进行缩放,即使高内容不在分隔符之间。例如,编译文档
\documentclass{article}
\begin{document}
\[
f(x) = \frac{\frac{x}{1}}{\frac{2}{3}}
\]
\end{document}
和
htlatex test "cf,mathjax"
产量
这里cf.cfg
只包含
\Preamble{html,mathml}
\begin{document}
\EndPreamble
我认为括号太大了。有没有什么办法可以控制缩放?
答案1
正如 David Carlisle 所说,这是 TeX4ht 中的一个错误。<mo>
括号内的元素应该设置该stretchy="false"
属性。我将在 TeX4ht 源中修复该问题。在 TeX Live 中添加此修复程序之前,您可以使用以下.cfg
文件:
\Preamble{xhtml,mathml,mathjax}
\catcode`\:=11
\Configure{MathClass}{4}{*}{<\a:mathml mo\Hnewline
\mml:class="MathClass-open" stretchy="false">}
{</\a:mathml mo>}{}
\Configure{MathClass}{5}{*}{<\a:mathml mo\Hnewline
\mml:class="MathClass-close" stretchy="false">}
{</\a:mathml mo>}{}
\catcode`\:=12
\begin{document}
\EndPreamble
顺便说一句,我建议使用make4ht
而不是htlatex
,因为它修复了一些 MathML 问题,这些问题在 TeX 端无法修复。因此,您可以使用以下方式编译文件:
make4ht -c cf.cfg test "mathml,mathjax"
结果如下: