Re: [MathML4] Deprecation/Removal of the mfenced element
"Miller, Bruce R (Fed)" <[email protected]> Tue, 26 Jul 2016 14:19:43 +0000
| Newsgroups | gmane.comp.web.mathematics |
|---|---|
| Message-ID | <CY1PR09MB0249C227E4044F603E2CAD90F40E0@CY1PR09MB0249.namprd09.prod.outlook.com> |
I really just meant that either of the grouping structures (bra-ket and mea= n value of an absolute value) could be represented with mrow. And that I w= ouldn't necessarily trust an author (or generator) to use the markup choice= s that you find most meaningful, or that it means what you'd want to assume= it is. They could also write -x! using mfenced. ________________________________________ From: Stephen Watt <[email protected]> Sent: Tuesday, July 26, 2016 8:49:04 AM To: Fr=E9d=E9ric WANG Cc: [email protected] Subject: Re: [MathML4] Deprecation/Removal of the mfenced element Sorry, no. I did not mean expanding to plain text. I meant the leaf elements would be tagged. So the example is <mrow> <mo>[</mo> <mi>a</mi> <mo>,</mo> <mi>b</mi> <mo>[</mo> <mi>f</mi> <mo>]</mo> <mi>d</mi> <mo>,</mo> <mi>e</mi> <mo>]</mo> </mrow> or "an mrow containing [a, b [ f ] d, e]" for easier discussion. I almost agree with you and David that if you put in all the mrows (by hand= or by code generation) then there is no information loss between an mfence= d and a 3 element mrow. We would have to require that syntactically paired operators be given as th= e first and last elements of a three element mrow. But do we ALWAYS want= three element mrows with first and last elements being operators to be tre= ated as mfenced is? What about [ x ) or [ + ] or, my personal favourite, = - x ! Secondly, can we really rely on all mathml to put in all the grouping mrow= s? We don't require it so I don't think we can count on it. We also have to allow for fence separators that stretch such as < x | Q | = y > or ( a | b ). In the <x | Q | y> example, we would want the bars to s= tretch in the quantum mechanical case, but not if we were talking about the= expected value of x times the absolute value of Q times y. So we would= have to have <mrow> \langle x | Q | y \rangle </mrow> vs <mrow> \langle <mrow> x <mrow> | Q |</mrow> y </mrow> \rangle </mrow> where \langle and \rangle mean the relevant unicode points and leaf tagging= is implied. What is the rule? An <mrow> with the first and last elements being operat= ors all middle operators taken as separators? This works for < x | Q | y= > but not for -x - y + 3! How would you handle these cases? Stephen On Tue, Jul 26, 2016 at 3:09 AM, Fr=E9d=E9ric WANG <[email protected]<mailt= o:[email protected]>> wrote: Le 26/07/2016 =E0 00:00, Stephen Watt a =E9crit : > I see your point, but have to say that I am not really satisfied with > the current spec language regarding equivalence. Mfenced can also > give information about grouping that is lost with the mrow > formulation, e.g. an mrow containining [a, b [ f ] d, e] may be a > list of three things or a pair of half open intervals with an f in the > middle. So the only thing you are saying is that expanding to plain text without explicit grouping implies loss of information compared to using mfenced. That's true, but that's not my point. If you really follow the expansion rules in MathML3 instead of using plain text then you see that nothing is lost in your example and that the mfenced element is again useless. Certainly, one can write <mo>+<mrow> without proper grouping as that's unfortunately often the case for markup generated from text representation like TeX or ASCII. But the existence of an mfenced element in MathML does not magically force converters or people to do this grouping.