I think you have touched the tip of an iceberg with your observations here. Robert Miner and I had many discussions of problems like this. Presentation MathML’s domain of description tries to allow precise formatting via specific dimensions and font and character choices as well as logical description of math constructs. It always seemed to me to be playing with fire. Left up to me, I would have had MathML elements and attributes map to concepts in math’s visual grammar in order to allow the formatter to do a better job. Unfortunately, this places a large burden on the author to get it right, something that is a big problem for Content MathML.
Paul
(Tree1) :=
<mrow>
<mo>|</mo>
<mspace height="100px" depth="100px"/>
</mrow>
the | stretches to cover the height+depth of the mspace. That's the
vertical stretching rule for <mrow>:
http://www.w3.org/TR/MathML3/chapter3.html#id.3.2.5.8.2
But Tree1 is an mrow whose children is one embellished op <mo>|</mo> and
a space-like element <mspace/>. Thus it is itself an embellished op:
http://www.w3.org/TR/MathML3/chapter3.html#id.3.2.5.7.3
Now in
(Tree2) :=
<math>
<mrow>
(Tree 1)
<mspace height="50px" depth="50px"/>
</mrow>
</math>
the same vertical stretching rule applies: the core of the embellished
operator (Tree 1) stretches to cover the height+depth of the mspace.
Hence there are two possibilities for stretching the <mo>|</mo> element:
one in Tree1 (height+depth=200px) and one in Tree2 (height+depth=100px).
Which one do we choose?
I'm thinking I have to choose the outermost possibility (100px) or
stretch to the maximum possible size (200px)?
How do other rendering agents implement it?
MathJax v2.0 beta: stretch to the maximum size of the mspace's
MathPlayer 3.0 beta 1: stretch to the size of the innermost mspace.
Firefox 10: stretch to the size of the outermost mspace. (probably like
MathPlayer in earlier versions when embellished op support was not
completely implemented)
--
Fr�d�ric Wang
maths-informatique-jeux.com/blog/frederic
mo element at its core, should stretch to cover
the width of the other direct sub-expressions in the given element..."mrow whose arguments consist (in any order)
of one embellished operator and zero or more space-like elements" rule.-- Frédéric Wang maths-informatique-jeux.com/blog/frederic