[MathML3-last-call] add a notion of "natural" direction for operators to prevent weird stretching

In section 3.2.5.8 "Stretching of operators, fences and accents", it is 
written that an operator should be stretched in each possible direction:

"There is no provision in MathML for specifying in which direction 
(horizontal or vertical) to stretch a specific character or operator; 
rather, when stretchy="true" it should be stretched in each direction 
for which stretching is possible. It is up to the renderer to know in 
which directions it is able to stretch each character."

    Currently, it seems that the stretching directions that one would 
expect for an operator are only determined by the technical constraints 
imposed to the renderer. Nevertheless, this overlooks the fact that 
renderer could use techniques to make possible stretching in both 
direction, for any single character. For instance, some graphics library 
allow "scale transform" (as defined in chapter 7 of SVG rec) that can be 
used for this purpose. In that case, some weird stretching could happen 
such that a vertical arrows stretched horizontally.

    Hence I suggest to add a notion of "natural" direction that will be 
used when an operator needs to be stretched (with either a default or 
explicit stretchy=true). For instance the working draft already suggests 
"vertical" direction for most fences, "horizontal" direction for some 
accents, and both directions for diagonal arrows. Apart from the 
examples given in the working draft, it would of course be up to the 
renderer to determine what direction is "natural" for a given operator. 
For example, an integral symbol is likely to be defined as "naturally" 
vertical.

Received on Thursday, 24 September 2009 20:41:33 UTC