如何使MathJax响应并自动添加换行符?

时间:2015-07-28 11:45:27

标签: css mathjax

我已阅读MathJax文档以自动添加换行符,但似乎没有效果。

我不知道如何使MathJax响应。我的网站允许用户使用LaTeX编写,特别是数学公式。但是,在移动屏幕上,有时输出太宽,我需要以某种方式找到一种方法来调整它。

我不能要求我的用户仅将此功能用于简短公式。

错误输出的例子:

enter image description here

我根据文档做了什么(但不起作用):

MathJax.Hub.Config({
    tex2jax: {
         inlineMath: [['$','$'], ['\\(','\\)']]
    },
    "HTML-CSS": { 
         linebreaks: { automatic: true }
    },
    SVG: { 
         linebreaks: { automatic: true } 
    }
});

JS Fiddle的完整代码:https://jsfiddle.net/ao8cnquw/

1 个答案:

答案 0 :(得分:4)

这是此特定示例的预期行为。

MathJax的换行在MathML令牌元素中不起作用(此TeX示例将在内部转换为单个mtext元素)。计划对此进行支持,但文档对这两个事实都不太清楚。

你需要退出\ text来获取休息时间(或者在其中有$ ... $以便MathJax退出)。[实际上,请参阅下面的第二次更新]

请注意,换行具有其他更一般的限制,例如,任何类似于表的环境只能在单元格内断开。

对真正的响应方程式渲染也有研究,请参阅https://github.com/mathjax/MathJax-RespEq

更新。我之前忘了的东西。您的示例也是内联数学,MathJax仅在等式长于行时才会中断。实际上这是in the documentation。但是,正如我所写,因为它内部只有一个令牌元素,所以在你的例子中也不会发生这种情况。

另一个更新。实际上,还有一个特定于内容的问题。 MathML换行算法只允许在<mo><mspace>元素处发生中断,并且MathJax跟随此(因为,如上所述,它是MathML渲染器的核心)。因此,即使您的示例被修改为\text{Avec $590$ €, puis-je acheter 2 billets à $240$ € et un troisième billet à $50$ % de réduction ?}之类的内容,您仍然无法看到换行符。因此,对于这类内容,最好不要将所有内容都推到\text{}内(无论如何,最好是imho)。