diff --git a/spec.html b/spec.html index e838f2a..5f4c61b 100644 --- a/spec.html +++ b/spec.html @@ -1738,6 +1738,10 @@
<mo> element.
+
+ Let dir be the element's computed
+ direction.
+
Operators are laid out as follows:
c then fall back to the
layout algorithm of .
+ If it is not possible to get a glyph corresponding to
+ c given directionality dir, then
+ fall back to the layout algorithm of .
+ Otherwise, let g be the result of running
+ get a glyph corresponding to c
+ given directionality dir.
c in the inline direction
- with the
- first available font
- then fall back to the
+ g in the inline direction with the
+ first available font then fall back to the
layout algorithm of .
Tinline.
+ shape a stretchy glyph g to
+ inline dimension Tinline.
g
stretched to inline dimension
Tinline and
at position determined by the previous box metrics.
@@ -1796,10 +1804,8 @@ c in the block direction
- with the
- first available font
- then fall back to the
+ g in the block direction with the
+ first available font then fall back to the
layout algorithm of .
minsize and maxsize
be the [=embellished operator/minsize=] and [=embellished operator/maxsize=] properties on the
operator. Percentage values are interpreted relative
- to the height of the glyph for c.
+ to the height of g.
Let T =
Tascent +
Tdescent be the target size.
@@ -1920,7 +1926,7 @@ g
to block dimension
Tascent +
Tdescent.
@@ -1937,7 +1943,7 @@ g
stretched to block dimension
Tascent +
Tdescent
@@ -1961,25 +1967,63 @@
- Use the
- MathVariants
- table to try and find a glyph of height at least
- DisplayOperatorMinHeight.
- If none is found, fall back to the
- largest non-base glyph. If none is found, fall back to
- the layout algorithm of .
-
g in the block direction with the
+ first available font then fall back to the
+ layout algorithm of .
+ g
+ to block dimension
+ DisplayOperatorMinHeight.
+ The inline size of the math content is the width of
+ the stretchy glyph. The stretchy glyph is shifted
+ towards the line-under by a value Δ so that its
+ center aligns with the center of the target when
+ [=embellished operator/symmetric=]:
+ the ink ascent of the math content is
+ the ascent of the stretchy glyph − Δ
+ and the ink descent of the math content is
+ the descent of the stretchy glyph + Δ.
+ g
+ stretched to block dimension
+ DisplayOperatorMinHeight
+ and at position determined by the previous box metrics
+ shifted by Δ towards the line-over.
- The radical glyph is the glyph obtained for the
- character U+221A SQUARE ROOT.
+ Let dir be the computed direction
+ of the <msqrt> or <mroot> element.
+ The radical glyph is the glyph obtained as a result of running
+ get a glyph corresponding to the U+221A SQUARE ROOT character
+ given dir.
The radical gap is given by @@ -2856,8 +2903,8 @@
The box metrics of the radical glyph and painting of the surd are given by the algorithm to - shape a stretchy glyph to block dimension the - target size for the radical glyph. + shape a stretchy glyph to the + target size for the radical glyph in the block dimension.
+ The algorithm to get a glyph corresponding to a character c given a directionality dir
+ is the following:
+
g be the glyph corresponding to c
+ in the first available font.
+ If it is not possible to find such a glyph, then exit with failure.
+ dir is rtl:
+ g in the first available font,
+ then return it and exit with success. [[OPEN-FONT-FORMAT]]
+ c has the Bidi_Mirrored property [[BIDI]]:
+ c has a corresponding mirrored codepoint,
+ c', then return the glyph corresponding
+ to c' and exit with success.
+ If it is not possible to find such a glyph, then exit with failure.
+ g and exit with success.
+ dir is ltr.
+ g and exit with success.
+