我正在尝试将 latex 文件渲染为 mathml 以便在 Firefox 中查看。但是,当尝试渲染以下示例时:
\documentclass{article}
\begin{document}
\(\displaystyle\sum\limits_i\)
\end{document}
到 mathml,既不能正确渲染,pandoc
也不能在 sigma 符号下正确ht4tex
渲染i
。我尝试了以下命令:
pandoc text.tex --mathml
和
htlatex test.tex "html,mathml"
但都没有产生期望的输出。
请注意,当我使用编译为 pdf 文件pdflatex
或使用带有--mathjax
选项的 pandoc 时,文件可以正确呈现,但我试图获取仅产生 mathml 的解决方案。
答案1
一般而言,在 中很难支持诸如 或 之类的切换命令\itshape
。\large
无法知道应该在哪里以可靠的方式关闭受影响的内容。使用 DVI 文件中的字体信息支持字体切换,但 中没有此类信息。\displaystyle
tex4ht
tex4ht
\displaystyle
最好使用明确标记受影响文本的命令,例如\textit
。为了便于使用,您需要定义一个自定义命令,然后可以通过该命令进行修补tex4ht
以插入正确的 MathML 元素。
我将按照以下方式重新定义您的 TeX 文件,引入以下\displaycontent
命令:
% https://tex.stackexchange.com/q/494579/2891
\documentclass{article}
\newcommand\displaycontent[1]{\displaystyle#1}
\begin{document}
\(\displaycontent{\sum\limits_i}\)
\end{document}
tex4ht
的配置myconfig.cfg
可能如下所示:
\Preamble{xhtml}
\renewcommand\displaycontent[1]{\HCode{<mstyle displaystyle="true">}#1\HCode{</mstyle>}}
\begin{document}
\EndPreamble
它只是重新定义了\displaycontent
包含封闭内容<mstyle displaystyle="true">
之前和之后的内容。</mstyle>
该文件可以使用以下方式编译
make4ht -c myconfig.cfg test.tex
这是生成的 MathML:
<math xmlns='http://www.w3.org/1998/Math/MathML' display='inline'><mrow><mstyle displaystyle='true'><munder class='msub'><mrow><mo class='MathClass-op'>∑</mo>
</mrow><mrow><mi>i</mi></mrow></munder></mstyle></mrow></math>
以下是 Firefox 的呈现方式: