我需要一个定制的 mathml 编码。mml:
应该全局添加文本所有mathml
编码
当前编码:
<math display="block" class="equation"><mi>a</mi> <mo class="MathClass-bin">+</mo> <msubsup><mrow><mi>b</mi></mrow><mrow><mn>2</mn></mrow><mrow><mn>3</mn></mrow></msubsup></math>
当前编码应更改为
<mml:math display="block" class="equation"><mml:mi>a</mml:mi> <mml:mo class="MathClass-bin">+</mml:mo> <mml:msubsup><mml:mrow><mml:mi>b</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msubsup></mml:math>
梅威瑟:
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\begin{equation}
a+b_{2}^{3}
\end{equation}
\end{document}
我的CFG:
\Preamble{xhtml,mathml,NLM,charset=UTF-8,-xtpipes,NoFonts,no-DOCTYPE,refcaption}
\Configure{section}
{\HCode{<section>}} {\HCode{</section>}}
{\HCode{<title>}} {\HCode{</title>}}
\Configure{subsection}
{\HCode{<subsection>}} {\HCode{</subsection>}}
{\HCode{<title>}} {\HCode{</title>}}
\Configure{subsubsection}
{\HCode{<subsubsection>}} {\HCode{</subsubsection>}}
{\HCode{<title>}} {\HCode{</title>}}
\Configure{textit}{\HCode{<italic>}\NoFonts}{\HCode{</italic>}\EndNoFonts}
\Configure{textbf}{\HCode{<bold>}\NoFonts}{\HCode{</bold>}\EndNoFonts}
\Css{.textsuperscript{font-size:.7rem;}}
\Css{.textsubscript{font-size:.7rem;}}
\Configure{HtmlPar}
{\EndP\Tg<p>}
{\EndP\Tg<p>}
{\HCode{</p>\Hnewline}}
{\HCode{</p>\Hnewline}}
\begin{document}
\EndPreamble
如何获取自定义的 mathml 输出。如何配置 cfg 以获取此输出。请提供建议。
答案1
您可以xml
使用 为 mathml 元素设置前缀\Configure{mathml}{prefix}
。您还需要使用 属性在根元素中注册前缀xmlns
。完整配置文件:
\Configure{ext}{xhtml}
\Preamble{xhtml,mathml,NLM,charset=UTF-8,-xtpipes,NoFonts,refcaption,ext=.xhtml}
\Configure{mathml}{mml:}
\Configure{HTML}{\HCode{<html xmlns="http://www.w3.org/1999/xhtml"\Hnewline xmlns:mml="http://www.w3.org/1998/Math/MathML">}}
{\HCode{</html>}}
\Configure{MathClass}{0}{*}{<mml:mi\Hnewline>}{</mml:mi>}{}
\Configure{MathClass}{1}{*}{<mml:mo\Hnewline
mmlclass="MathClass-op">}{</mml:mo>}{}
\Configure{MathClass}{2}{*}{<mml:mo\Hnewline
mmlclass="MathClass-bin">}{</mml:mo>}{}
\Configure{MathClass}{3}{*}{<mml:mo\Hnewline
mmlclass="MathClass-rel">}{</mml:mo>}{}
\Configure{MathClass}{4}{*}{<mml:mrow
><mml:mo\Hnewline
mmlclass="MathClass-open">}
{</mml:mo><mml:mrow>}{}
\Configure{MathClass}{5}{*}{</mml:mrow><mml:mo\Hnewline
mmlclass="MathClass-close">}
{</mml:mo></mml:mrow>}{}
\Configure{MathClass}{6}{*}{<mml:mo\Hnewline
mmlclass="MathClass-punc">}{</mml:mo>}{}
\Configure{MathClass}{7}{*}{<mml:mn>}{</mml:mn>}
{0123456789}
% \Configure{MathClass}{2}{*}{<mml:mo\Hnewline>}{</mml:mo>}{}
% \Configure{MathClass}{3}{*}{<mml:mn\Hnewline>}{</mml:mn>}{}
\Configure{section}
{\HCode{<section>}} {\HCode{</section>}}
{\HCode{<title>}} {\HCode{</title>}}
\Configure{subsection}
{\HCode{<subsection>}} {\HCode{</subsection>}}
{\HCode{<title>}} {\HCode{</title>}}
\Configure{subsubsection}
{\HCode{<subsubsection>}} {\HCode{</subsubsection>}}
{\HCode{<title>}} {\HCode{</title>}}
\Configure{textit}{\HCode{<italic>}\NoFonts}{\HCode{</italic>}\EndNoFonts}
\Configure{textbf}{\HCode{<bold>}\NoFonts}{\HCode{</bold>}\EndNoFonts}
\Css{.textsuperscript{font-size:.7rem;}}
\Css{.textsubscript{font-size:.7rem;}}
\Configure{HtmlPar}
{\EndP\Tg<p>}
{\EndP\Tg<p>}
{\HCode{</p>\Hnewline}}
{\HCode{</p>\Hnewline}}
\begin{document}
\EndPreamble
重要的行是
\Configure{mathml}{mml:}
\Configure{HTML}{\HCode{<html xmlns="http://www.w3.org/1999/xhtml"\Hnewline xmlns:mml="http://www.w3.org/1998/Math/MathML">}}
{\HCode{</html>}}
由于某种原因,Firefox 无法正确显示带.html
扩展名的文件,但可以显示带扩展名的文件.xhtml
。我们可以使用以下方法进行更改:
\Configure{ext}{xhtml}
这必须在\Preamble
命令之前发生。
结果:
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0//EN"
"http://www.w3.org/Math/DTD/mathml2/xhtml-math11-f.dtd" >
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:mml="http://www.w3.org/1998/Math/MathML"><head> <title></title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="TeX4ht (http://www.tug.org/tex4ht/)" />
<meta name="originator" content="TeX4ht (http://www.tug.org/tex4ht/)" />
<!-- charset=utf-8,html,xhtml,mathml,NLM,charset=UTF-8,-xtpipes,NoFonts,refcaption,ext=.xhtml -->
<meta name="src" content="sample.tex" />
<meta name="date" content="2015-09-29 19:47:00" />
<link rel="stylesheet" type="text/css" href="sample.css" />
</head><body
>
<table class="equation"><tr><td> <a
id="x1-2r1"></a>
<!--l. 6--><mml:math
xmlns="http://www.w3.org/1998/Math/MathML"
display="block" mml:class="equation">
<mml:mi
>a</mml:mi> <mml:mo
mmlclass="MathClass-bin">+</mml:mo> <mml:msubsup><mml:mrow
><mml:mi
>b</mml:mi></mml:mrow><mml:mrow
><mml:mn>2</mml:mn></mml:mrow><mml:mrow
><mml:mn>3</mml:mn></mml:mrow></mml:msubsup
>
</mml:math></td><td class="eq-no">(1)</td></tr></table>
</body></html>
并在 Firefox 中呈现: