htlatex 中需要 MathML 和 LaTeX 转换

htlatex 中需要 MathML 和 LaTeX 转换

我要求所有display equations应该转换为MathML选项,并且一些内联方程式需要转换text mode格式。这两种类型的转换在htlatex? 中是可能的。例如,第一段下面的内容应该转换为text-mode格式(如 <i>a</i><sup>2</sup>)。

而第二段内容,无论何时superscriptsubscript需要转换成mathml格式。

并且所有显示方程式都需要转换为MathML格式。

\documentclass{book}
\usepackage{amsmath}
\begin{document}
This the sample paragraph text here. This should be convert to normal text mode option $a^2$.

This should be convert to MathML inline equation option $a^2_2$.

The below equation should be convert to MathML option.
\begin{equation}
\sum^2_{i=1} 
\end{equation}
\end{document}

答案1

不,这是不可能的,使用mathml选项时,所有数学命令都会被重新定义以生成mathml代码。理论上,您可以在内联数学环境中重新定义它们以生成代码html,但这会阻止mathml更复杂的表达式。

唯一的解决方案是使用自定义命令来处理简单的下标和上标。创建文件simplescript.sty

\newcommand\sisp[2]{\ensuremath{{#1}^{#2}}}
\newcommand\sisb[2]{\ensuremath{{#1}_{#2}}}
\endinput

simplescript.4ht

\renewcommand\sisb[2]{\HCode{<i>}#1\HCode{</i><sub>}#2\HCode{</sub>}}
\renewcommand\sisp[2]{\HCode{<i>}#1\HCode{</i><sup>}#2\HCode{</sup>}}

并修改您的源代码:

\documentclass{book}
\usepackage{simplescript}
\usepackage{amsmath}
\begin{document}
This the sample paragraph text here. This should be convert to normal text mode
option \sisp{a}{2} and \sisb{a}{2}.

This should be convert to MathML inline equation option $a^2_2$.

The below equation should be convert to MathML option.
\begin{equation}
\sum^2_{i=1} 
\end{equation}
\end{document}

结果如下:

<!--l. 5--><p class="noindent" >This the sample paragraph text here. This should be convert to normal text mode
option <i>a</i><sup>2</sup> and <i>a</i><sub>2</sub>.
</p><!--l. 8--><p class="indent" >   This should be convert to MathML inline equation option
<!--l. 8--><math 
 xmlns="http://www.w3.org/1998/Math/MathML"  
display="inline" ><msubsup><mrow 
><mi 
>a</mi></mrow><mrow 
><mn>2</mn></mrow><mrow 
><mn>2</mn></mrow></msubsup 
></math>.
</p><!--l. 10--><p class="indent" >   The below equation should be convert to MathML option. </p>

相关内容