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