0

方程式とその使用法を示すMathMLスクリプトがあり、最大600PX幅が必要です。

<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>

また、600PXに収まらない場合は、行を「=」記号から新しい行に分割したくありません。また、右側にその壊れた部分が必要でしたありがとう

4

2 に答える 2

1

あなたが使うことができます

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

等号を優先ブレークポイントにし、2行目を右揃えにします。ただし、これが機能するかどうかは、使用しているMathMLレンダラーの機能によって異なります(すべてのレンダラーがMathML3の画期的な機能を実装しているわけではありません)。MathJaxで動作するはずですが、FirefoxのネイティブMathMLレンダリングでは動作しません。

ただし、数式のインデントはブロックレベルの数学にのみ適用されることに注意してください。つまり、右揃えを作成するにはを使用する必要があり<math display="block">ます。

またmax-width、ブロックレベルの要素にのみ適用されるため、には影響しないことに注意してください<span>。代わりにのようなものを使用する必要があります<div>

また、「x」ではなく「times」に適切な記号を使用する必要があります。例えば、

<mo>&#xD7;</mo>

それをする必要があります。これにより、間隔が正しくなり、乗算の適切なセマンティクスが得られます。

于 2012-04-07T14:16:09.730 に答える
0

インライン要素のmax-width場合、プロパティは無視されます。最大幅を適用するdisplay: blockには、要素を設定する必要がありspanます(または、より論理的には、divまたはpの代わりにを使用します)。span

等号の後でのみ改行を許可する場合は、追加のマークアップが必要です。次にwhite-space: nowrap、ブレークが許可されない要素に設定できます。または、後に改行を許可する文字が他にない場合は、ノーブレークスペースを使用できます。

MathMLを使用する場合は、数学表記も正しく取得する必要があると思います。具体的には、文字「x」は乗算記号ではなく、正しい記号「×」と「⋅」はそれらの周りにスペースが必要です。スペースを使用するときは、スペースが壊れているか壊れていないかを考慮する必要があるため、これはトピックに関連しています。

于 2012-04-07T14:14:46.823 に答える