为什么不溢出=“换行”不能与MathML一起使用?

时间:2014-05-30 23:00:40

标签: line-breaks mathjax mathml

在下面的MathML案例中,我无法使用换行符。特别是,我希望在<mtext><mrow>元素内的<mtable>元素内部使用换行符。

但是,正如以下最小(非工作)示例所示,它不起作用(on JSFiddle):

HTML:

<script src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>

<div id="test">
    <math overflow="linebreak">
        <mtable>
            <mrow><mtext>Lorem ipusm lorem ipsum Lorem ipsum lorem ipsum Lorem ipsum lorem ipsum</mtext></mrow>
        </mtable>
    </math>
</div>

<div id="test">
    Lorem ipusm lorem ipsum Lorem ipsum lorem ipsum Lorem ipsum lorem ipsum
</div>

CSS:

#test{
    border: 2px solid black;
    width: 11em;
    padding: 1em;
}

如何让换行符正常工作,以便第一个<div>看起来像第二个<div>

1 个答案:

答案 0 :(得分:3)

通过MathJax配置控制MathJax线制动(有关详细信息,请参阅documentation)。 MathJax目前没有为overflow元素实现<math>属性(这是在待办事项列表中)。

即使打开了换行符,MathJax也只在元素之间中断,因此不会包装<mtext>元素的内容(这也在待办事项列表中)。 MathJax用于数学排版,而不是文本排版,因此在示例中将其用于包装段落超出了其范围。

请注意,您的MathML无效,因为<mrow>应为<mtr>,且<mtr>允许的唯一子项为<mtd>元素。因此,您需要将<mtext>括在<mtd>

最后,您的HTML也无效,因为ID只允许在HTML文件中显示一次,因此id="test"不应出现在两个单独的<div>元素中。对于这种情况,您应该使用类,而不是ID。