Skip to content

msubsup issue

Volker Sorge edited this page Apr 22, 2015 · 9 revisions

Issue. Back to list of issues.

The Msubsup issue

Msubsup are broken up in the semantic tree into explicit subscripts and superscripts if advisable.

We will stick with alternative 2 and add a collapsed attribute. Example is now here:

<math>
  <msubsup type="subsup" role="latinletter" id="4" children="0,1,2" collapsed="(4 (3 0 1) 2)">
    <mi type="identifier" role="latinletter" id="0" parent="4">a</mi>
    <mi type="identifier" role="latinletter" id="1" parent="4">b</mi>
    <mi type="identifier" role="latinletter" id="2" parent="4">c</mi>
  </msubsup>
</math>

Still to do: Look into prime, etc.


Original MathML:

<math>
  <msubsup>
    <mi>a</mi>
    <mi>b</mi>
    <mi>c</mi>
  </msubsup>
</math>

Semantic Tree:

<stree>
  <superscript role="latinletter" id="4">
    <children>
      <subscript role="subsup" id="3">
        <children>
          <identifier role="latinletter" font="italic" id="0">a</identifier>
          <identifier role="latinletter" font="italic" id="1">b</identifier>
        </children>
      </subscript>
      <identifier role="latinletter" font="italic" id="2">c</identifier>
    </children>
  </superscript>
</stree>

Straightforward translation of the semantic tree into the MathML element, naturally ruins the msubsup element. Here's the semantically enriched MathML:

<math>
  <msubsup type="superscript" role="latinletter" id="4" children="3,2">
    <mrow type="subscript" role="subsup" id="3" children="0,1" parent="4">
      <mi type="identifier" role="latinletter" id="0" parent="3">a</mi>
      <mi type="identifier" role="latinletter" id="1" parent="3">b</mi>
    </mrow>
    <mi type="identifier" role="latinletter" id="2" parent="4">c</mi>
  </msubsup>
</math>

Alternative is this semantically enriched MathML:

<msubsup type="subsup" role="latinletter" id="4" children="0,1,2">
  <mi type="identifier" role="latinletter" id="0" parent="4">a</mi>
  <mi type="identifier" role="latinletter" id="1" parent="4">b</mi>
  <mi type="identifier" role="latinletter" id="2" parent="4">c</mi>
</msubsup>

Observe that this does not affect elements where msubsup has discernably been used as a layout element. See, for example the following sum expression:

<math>
  <msubsup>
    <mo></mo>
    <mi>b</mi>
    <mi>c</mi>
  </msubsup>
</math>

Semantic Tree:

<stree>
  <limboth role="sum" id="3">
    <children>
      <largeop role="sum" id="0"></largeop>
      <identifier role="latinletter" font="italic" id="1">b</identifier>
      <identifier role="latinletter" font="italic" id="2">c</identifier>
    </children>
  </limboth>
</stree>

Semantically enriched MathML:

<math>
  <msubsup type="limboth" role="sum" id="3" children="0,1,2">
    <mo type="largeop" role="sum" id="0" parent="3"></mo>
    <mi type="identifier" role="latinletter" id="1" parent="3">b</mi>
    <mi type="identifier" role="latinletter" id="2" parent="3">c</mi>
  </msubsup>
</math>
Clone this wiki locally