0

I have a MathML script which shows an equation and its usage, in which I want's a max of 600 PX width.

<span style="color: red;max-width: 600px;">
    <math>
    <mn>2</mn>
    <mfenced>
    <mrow><mi>l</mi><mi>b</mi><mo>+</mo><mi>b</mi><mi>h</mi><mo>+</mo><mi>h</mi><mi>l</mi></mrow>
    </mfenced>
    <mo>=</mo>
    <mn>2</mn><mo mathvariant="sans-serif">x</mo><mfenced>
    <mrow><mn>26</mn><mtext>cm</mtext><mo mathvariant="sans-serif">x</mo><mn>32</mn><mtext>cm</mtext><mo>+</mo><mn>28</mn><mtext>cm</mtext><mo mathvariant="sans-serif">x</mo><mn>58</mn><mtext>cm</mtext><mo>+</mo><mn>69</mn><mtext>cm</mtext><mo mathvariant="sans-serif">x</mo><mn>98</mn><mtext>cm</mtext></mrow>
    </mfenced>
    </math>
</span>

and i wan't to break the line into new line from the '=' sign if it not fits in 600PX. and also needed that broken piece at the right side thanx

4

2 回答 2

1

你可以使用

<mo linebreak="goodbreak" indentalign="right">=</mo>

使等号成为首选断点,第二行右对齐。但是这是否有效取决于您使用的 MathML 渲染器的功能(并非所有渲染器都实现了 MathML3 的换行功能)。它应该适用于 MathJax,但不适用于 Firefox 的原生 MathML 渲染。

但是请注意,公式缩进仅适用于块级数学;即,您需要使用<math display="block">才能进行右对齐。

另请注意,它max-width仅适用于块级元素,因此对<span>. 您将需要使用类似 a 的东西<div>

您还应该使用正确的符号来表示“times”而不是“x”。例如,

<mo>&#xD7;</mo>

应该这样做。这将获得正确的间距并为乘法提供正确的语义。

于 2012-04-07T14:16:09.730 回答
0

对于内联元素,该max-width属性将被忽略。您需要display: blockspan元素上设置(或者,更合乎逻辑地,使用divorp代替span)来强制执行最大宽度。

如果您希望仅在等号后允许换行,则需要额外的标记。然后,您可以设置white-space: nowrap不允许中断的任何元素。或者,如果没有其他字符允许在它们后面换行,您可以使用不间断空格。

我认为如果你使用 MathML,你也应该得到正确的数学符号;具体来说,字母“x”不是乘法符号,正确的符号“×”和“⋅”需要在它们周围加空格。这与该主题相关,因为当您使用空格时,您需要考虑它们是破坏性的还是非破坏性的。

于 2012-04-07T14:14:46.823 回答