Wiris

Documentation

  • Demos
  • Visit our website
  • Contact us
  • MathType

    • WirisQuizzes

      • LearningLemur

        • CalcMe

          • MathPlayer

            • Store FAQ

              • VPAT for the electronic documentation

                • MathFlow

                  • BF FAQ

                    • Miscellaneous

                      • Wiris Integrations

                        • Home
                        • MathPlayer
                        • MathML 3 linebreaking and indentation examples
                        • MathML 3 linebreaking and indentation examples

                        Controlling indentation

                        Reading time: 4min

                        In the above examples, the indentation is still done automatically. If we want the indentation to be at the first term so that all of the operators align regardless of whether we have automatic or manual line breaks, we can do so by adding an id attribute value to the first operator that we want all subsequent lines to align to, and then setting indentalign to be id and the indenttarget to be that id as follows:

                        <div><tt><math xmlns='http://www.w3.org/1998/Math/MathML'<br></br>      maxwidth='200px' linebreakmultchar='×' linebreakstyle='before'<br></br>      <span>indentalign='id' indenttarget='firstOperator'</span>><br></br>  <mrow><br></br>    <mrow><br></br>      <mo>(</mo><br></br>      <mrow><br></br>        <msup><br></br>          <mi>x</mi><br></br>          <mn>4</mn><br></br>        </msup><br></br>        <mo<span>id='firstOperator'</span>>-</mo><br></br>        …<br></br></math></tt></div>

                        This gives the following result:

                        It is often sufficient to inherit the indentation target, but not where there are multiple indentation levels; in those cases, it is necessary to either wrap a mstyle around the other parts or explicitly set the indentation target on potential break points. The later technique is a good one when a linebreak is forced. Here's an example where we align both the equals sign and the left parentheses:

                        <math xmlns='http://www.w3.org/1998/Math/MathML'
                              maxwidth='300px' linebreakmultchar='×' linebreakstyle='before'>
                         <mrow>
                          <msup>
                           <mrow>
                            <mo>(</mo>
                            <mrow>
                             <msup> <mi>x</mi> <mn>2</mn> </msup>
                             <mo>-</mo>
                             <msup> <mi>y</mi> <mn>2</mn> </msup>
                            </mrow>
                            <mo>)</mo>
                           </mrow>
                           <mn>4</mn>
                          </msup>
                          <mo id='equals'>=</mo>
                          <mrow>
                           <msup>
                            <mrow>
                             <mo>(</mo> <mrow> <mi>x</mi> <mo>-</mo> <mi>y</mi> </mrow> <mo>)</mo>
                            </mrow>
                            <mn>4</mn>
                           </msup>
                           <mo>&#x2062;</mo>
                           <msup>
                            <mrow>
                             <mo>(</mo> <mrow>  <mi>x</mi> <mo>+</mo> <mi>y</mi> </mrow> <mo>)</mo>
                            </mrow>
                            <mn>4</mn>
                           </msup>
                          </mrow>
                          <mo linebreak='newline' indentalign='id' indenttarget='equals'>=</mo>
                          <mrow>
                           <mrow>
                            <mo id='lparen'>(</mo>
                            <mrow>
                             <msup> <mi>x</mi> <mn>4</mn> </msup>
                             <mo>-</mo>
                             <mrow>
                              <mn>4</mn>
                              <mo>&#x2062;</mo>
                              <msup> <mi>x</mi> <mn>3</mn> </msup>
                              <mo>&#x2062;</mo>
                              <mi>y</mi>
                             </mrow>
                             <mo>+</mo>
                             <mrow>
                              <mn>6</mn>
                              <mo>&#x2062;</mo>
                              <msup> <mi>x</mi> <mn>2</mn> </msup>
                              <mo>&#x2062;</mo>
                              <msup> <mi>y</mi> <mn>2</mn> </msup>
                             </mrow>
                             <mo>-</mo>
                             <mrow>
                              <mn>4</mn>
                              <mo>&#x2062;</mo>
                              <mi>x</mi>
                              <mo>&#x2062;</mo>
                              <msup> <mi>y</mi> <mn>3</mn> </msup>
                             </mrow>
                             <mo>+</mo>
                             <msup> <mi>y</mi> <mn>4</mn> </msup>
                            </mrow>
                            <mo>)</mo>
                           </mrow>
                           <mo linebreak='newline' indentalign='id' indenttarget='lparen' linebreakstyle='after'>&#x2062;</mo>
                           <mrow>
                            <mo>(</mo>
                            <mrow>
                             <msup> <mi>x</mi> <mn>4</mn> </msup>
                             <mo>+</mo>
                             <mrow>
                              <mn>4</mn>
                              <mo>&#x2062;</mo>
                              <msup> <mi>x</mi>  <mn>3</mn> </msup>
                              <mo>&#x2062;</mo>
                              <mi>y</mi>
                             </mrow>
                             <mo>+</mo>
                             <mrow>
                              <mn>6</mn>
                              <mo>&#x2062;</mo>
                              <msup> <mi>x</mi> <mn>2</mn> </msup>
                              <mo>&#x2062;</mo>
                              <msup> <mi>y</mi> <mn>2</mn> </msup>
                             </mrow>
                             <mo>+</mo>
                             <mrow>
                              <mn>4</mn>
                              <mo>&#x2062;</mo>
                              <mi>x</mi>
                              <mo>&#x2062;</mo>
                              <msup> <mi>y</mi> <mn>3</mn> </msup>
                             </mrow>
                             <mo>+</mo>
                             <msup> <mi>y</mi> <mn>4</mn> </msup>
                            </mrow>
                            <mo>)</mo>
                           </mrow>
                          </mrow>
                         </mrow>
                        </math>

                        Was this article helpful?

                        Give feedback about this article

                        Related Articles

                        • Linebreaking and indentation
                        • Verbosity
                        • Automatic and manual linebreaks

                        Empowering STEM education

                        MathType

                        • Office Tools
                        • LMS
                        • XML
                        • HTML

                        WirisQuizzes

                        Learning Lemur

                        Integrations

                        Solutions

                        • Education
                        • Publishing houses – platforms and interactive
                        • Publishing houses – Print and digital
                        • Technical writers

                        Pricing

                        Downloads

                        Blog

                        • Success stories

                        About us

                        • Careers
                        • Partnership

                        Contact Us

                        Contact Sales

                        European union (European Regional Development Fund) and 1EdTech (TrustEd Apps Certified)
                        • Cookie Policy
                        • Terms of Use
                        • Privacy Policy / GDPR
                        • Student Data Privacy
                        • Compliance
                        • Cookie Settings

                        © Wiris 2026

                        Expand