How to line break in MathML?
Asked Answered
C

4

11

I'm working on a website to solve some kind of exercises that has a programming function appearance, so I need to write multiple lines, but I dont know how to make it, as it displays everything in a single like, maybe some CSS would make it? Any help would be so apreciated, thanks in advance :)

Communicant answered 17/12, 2012 at 14:38 Comment(0)
I
8

To create such a linebreak, all you need is the following.

<mspace linebreak='newline' />

If you would rather provide hints to the rendering engine and let it break lines on its own, you can use the following values for the linebreak attribute:

Value       Description
nobreak     Forbid a line break at this location.
badbreak    Try to prevent a line break at this location.
goodbreak   Suggest a line break at this location.

Since linebreaks often occur at operators, MathML lets you use all of these attributes on the <mo> element, too. But, since you’re now breaking on a visible symbol, you’ll need the linebreakstyle attribute to specify whether the newline should be before the operator, after the operator, or if the operator should be duplicated and appear on both lines. Valid values are (respectively): before, after, and duplicate.

So, instead of using an <mspace/> as in the previous example, you could specify it directly on the last operator in the line:

<mo linebreak='newline' linebreakstyle='after'>+</mo>
Interrupted answered 19/4, 2016 at 6:38 Comment(0)
R
3

Both answers [1, 2] are correct. While MathML defines how line breaking works Firefox did not implemented it by now.

At the moment your best option is to use MathJax. So if you use MathJax to 'render' MathML the linebreaking should work. Check out the example [3] below to see how to configure MathJax to handle linebreaking.

<html>

<head>
  <script type="text/javascript" async src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js?config=TeX-MML-AM_CHTML">
  </script>
  <script type="text/x-mathjax-config">
    MathJax.Hub.Config({ CommonHTML: { linebreaks: { automatic: true } }, "HTML-CSS": { linebreaks: { automatic: true } }, SVG: { linebreaks: { automatic: true } } });
  </script>
</head>

<body>
  <math xmlns="http://www.w3.org/1998/Math/MathML" id="p1.1.m1.1" class="ltx_Math" alttext="{\displaystyle{\displaystyle{\displaystyle\HurwitzZeta@{s}{a}=\frac{1}{2}a^{-s%
}+\frac{a^{1-s}}{s-1}+\sum_{k=1}^{n}\frac{\EulerGamma@{s+2k-1}}{\EulerGamma@{s%
}}\frac{\BernoulliB{2k}}{(2k)!}a^{-2k-s+1}+\frac{1}{\EulerGamma@{s}}\int_{0}^{%
\infty}\left(\frac{1}{e^{x}-1}-\frac{1}{x}+\frac{1}{2}-\sum_{k=1}^{n}\frac{%
\BernoulliB{2k}}{(2k)!}x^{2k-1}\right)x^{s-1}e^{-ax}\diff{x}}}}">
  <semantics id="p1.1.m1.1a">
    <mrow id="p1.1.m1.1.40" xref="p1.1.m1.1.40.cmml">
      <mrow id="p1.1.m1.1.1.10.2" xref="p1.1.m1.1.1.1.cmml">
        <mpadded width="-1.7pt" id="p1.1.m1.1.1.2" xref="p1.1.m1.1.1.1.cmml">
          <mi id="p1.1.m1.1.1.2.1.2" xref="p1.1.m1.1.1.2.1.1.cmml">ζ</mi>
        </mpadded>
        <mo id="p1.1.m1.1.1.10.2a" xref="p1.1.m1.1.1.1.cmml">⁡</mo>
        <mrow id="p1.1.m1.1.1.10.2.1" xref="p1.1.m1.1.1.1.cmml">
          <mo id="p1.1.m1.1.1.5" xref="p1.1.m1.1.1.1.cmml">(</mo>
          <mi id="p1.1.m1.1.1.6" xref="p1.1.m1.1.1.6.cmml">s</mi>
          <mo id="p1.1.m1.1.1.7" xref="p1.1.m1.1.1.1.cmml">,</mo>
          <mi id="p1.1.m1.1.1.8" xref="p1.1.m1.1.1.8.cmml">a</mi>
          <mo id="p1.1.m1.1.1.9" xref="p1.1.m1.1.1.1.cmml">)</mo>
        </mrow>
      </mrow>
      <mo id="p1.1.m1.1.2" xref="p1.1.m1.1.2.cmml">=</mo>
      <mrow id="p1.1.m1.1.40.1" xref="p1.1.m1.1.40.1.cmml">
        <mrow id="p1.1.m1.1.40.1.1" xref="p1.1.m1.1.40.1.1.cmml">
          <mstyle displaystyle="true" id="p1.1.m1.1.3" xref="p1.1.m1.1.3.cmml">
            <mfrac id="p1.1.m1.1.3a" xref="p1.1.m1.1.3.cmml">
              <mn id="p1.1.m1.1.3.2" xref="p1.1.m1.1.3.2.cmml">1</mn>
              <mn id="p1.1.m1.1.3.3" xref="p1.1.m1.1.3.3.cmml">2</mn>
            </mfrac>
          </mstyle>
          <mo id="p1.1.m1.1.40.1.1.1" xref="p1.1.m1.1.40.1.1.1.cmml">⁢</mo>
          <msup id="p1.1.m1.1.40.1.1.2" xref="p1.1.m1.1.40.1.1.2.cmml">
            <mi id="p1.1.m1.1.4" xref="p1.1.m1.1.4.cmml">a</mi>
            <mrow id="p1.1.m1.1.5.1" xref="p1.1.m1.1.5.1.cmml">
              <mo id="p1.1.m1.1.5.1.1" xref="p1.1.m1.1.5.1.1.cmml">-</mo>
              <mi id="p1.1.m1.1.5.1.2" xref="p1.1.m1.1.5.1.2.cmml">s</mi>
            </mrow>
          </msup>
        </mrow>
        <mo id="p1.1.m1.1.6" xref="p1.1.m1.1.6.cmml">+</mo>
        <mstyle displaystyle="true" id="p1.1.m1.1.7" xref="p1.1.m1.1.7.cmml">
          <mfrac id="p1.1.m1.1.7a" xref="p1.1.m1.1.7.cmml">
            <msup id="p1.1.m1.1.7.2" xref="p1.1.m1.1.7.2.cmml">
              <mi id="p1.1.m1.1.7.2.1" xref="p1.1.m1.1.7.2.1.cmml">a</mi>
              <mrow id="p1.1.m1.1.7.2.2.1" xref="p1.1.m1.1.7.2.2.1.cmml">
                <mn id="p1.1.m1.1.7.2.2.1.1" xref="p1.1.m1.1.7.2.2.1.1.cmml">1</mn>
                <mo id="p1.1.m1.1.7.2.2.1.2" xref="p1.1.m1.1.7.2.2.1.2.cmml">-</mo>
                <mi id="p1.1.m1.1.7.2.2.1.3" xref="p1.1.m1.1.7.2.2.1.3.cmml">s</mi>
              </mrow>
            </msup>
            <mrow id="p1.1.m1.1.7.3" xref="p1.1.m1.1.7.3.cmml">
              <mi id="p1.1.m1.1.7.3.1" xref="p1.1.m1.1.7.3.1.cmml">s</mi>
              <mo id="p1.1.m1.1.7.3.2" xref="p1.1.m1.1.7.3.2.cmml">-</mo>
              <mn id="p1.1.m1.1.7.3.3" xref="p1.1.m1.1.7.3.3.cmml">1</mn>
            </mrow>
          </mfrac>
        </mstyle>
        <mo id="p1.1.m1.1.6a" xref="p1.1.m1.1.6.cmml">+</mo>
        <mrow id="p1.1.m1.1.40.1.2" xref="p1.1.m1.1.40.1.2.cmml">
          <mstyle displaystyle="true" id="p1.1.m1.1.40.1.2.1" xref="p1.1.m1.1.40.1.2.1.cmml">
            <munderover id="p1.1.m1.1.40.1.2.1a" xref="p1.1.m1.1.40.1.2.1.cmml">
              <mo largeop="true" movablelimits="false" symmetric="true" id="p1.1.m1.1.9" xref="p1.1.m1.1.9.cmml">∑</mo>
              <mrow id="p1.1.m1.1.10.1" xref="p1.1.m1.1.10.1.cmml">
                <mi id="p1.1.m1.1.10.1.1" xref="p1.1.m1.1.10.1.1.cmml">k</mi>
                <mo id="p1.1.m1.1.10.1.2" xref="p1.1.m1.1.10.1.2.cmml">=</mo>
                <mn id="p1.1.m1.1.10.1.3" xref="p1.1.m1.1.10.1.3.cmml">1</mn>
              </mrow>
              <mi id="p1.1.m1.1.11.1" xref="p1.1.m1.1.11.1.cmml">n</mi>
            </munderover>
          </mstyle>
          <mrow id="p1.1.m1.1.40.1.2.2" xref="p1.1.m1.1.40.1.2.2.cmml">
            <mstyle displaystyle="true" id="p1.1.m1.1.12" xref="p1.1.m1.1.12.cmml">
              <mfrac id="p1.1.m1.1.12a" xref="p1.1.m1.1.12.cmml">
                <mrow id="p1.1.m1.1.12.2.1.8.2" xref="p1.1.m1.1.12.2.1.1.cmml">
                  <mpadded width="-1.7pt" id="p1.1.m1.1.12.2.1.2" xref="p1.1.m1.1.12.2.1.1.cmml">
                    <mi mathvariant="normal" id="p1.1.m1.1.12.2.1.2.1.2" xref="p1.1.m1.1.12.2.1.2.1.1.cmml">Γ</mi>
                  </mpadded>
                  <mo id="p1.1.m1.1.12.2.1.8.2a" xref="p1.1.m1.1.12.2.1.1.cmml">⁡</mo>
                  <mrow id="p1.1.m1.1.12.2.1.8.2.1" xref="p1.1.m1.1.12.2.1.1.cmml">
                    <mo id="p1.1.m1.1.12.2.1.5" xref="p1.1.m1.1.12.2.1.1.cmml">(</mo>
                    <mrow id="p1.1.m1.1.12.2.1.6" xref="p1.1.m1.1.12.2.1.6.cmml">
                      <mrow id="p1.1.m1.1.12.2.1.6.7" xref="p1.1.m1.1.12.2.1.6.7.cmml">
                        <mi id="p1.1.m1.1.12.2.1.6.1" xref="p1.1.m1.1.12.2.1.6.1.cmml">s</mi>
                        <mo id="p1.1.m1.1.12.2.1.6.2" xref="p1.1.m1.1.12.2.1.6.2.cmml">+</mo>
                        <mrow id="p1.1.m1.1.12.2.1.6.7.1" xref="p1.1.m1.1.12.2.1.6.7.1.cmml">
                          <mn id="p1.1.m1.1.12.2.1.6.3" xref="p1.1.m1.1.12.2.1.6.3.cmml">2</mn>
                          <mo id="p1.1.m1.1.12.2.1.6.7.1.1" xref="p1.1.m1.1.12.2.1.6.7.1.1.cmml">⁢</mo>
                          <mi id="p1.1.m1.1.12.2.1.6.4" xref="p1.1.m1.1.12.2.1.6.4.cmml">k</mi>
                        </mrow>
                      </mrow>
                      <mo id="p1.1.m1.1.12.2.1.6.5" xref="p1.1.m1.1.12.2.1.6.5.cmml">-</mo>
                      <mn id="p1.1.m1.1.12.2.1.6.6" xref="p1.1.m1.1.12.2.1.6.6.cmml">1</mn>
                    </mrow>
                    <mo id="p1.1.m1.1.12.2.1.7" xref="p1.1.m1.1.12.2.1.1.cmml">)</mo>
                  </mrow>
                </mrow>
                <mrow id="p1.1.m1.1.12.3.1.8.2" xref="p1.1.m1.1.12.3.1.1.cmml">
                  <mpadded width="-1.7pt" id="p1.1.m1.1.12.3.1.2" xref="p1.1.m1.1.12.3.1.1.cmml">
                    <mi mathvariant="normal" id="p1.1.m1.1.12.3.1.2.1.2" xref="p1.1.m1.1.12.3.1.2.1.1.cmml">Γ</mi>
                  </mpadded>
                  <mo id="p1.1.m1.1.12.3.1.8.2a" xref="p1.1.m1.1.12.3.1.1.cmml">⁡</mo>
                  <mrow id="p1.1.m1.1.12.3.1.8.2.1" xref="p1.1.m1.1.12.3.1.1.cmml">
                    <mo id="p1.1.m1.1.12.3.1.5" xref="p1.1.m1.1.12.3.1.1.cmml">(</mo>
                    <mi id="p1.1.m1.1.12.3.1.6" xref="p1.1.m1.1.12.3.1.6.cmml">s</mi>
                    <mo id="p1.1.m1.1.12.3.1.7" xref="p1.1.m1.1.12.3.1.1.cmml">)</mo>
                  </mrow>
                </mrow>
              </mfrac>
            </mstyle>
            <mo id="p1.1.m1.1.40.1.2.2.1" xref="p1.1.m1.1.40.1.2.2.1.cmml">⁢</mo>
            <mstyle displaystyle="true" id="p1.1.m1.1.13" xref="p1.1.m1.1.13.cmml">
              <mfrac id="p1.1.m1.1.13a" xref="p1.1.m1.1.13.cmml">
                <msub id="p1.1.m1.1.13.2.1.5" xref="p1.1.m1.1.13.2.1.1.cmml">
                  <mi id="p1.1.m1.1.13.2.1.2" xref="p1.1.m1.1.13.2.1.1.1.cmml">B</mi>
                  <mrow id="p1.1.m1.1.13.2.1.3.1" xref="p1.1.m1.1.13.2.1.3.1.cmml">
                    <mn id="p1.1.m1.1.13.2.1.3.1.1.1" xref="p1.1.m1.1.13.2.1.3.1.1.1.cmml">2</mn>
                    <mo id="p1.1.m1.1.13.2.1.3.1.1.3" xref="p1.1.m1.1.13.2.1.3.1.1.3.cmml">⁢</mo>
                    <mi id="p1.1.m1.1.13.2.1.3.1.1.2" xref="p1.1.m1.1.13.2.1.3.1.1.2.cmml">k</mi>
                  </mrow>
                </msub>
                <mrow id="p1.1.m1.1.13.3" xref="p1.1.m1.1.13.3.cmml">
                  <mrow id="p1.1.m1.1.13.3.6" xref="p1.1.m1.1.13.3.6.2.cmml">
                    <mo stretchy="false" id="p1.1.m1.1.13.3.1" xref="p1.1.m1.1.13.3.6.2.cmml">(</mo>
                    <mrow id="p1.1.m1.1.13.3.6.2" xref="p1.1.m1.1.13.3.6.2.cmml">
                      <mn id="p1.1.m1.1.13.3.2" xref="p1.1.m1.1.13.3.2.cmml">2</mn>
                      <mo id="p1.1.m1.1.13.3.6.2.1" xref="p1.1.m1.1.13.3.6.2.1.cmml">⁢</mo>
                      <mi id="p1.1.m1.1.13.3.3" xref="p1.1.m1.1.13.3.3.cmml">k</mi>
                    </mrow>
                    <mo stretchy="false" id="p1.1.m1.1.13.3.4" xref="p1.1.m1.1.13.3.6.2.cmml">)</mo>
                  </mrow>
                  <mo lspace="0pt" rspace="3.5pt" id="p1.1.m1.1.13.3.5" xref="p1.1.m1.1.13.3.5.cmml">!</mo>
                </mrow>
              </mfrac>
            </mstyle>
            <mo id="p1.1.m1.1.40.1.2.2.1a" xref="p1.1.m1.1.40.1.2.2.1.cmml">⁢</mo>
            <msup id="p1.1.m1.1.40.1.2.2.2" xref="p1.1.m1.1.40.1.2.2.2.cmml">
              <mi id="p1.1.m1.1.14" xref="p1.1.m1.1.14.cmml">a</mi>
              <mrow id="p1.1.m1.1.15.1" xref="p1.1.m1.1.15.1.cmml">
                <mrow id="p1.1.m1.1.15.1.8" xref="p1.1.m1.1.15.1.8.cmml">
                  <mrow id="p1.1.m1.1.15.1.8.1" xref="p1.1.m1.1.15.1.8.1.cmml">
                    <mo id="p1.1.m1.1.15.1.1" xref="p1.1.m1.1.15.1.1.cmml">-</mo>
                    <mrow id="p1.1.m1.1.15.1.8.1.1" xref="p1.1.m1.1.15.1.8.1.1.cmml">
                      <mn id="p1.1.m1.1.15.1.2" xref="p1.1.m1.1.15.1.2.cmml">2</mn>
                      <mo id="p1.1.m1.1.15.1.8.1.1.1" xref="p1.1.m1.1.15.1.8.1.1.1.cmml">⁢</mo>
                      <mi id="p1.1.m1.1.15.1.3" xref="p1.1.m1.1.15.1.3.cmml">k</mi>
                    </mrow>
                  </mrow>
                  <mo id="p1.1.m1.1.15.1.4" xref="p1.1.m1.1.15.1.4.cmml">-</mo>
                  <mi id="p1.1.m1.1.15.1.5" xref="p1.1.m1.1.15.1.5.cmml">s</mi>
                </mrow>
                <mo id="p1.1.m1.1.15.1.6" xref="p1.1.m1.1.15.1.6.cmml">+</mo>
                <mn id="p1.1.m1.1.15.1.7" xref="p1.1.m1.1.15.1.7.cmml">1</mn>
              </mrow>
            </msup>
          </mrow>
        </mrow>
        <mo id="p1.1.m1.1.6b" xref="p1.1.m1.1.6.cmml">+</mo>
        <mrow id="p1.1.m1.1.40.1.3" xref="p1.1.m1.1.40.1.3.cmml">
          <mstyle displaystyle="true" id="p1.1.m1.1.17" xref="p1.1.m1.1.17.cmml">
            <mfrac id="p1.1.m1.1.17a" xref="p1.1.m1.1.17.cmml">
              <mn id="p1.1.m1.1.17.2" xref="p1.1.m1.1.17.2.cmml">1</mn>
              <mrow id="p1.1.m1.1.17.3.1.8.2" xref="p1.1.m1.1.17.3.1.1.cmml">
                <mpadded width="-1.7pt" id="p1.1.m1.1.17.3.1.2" xref="p1.1.m1.1.17.3.1.1.cmml">
                  <mi mathvariant="normal" id="p1.1.m1.1.17.3.1.2.1.2" xref="p1.1.m1.1.17.3.1.2.1.1.cmml">Γ</mi>
                </mpadded>
                <mo id="p1.1.m1.1.17.3.1.8.2a" xref="p1.1.m1.1.17.3.1.1.cmml">⁡</mo>
                <mrow id="p1.1.m1.1.17.3.1.8.2.1" xref="p1.1.m1.1.17.3.1.1.cmml">
                  <mo id="p1.1.m1.1.17.3.1.5" xref="p1.1.m1.1.17.3.1.1.cmml">(</mo>
                  <mi id="p1.1.m1.1.17.3.1.6" xref="p1.1.m1.1.17.3.1.6.cmml">s</mi>
                  <mo id="p1.1.m1.1.17.3.1.7" xref="p1.1.m1.1.17.3.1.1.cmml">)</mo>
                </mrow>
              </mrow>
            </mfrac>
          </mstyle>
          <mo id="p1.1.m1.1.40.1.3.1" xref="p1.1.m1.1.40.1.3.1.cmml">⁢</mo>
          <mrow id="p1.1.m1.1.40.1.3.2" xref="p1.1.m1.1.40.1.3.2.cmml">
            <mstyle displaystyle="true" id="p1.1.m1.1.40.1.3.2.1" xref="p1.1.m1.1.40.1.3.2.1.cmml">
              <msubsup id="p1.1.m1.1.40.1.3.2.1a" xref="p1.1.m1.1.40.1.3.2.1.cmml">
                <mo largeop="true" symmetric="true" id="p1.1.m1.1.18" xref="p1.1.m1.1.18.cmml">∫</mo>
                <mn id="p1.1.m1.1.19.1" xref="p1.1.m1.1.19.1.cmml">0</mn>
                <mi mathvariant="normal" id="p1.1.m1.1.20.1" xref="p1.1.m1.1.20.1.cmml">∞</mi>
              </msubsup>
            </mstyle>
            <mrow id="p1.1.m1.1.40.1.3.2.2" xref="p1.1.m1.1.40.1.3.2.2.cmml">
              <mrow id="p1.1.m1.1.40.1.3.2.2.2" xref="p1.1.m1.1.40.1.3.2.2.2.2.cmml">
                <mo id="p1.1.m1.1.21" xref="p1.1.m1.1.40.1.3.2.2.2.2.cmml">(</mo>
                <mrow id="p1.1.m1.1.40.1.3.2.2.2.2" xref="p1.1.m1.1.40.1.3.2.2.2.2.cmml">
                  <mrow id="p1.1.m1.1.40.1.3.2.2.2.2.1" xref="p1.1.m1.1.40.1.3.2.2.2.2.1.cmml">
                    <mrow id="p1.1.m1.1.40.1.3.2.2.2.2.1.1" xref="p1.1.m1.1.40.1.3.2.2.2.2.1.1.cmml">
                      <mstyle displaystyle="true" id="p1.1.m1.1.22" xref="p1.1.m1.1.22.cmml">
                        <mfrac id="p1.1.m1.1.22a" xref="p1.1.m1.1.22.cmml">
                          <mn id="p1.1.m1.1.22.2" xref="p1.1.m1.1.22.2.cmml">1</mn>
                          <mrow id="p1.1.m1.1.22.3" xref="p1.1.m1.1.22.3.cmml">
                            <msup id="p1.1.m1.1.22.3.5" xref="p1.1.m1.1.22.3.5.cmml">
                              <mi mathvariant="normal" id="p1.1.m1.1.22.3.1" xref="p1.1.m1.1.22.3.1.cmml">e</mi>
                              <mi id="p1.1.m1.1.22.3.2.1" xref="p1.1.m1.1.22.3.2.1.cmml">x</mi>
                            </msup>
                            <mo id="p1.1.m1.1.22.3.3" xref="p1.1.m1.1.22.3.3.cmml">-</mo>
                            <mn id="p1.1.m1.1.22.3.4" xref="p1.1.m1.1.22.3.4.cmml">1</mn>
                          </mrow>
                        </mfrac>
                      </mstyle>
                      <mo id="p1.1.m1.1.23" xref="p1.1.m1.1.23.cmml">-</mo>
                      <mstyle displaystyle="true" id="p1.1.m1.1.24" xref="p1.1.m1.1.24.cmml">
                        <mfrac id="p1.1.m1.1.24a" xref="p1.1.m1.1.24.cmml">
                          <mn id="p1.1.m1.1.24.2" xref="p1.1.m1.1.24.2.cmml">1</mn>
                          <mi id="p1.1.m1.1.24.3" xref="p1.1.m1.1.24.3.cmml">x</mi>
                        </mfrac>
                      </mstyle>
                    </mrow>
                    <mo id="p1.1.m1.1.25" xref="p1.1.m1.1.25.cmml">+</mo>
                    <mstyle displaystyle="true" id="p1.1.m1.1.26" xref="p1.1.m1.1.26.cmml">
                      <mfrac id="p1.1.m1.1.26a" xref="p1.1.m1.1.26.cmml">
                        <mn id="p1.1.m1.1.26.2" xref="p1.1.m1.1.26.2.cmml">1</mn>
                        <mn id="p1.1.m1.1.26.3" xref="p1.1.m1.1.26.3.cmml">2</mn>
                      </mfrac>
                    </mstyle>
                  </mrow>
                  <mo id="p1.1.m1.1.27" xref="p1.1.m1.1.27.cmml">-</mo>
                  <mrow id="p1.1.m1.1.40.1.3.2.2.2.2.2" xref="p1.1.m1.1.40.1.3.2.2.2.2.2.cmml">
                    <mstyle displaystyle="true" id="p1.1.m1.1.40.1.3.2.2.2.2.2.1" xref="p1.1.m1.1.40.1.3.2.2.2.2.2.1.cmml">
                      <munderover id="p1.1.m1.1.40.1.3.2.2.2.2.2.1a" xref="p1.1.m1.1.40.1.3.2.2.2.2.2.1.cmml">
                        <mo largeop="true" movablelimits="false" symmetric="true" id="p1.1.m1.1.28" xref="p1.1.m1.1.28.cmml">∑</mo>
                        <mrow id="p1.1.m1.1.29.1" xref="p1.1.m1.1.29.1.cmml">
                          <mi id="p1.1.m1.1.29.1.1" xref="p1.1.m1.1.29.1.1.cmml">k</mi>
                          <mo id="p1.1.m1.1.29.1.2" xref="p1.1.m1.1.29.1.2.cmml">=</mo>
                          <mn id="p1.1.m1.1.29.1.3" xref="p1.1.m1.1.29.1.3.cmml">1</mn>
                        </mrow>
                        <mi id="p1.1.m1.1.30.1" xref="p1.1.m1.1.30.1.cmml">n</mi>
                      </munderover>
                    </mstyle>
                    <mrow id="p1.1.m1.1.40.1.3.2.2.2.2.2.2" xref="p1.1.m1.1.40.1.3.2.2.2.2.2.2.cmml">
                      <mstyle displaystyle="true" id="p1.1.m1.1.31" xref="p1.1.m1.1.31.cmml">
                        <mfrac id="p1.1.m1.1.31a" xref="p1.1.m1.1.31.cmml">
                          <msub id="p1.1.m1.1.31.2.1.5" xref="p1.1.m1.1.31.2.1.1.cmml">
                            <mi id="p1.1.m1.1.31.2.1.2" xref="p1.1.m1.1.31.2.1.1.1.cmml">B</mi>
                            <mrow id="p1.1.m1.1.31.2.1.3.1" xref="p1.1.m1.1.31.2.1.3.1.cmml">
                              <mn id="p1.1.m1.1.31.2.1.3.1.1.1" xref="p1.1.m1.1.31.2.1.3.1.1.1.cmml">2</mn>
                              <mo id="p1.1.m1.1.31.2.1.3.1.1.3" xref="p1.1.m1.1.31.2.1.3.1.1.3.cmml">⁢</mo>
                              <mi id="p1.1.m1.1.31.2.1.3.1.1.2" xref="p1.1.m1.1.31.2.1.3.1.1.2.cmml">k</mi>
                            </mrow>
                          </msub>
                          <mrow id="p1.1.m1.1.31.3" xref="p1.1.m1.1.31.3.cmml">
                            <mrow id="p1.1.m1.1.31.3.6" xref="p1.1.m1.1.31.3.6.2.cmml">
                              <mo stretchy="false" id="p1.1.m1.1.31.3.1" xref="p1.1.m1.1.31.3.6.2.cmml">(</mo>
                              <mrow id="p1.1.m1.1.31.3.6.2" xref="p1.1.m1.1.31.3.6.2.cmml">
                                <mn id="p1.1.m1.1.31.3.2" xref="p1.1.m1.1.31.3.2.cmml">2</mn>
                                <mo id="p1.1.m1.1.31.3.6.2.1" xref="p1.1.m1.1.31.3.6.2.1.cmml">⁢</mo>
                                <mi id="p1.1.m1.1.31.3.3" xref="p1.1.m1.1.31.3.3.cmml">k</mi>
                              </mrow>
                              <mo stretchy="false" id="p1.1.m1.1.31.3.4" xref="p1.1.m1.1.31.3.6.2.cmml">)</mo>
                            </mrow>
                            <mo lspace="0pt" rspace="3.5pt" id="p1.1.m1.1.31.3.5" xref="p1.1.m1.1.31.3.5.cmml">!</mo>
                          </mrow>
                        </mfrac>
                      </mstyle>
                      <mo id="p1.1.m1.1.40.1.3.2.2.2.2.2.2.1" xref="p1.1.m1.1.40.1.3.2.2.2.2.2.2.1.cmml">⁢</mo>
                      <msup id="p1.1.m1.1.40.1.3.2.2.2.2.2.2.2" xref="p1.1.m1.1.40.1.3.2.2.2.2.2.2.2.cmml">
                        <mi id="p1.1.m1.1.32" xref="p1.1.m1.1.32.cmml">x</mi>
                        <mrow id="p1.1.m1.1.33.1" xref="p1.1.m1.1.33.1.cmml">
                          <mrow id="p1.1.m1.1.33.1.5" xref="p1.1.m1.1.33.1.5.cmml">
                            <mn id="p1.1.m1.1.33.1.1" xref="p1.1.m1.1.33.1.1.cmml">2</mn>
                            <mo id="p1.1.m1.1.33.1.5.1" xref="p1.1.m1.1.33.1.5.1.cmml">⁢</mo>
                            <mi id="p1.1.m1.1.33.1.2" xref="p1.1.m1.1.33.1.2.cmml">k</mi>
                          </mrow>
                          <mo id="p1.1.m1.1.33.1.3" xref="p1.1.m1.1.33.1.3.cmml">-</mo>
                          <mn id="p1.1.m1.1.33.1.4" xref="p1.1.m1.1.33.1.4.cmml">1</mn>
                        </mrow>
                      </msup>
                    </mrow>
                  </mrow>
                </mrow>
                <mo id="p1.1.m1.1.34" xref="p1.1.m1.1.40.1.3.2.2.2.2.cmml">)</mo>
              </mrow>
              <mo id="p1.1.m1.1.40.1.3.2.2.1" xref="p1.1.m1.1.40.1.3.2.2.1.cmml">⁢</mo>
              <msup id="p1.1.m1.1.40.1.3.2.2.3" xref="p1.1.m1.1.40.1.3.2.2.3.cmml">
                <mi id="p1.1.m1.1.35" xref="p1.1.m1.1.35.cmml">x</mi>
                <mrow id="p1.1.m1.1.36.1" xref="p1.1.m1.1.36.1.cmml">
                  <mi id="p1.1.m1.1.36.1.1" xref="p1.1.m1.1.36.1.1.cmml">s</mi>
                  <mo id="p1.1.m1.1.36.1.2" xref="p1.1.m1.1.36.1.2.cmml">-</mo>
                  <mn id="p1.1.m1.1.36.1.3" xref="p1.1.m1.1.36.1.3.cmml">1</mn>
                </mrow>
              </msup>
              <mo id="p1.1.m1.1.40.1.3.2.2.1a" xref="p1.1.m1.1.40.1.3.2.2.1.cmml">⁢</mo>
              <msup id="p1.1.m1.1.40.1.3.2.2.4" xref="p1.1.m1.1.40.1.3.2.2.4.cmml">
                <mi mathvariant="normal" id="p1.1.m1.1.37" xref="p1.1.m1.1.37.cmml">e</mi>
                <mrow id="p1.1.m1.1.38.1" xref="p1.1.m1.1.38.1.cmml">
                  <mo id="p1.1.m1.1.38.1.1" xref="p1.1.m1.1.38.1.1.cmml">-</mo>
                  <mrow id="p1.1.m1.1.38.1.4" xref="p1.1.m1.1.38.1.4.cmml">
                    <mi id="p1.1.m1.1.38.1.2" xref="p1.1.m1.1.38.1.2.cmml">a</mi>
                    <mo id="p1.1.m1.1.38.1.4.1" xref="p1.1.m1.1.38.1.4.1.cmml">⁢</mo>
                    <mi id="p1.1.m1.1.38.1.3" xref="p1.1.m1.1.38.1.3.cmml">x</mi>
                  </mrow>
                </mrow>
              </msup>
              <mo id="p1.1.m1.1.40.1.3.2.2.1b" xref="p1.1.m1.1.40.1.3.2.2.1.cmml">⁢</mo>
              <mrow id="p1.1.m1.1.39.2" xref="p1.1.m1.1.39.1.cmml">
                <mo rspace="0.8pt" id="p1.1.m1.1.39.2.1" xref="p1.1.m1.1.39.1.1.cmml">d</mo>
                <mi id="p1.1.m1.1.39.2.2" xref="p1.1.m1.1.39.2.2.cmml">x</mi>
              </mrow>
            </mrow>
          </mrow>
        </mrow>
      </mrow>
    </mrow>
    <annotation encoding="application/x-tex" id="p1.1.m1.1c">{\displaystyle{\displaystyle{\displaystyle\HurwitzZeta@{s}{a}=\frac{1}{2}a^{-s%
}+\frac{a^{1-s}}{s-1}+\sum_{k=1}^{n}\frac{\EulerGamma@{s+2k-1}}{\EulerGamma@{s%
}}\frac{\BernoulliB{2k}}{(2k)!}a^{-2k-s+1}+\frac{1}{\EulerGamma@{s}}\int_{0}^{%
\infty}\left(\frac{1}{e^{x}-1}-\frac{1}{x}+\frac{1}{2}-\sum_{k=1}^{n}\frac{%
\BernoulliB{2k}}{(2k)!}x^{2k-1}\right)x^{s-1}e^{-ax}\diff{x}}}}</annotation>
  </semantics>
</math>
</body>

</html>

To implement line breaking in Firefox as well, the MathML association is currently searching for an individual to implement this feature.

Roderick answered 20/1, 2018 at 8:42 Comment(0)
D
2

https://bugzilla.mozilla.org/show_bug.cgi?id=534962 states that this still is work in progress for Firefox. Also see https://bugzilla.mozilla.org/show_bug.cgi?id=380266 for another thing that currently isn't implemented => There currently may be no way to add linebreaks other than using mtable tags in order to add hard linebreaks.

Dipterous answered 1/3, 2016 at 19:35 Comment(0)
S
2

Another option is flexbox.

You can to wrap each sub expression that you want stay unbroken in an mrow and use flexbox wrapping on the math element:

math {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  flex-wrap: wrap;
  row-gap: 10px;
}

div {
  border: 2px solid;
  padding: 20px; 
  width: 365px;
  resize: horizontal;
  overflow: auto;
}
<div>
  <math xmlns="http://www.w3.org/1998/Math/MathML">
      <mrow>
        <mo>(</mo><mfrac><mn>1</mn><mn>22</mn></mfrac><mo>)</mo>
        <mo>+</mo>
        <mo>(</mo><mfrac><mn>1</mn><mn>25</mn></mfrac><mo>)</mo>
        <mo>+</mo>
        <mo>(</mo><mfrac><mn>1</mn><mn>30</mn></mfrac><mo>)</mo>
        <mo>+</mo>
        <mo>(</mo><mfrac><mn>1</mn><mn>23</mn></mfrac><mo>)</mo>
        <mo>+</mo>
        <mo>(</mo><mfrac><mn>1</mn><mn>30</mn></mfrac><mo>)</mo>
    </mrow>
    <mrow>
        <mo>=</mo>
        <mn>0.196</mn>
    </mrow>
    <mrow>
        <mo>=</mo>
        <mo>(</mo> <mfrac><mn>1</mn><mn>5.1</mn></mfrac><mo>)</mo>
    </mrow>
  </math>
</div>

You can drag the corner of the wrapping div to see the wrapping of each mrow.

Safar answered 7/2 at 10:58 Comment(2)
FWIW, this doesn't appear to be working in Safari as of early March 2024.Inevitable
Yeah I can't get the <mspace linebreak='newline' /> approach to work in Safari 17.4 either.Morelos

© 2022 - 2024 — McMap. All rights reserved.