我正在使用MathJax在svg中转换mathml。某些提供它的设备使用的SVG。
html内容
<!doctype html>
<html>
<head>
<meta charset='UTF-8'>
<style>
body {
font-size: 2em;
}
</style>
<script type="text/javascript"
src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
</script>
</head>
<body>
<math xmlns='http://www.w3.org/1998/Math/MathML'>
<mrow>
<mfrac><mn>1</mn><mn>2</mn></mfrac>
<msub><mi>m</mi><mn>1</mn></msub>
<msubsup>
<mi>u</mi>
<mn>1</mn>
<mn>2</mn>
</msubsup>
</mrow>
<mo>+</mo>
<mrow>
<mfrac><mn>1</mn><mn>2</mn></mfrac>
<msub><mi>m</mi><mn>2</mn></msub>
<msubsup>
<mi>u</mi>
<mn>2</mn>
<mn>2</mn>
</msubsup>
</mrow>
<mrow>
<mtext>
Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf
Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf
</metxt>
</mrow>
</math>
<div>
</body>
</html>
由于MathJax仅在单行中呈现单个mathml,因此在浏览器中我们可以使用滚动条来查看完整的mathml。 在我的情况下,设备无法显示滚动条,因此它减少了字体大小以显示在单行中。
我知道mathjax有一些我们可以控制它的配置。
MathJax.Hub.Config({
CommonHTML: { linebreaks: { automatic: true } },
"HTML-CSS": { linebreaks: { automatic: true } },
SVG: { linebreaks: { automatic: true } }
});
这对我不起作用。 我们如何才能使Mathml响应?
任何人都可以建议我如何打破长数学以适应容器宽度。
由于
答案 0 :(得分:1)
MathJax的换行算法是打破数学,而不是文本。因此它不会破坏<mtext>
元素中的行。 (MathJax不会在任何标记元素中破坏;它只会在<mo>
元素处打破数学,如果可以的话。)
从您的示例中不清楚<mtext>
中的长文本是如何被使用的(因为它只是假文本),但看起来文本可能是周围句子的一部分,而不是数学本身。如果是这样,你不应该把它作为数学的一部分,而是作为没有周围HTML的文本。