haikuwebkit/LayoutTests/mathml/opentype/horizontal-munderover.html

52 lines
1.9 KiB
HTML
Raw Permalink Normal View History

MathML operators not stretched horizontally https://bugs.webkit.org/show_bug.cgi?id=72828 Reviewed by Chris Fleizach. Source/WebCore: This patch adds basic horizontal stretching rules for operators inside an <munder>, <mover> or <munderover> elements. The stretchy operators in such an element stretch to cover the size of the non-stretchy operators. This only works when fonts that have an OpenType MATH table are used. Tests: mathml/opentype/horizontal-LatinModern.html mathml/opentype/opentype-stretchy-horizontal.html mathml/opentype/horizontal-LatinModern-munderover.html * rendering/mathml/RenderMathMLOperator.cpp: (WebCore::MathMLOperatorDictionary::ExtractKeyHorizontal): We add an ordered list of operators that have horizontal stretch direction. (WebCore::RenderMathMLOperator::RenderMathMLOperator): init m_Vertical (WebCore::RenderMathMLOperator::SetOperatorProperties): set m_Vertical by checking whether the operator is in the horizontalOperators list. (WebCore::RenderMathMLOperator::stretchTo): We do not stretch vertically if the operator has horizontal direction. We also add a new version stretchTo(LayoutUnit width) for horizontal stretching only. (WebCore::RenderMathMLOperator::computePreferredLogicalWidths): Handle horizontal stretching: the maximumGlyphWidth is the maximum of the base size or of the stretch size. (WebCore::RenderMathMLOperator::getDisplayStyleLargeOperator): Add an ASSERT to ensure that this function is only called for vertical stretching. (WebCore::RenderMathMLOperator::findStretchyData): Add an ASSERT to ensure that this function is not called to get the maximum width of a horizontal stretchy operator. We take into account m_isVertical when calling getMathVariants or computing sizes. There is not any Unicode-only construction for horizontal stretching, so a MATH table is required for horizontal stretching. (WebCore::RenderMathMLOperator::updateStyle): Ignore some code paths specific to vertical stretching and take into account the m_Vertical parameters. For horizontal stretching, the m_stretch*Baseline parameters are now updated to match the metrics of the size variant or of the maximum of the parts in the glyph assembly. (WebCore::RenderMathMLOperator::computeLogicalHeight): logicalHeight is now explicitely the sum of m_stretchHeightAboveBaseline and m_stretchDepthBelowBaseline, since it can be different from the stretchSize() in horizontal stretching. (WebCore::RenderMathMLOperator::paintGlyph): handle trimming for horizontal stretching. (WebCore::RenderMathMLOperator::fillWithVerticalExtensionGlyph): rename the function and ensure it is only call for m_isVertical. (WebCore::RenderMathMLOperator::fillWithHorizontalExtensionGlyph): same as fillWithVerticalExtensionGlyph, but for horizontal stretching. (WebCore::RenderMathMLOperator::paint): For glyph assembly, choose between paintVerticalGlyphAssembly or paintHorizontalGlyphAssembly. (WebCore::RenderMathMLOperator::paintVerticalGlyphAssembly): rename the function and ensure it is only call for m_isVertical. (WebCore::RenderMathMLOperator::paintHorizontalGlyphAssembly): same as paintVerticalGlyphAssembly but for horizontal stretching. * rendering/mathml/RenderMathMLOperator.h: we add a m_isVertical member to indicate the stretch direction and a m_stretchWidth to indicate the width of the stretchy character. We define the horizontal counterparts of fillWith*ExtensionGlyph, paint*GlyphAssembly, GlyphPaintTrimming StretchyData. Finally stretchSize() takes into account the stretch direction. * rendering/mathml/RenderMathMLUnderOver.cpp: We override the layout() function to stretch munderover children horizontally. (WebCore::RenderMathMLUnderOver::layout): * rendering/mathml/RenderMathMLUnderOver.h: we declare layout(). LayoutTests: Add some tests to verify horizontal stretching with the MATH data. * mathml/opentype/horizontal-LatinModern-munderover.html: Added. * mathml/opentype/horizontal-LatinModern.html: Added. * mathml/opentype/opentype-stretchy-horizontal.html: Added. * platform/efl/TestExpectations: mark tests as failing. * platform/gtk/mathml/opentype/horizontal-LatinModern-expected.png: Added. * platform/gtk/mathml/opentype/horizontal-LatinModern-expected.txt: Added. * platform/gtk/mathml/opentype/horizontal-LatinModern-munderover-expected.png: Added. * platform/gtk/mathml/opentype/horizontal-LatinModern-munderover-expected.txt: Added. * platform/gtk/mathml/opentype/opentype-stretchy-horizontal-expected.png: Added. * platform/gtk/mathml/opentype/opentype-stretchy-horizontal-expected.txt: Added. * platform/mac/TestExpectations: mark tests as failing. * platform/win/TestExpectations: ditto. Canonical link: https://commits.webkit.org/151534@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@169607 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2014-06-05 06:35:04 +00:00
<!doctype html>
<html>
<head>
Remove latinmodern-math.woff from LayoutTests/mathml/opentype https://bugs.webkit.org/show_bug.cgi?id=134094 Reviewed by Martin Robinson. We remove latinmodern-math.woff from the source and make mathml/opentype/*LatinModern* tests not font-specific, so that each platform will use whatever OpenType MATH is available. Until bug 133604 is fixed and Latin Modern Math installed on the Linux bots, the tests are marked as failed. More generally, we need to fix bug 133603. The test mathml/opentype/roots-LatinModern is removed since it will duplicate mathml/presentation/roots.xhtml when OpenType MATH fonts are available. * mathml/opentype/LICENSE-LatinModern.txt: Removed. * mathml/opentype/horizontal-munderover.html: Renamed from LayoutTests/mathml/opentype/horizontal-LatinModern-munderover.html. * mathml/opentype/horizontal.html: Renamed from LayoutTests/mathml/opentype/horizontal-LatinModern.html. * mathml/opentype/large-operators-LatinModern.html: Removed. * mathml/opentype/large-operators.html: Added. * mathml/opentype/latinmodern-math.woff: Removed. * mathml/opentype/opentype-stretchy-horizontal.html: * mathml/opentype/roots-LatinModern.html: Removed. * mathml/opentype/vertical.html: Renamed from LayoutTests/mathml/opentype/vertical-LatinModern.html. * platform/efl/TestExpectations: * platform/efl/mathml/opentype/horizontal-expected.txt: Renamed from LayoutTests/platform/efl/mathml/opentype/horizontal-LatinModern-expected.txt. * platform/efl/mathml/opentype/horizontal-munderover-expected.txt: Renamed from LayoutTests/platform/efl/mathml/opentype/horizontal-LatinModern-munderover-expected.txt. * platform/efl/mathml/opentype/large-operators-expected.png: Renamed from LayoutTests/platform/gtk/mathml/opentype/large-operators-LatinModern-expected.png. * platform/efl/mathml/opentype/large-operators-expected.txt: Renamed from LayoutTests/platform/efl/mathml/opentype/large-operators-LatinModern-expected.txt. * platform/efl/mathml/opentype/roots-LatinModern-expected.txt: Removed. * platform/efl/mathml/opentype/vertical-expected.png: Renamed from LayoutTests/platform/gtk/mathml/opentype/vertical-LatinModern-expected.png. * platform/efl/mathml/opentype/vertical-expected.txt: Renamed from LayoutTests/platform/efl/mathml/opentype/vertical-LatinModern-expected.txt. * platform/gtk/TestExpectations: * platform/gtk/mathml/opentype/horizontal-expected.png: Renamed from LayoutTests/platform/gtk/mathml/opentype/horizontal-LatinModern-expected.png. * platform/gtk/mathml/opentype/horizontal-expected.txt: Renamed from LayoutTests/platform/gtk/mathml/opentype/horizontal-LatinModern-expected.txt. * platform/gtk/mathml/opentype/horizontal-munderover-expected.png: Renamed from LayoutTests/platform/gtk/mathml/opentype/horizontal-LatinModern-munderover-expected.png. * platform/gtk/mathml/opentype/horizontal-munderover-expected.txt: Renamed from LayoutTests/platform/gtk/mathml/opentype/horizontal-LatinModern-munderover-expected.txt. * platform/gtk/mathml/opentype/large-operators-expected.png: Renamed from LayoutTests/platform/efl/mathml/opentype/large-operators-LatinModern-expected.png. * platform/gtk/mathml/opentype/large-operators-expected.txt: Renamed from LayoutTests/platform/gtk/mathml/opentype/large-operators-LatinModern-expected.txt. * platform/gtk/mathml/opentype/roots-LatinModern-expected.png: Removed. * platform/gtk/mathml/opentype/roots-LatinModern-expected.txt: Removed. * platform/gtk/mathml/opentype/vertical-expected.png: Renamed from LayoutTests/platform/efl/mathml/opentype/vertical-LatinModern-expected.png. * platform/gtk/mathml/opentype/vertical-expected.txt: Renamed from LayoutTests/platform/gtk/mathml/opentype/vertical-LatinModern-expected.txt. * platform/mac-wk2/mathml/opentype/large-operators-LatinModern-expected.txt: Removed. * platform/mac-wk2/mathml/opentype/vertical-LatinModern-expected.txt: Removed. * platform/mac/TestExpectations: * platform/mac/mathml/opentype/horizontal-expected.txt: Renamed from LayoutTests/platform/mac/mathml/opentype/horizontal-LatinModern-expected.txt. * platform/mac/mathml/opentype/horizontal-munderover-expected.txt: Renamed from LayoutTests/platform/mac/mathml/opentype/horizontal-LatinModern-munderover-expected.txt. * platform/mac/mathml/opentype/large-operators-expected.txt: Renamed from LayoutTests/platform/mac/mathml/opentype/large-operators-LatinModern-expected.txt. * platform/mac/mathml/opentype/roots-LatinModern-expected.txt: Removed. * platform/mac/mathml/opentype/vertical-expected.txt: Renamed from LayoutTests/platform/mac/mathml/opentype/vertical-LatinModern-expected.txt. * platform/win/TestExpectations: * platform/win/mathml/opentype/horizontal-expected.txt: Renamed from LayoutTests/platform/win/mathml/opentype/horizontal-LatinModern-expected.txt. * platform/win/mathml/opentype/horizontal-munderover-expected.txt: Renamed from LayoutTests/platform/win/mathml/opentype/horizontal-LatinModern-munderover-expected.txt. * platform/win/mathml/opentype/roots-LatinModern-expected.txt: Removed. Canonical link: https://commits.webkit.org/152093@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@170232 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2014-06-21 06:04:26 +00:00
<title>Horizontal Operators in munderover</title>
MathML operators not stretched horizontally https://bugs.webkit.org/show_bug.cgi?id=72828 Reviewed by Chris Fleizach. Source/WebCore: This patch adds basic horizontal stretching rules for operators inside an <munder>, <mover> or <munderover> elements. The stretchy operators in such an element stretch to cover the size of the non-stretchy operators. This only works when fonts that have an OpenType MATH table are used. Tests: mathml/opentype/horizontal-LatinModern.html mathml/opentype/opentype-stretchy-horizontal.html mathml/opentype/horizontal-LatinModern-munderover.html * rendering/mathml/RenderMathMLOperator.cpp: (WebCore::MathMLOperatorDictionary::ExtractKeyHorizontal): We add an ordered list of operators that have horizontal stretch direction. (WebCore::RenderMathMLOperator::RenderMathMLOperator): init m_Vertical (WebCore::RenderMathMLOperator::SetOperatorProperties): set m_Vertical by checking whether the operator is in the horizontalOperators list. (WebCore::RenderMathMLOperator::stretchTo): We do not stretch vertically if the operator has horizontal direction. We also add a new version stretchTo(LayoutUnit width) for horizontal stretching only. (WebCore::RenderMathMLOperator::computePreferredLogicalWidths): Handle horizontal stretching: the maximumGlyphWidth is the maximum of the base size or of the stretch size. (WebCore::RenderMathMLOperator::getDisplayStyleLargeOperator): Add an ASSERT to ensure that this function is only called for vertical stretching. (WebCore::RenderMathMLOperator::findStretchyData): Add an ASSERT to ensure that this function is not called to get the maximum width of a horizontal stretchy operator. We take into account m_isVertical when calling getMathVariants or computing sizes. There is not any Unicode-only construction for horizontal stretching, so a MATH table is required for horizontal stretching. (WebCore::RenderMathMLOperator::updateStyle): Ignore some code paths specific to vertical stretching and take into account the m_Vertical parameters. For horizontal stretching, the m_stretch*Baseline parameters are now updated to match the metrics of the size variant or of the maximum of the parts in the glyph assembly. (WebCore::RenderMathMLOperator::computeLogicalHeight): logicalHeight is now explicitely the sum of m_stretchHeightAboveBaseline and m_stretchDepthBelowBaseline, since it can be different from the stretchSize() in horizontal stretching. (WebCore::RenderMathMLOperator::paintGlyph): handle trimming for horizontal stretching. (WebCore::RenderMathMLOperator::fillWithVerticalExtensionGlyph): rename the function and ensure it is only call for m_isVertical. (WebCore::RenderMathMLOperator::fillWithHorizontalExtensionGlyph): same as fillWithVerticalExtensionGlyph, but for horizontal stretching. (WebCore::RenderMathMLOperator::paint): For glyph assembly, choose between paintVerticalGlyphAssembly or paintHorizontalGlyphAssembly. (WebCore::RenderMathMLOperator::paintVerticalGlyphAssembly): rename the function and ensure it is only call for m_isVertical. (WebCore::RenderMathMLOperator::paintHorizontalGlyphAssembly): same as paintVerticalGlyphAssembly but for horizontal stretching. * rendering/mathml/RenderMathMLOperator.h: we add a m_isVertical member to indicate the stretch direction and a m_stretchWidth to indicate the width of the stretchy character. We define the horizontal counterparts of fillWith*ExtensionGlyph, paint*GlyphAssembly, GlyphPaintTrimming StretchyData. Finally stretchSize() takes into account the stretch direction. * rendering/mathml/RenderMathMLUnderOver.cpp: We override the layout() function to stretch munderover children horizontally. (WebCore::RenderMathMLUnderOver::layout): * rendering/mathml/RenderMathMLUnderOver.h: we declare layout(). LayoutTests: Add some tests to verify horizontal stretching with the MATH data. * mathml/opentype/horizontal-LatinModern-munderover.html: Added. * mathml/opentype/horizontal-LatinModern.html: Added. * mathml/opentype/opentype-stretchy-horizontal.html: Added. * platform/efl/TestExpectations: mark tests as failing. * platform/gtk/mathml/opentype/horizontal-LatinModern-expected.png: Added. * platform/gtk/mathml/opentype/horizontal-LatinModern-expected.txt: Added. * platform/gtk/mathml/opentype/horizontal-LatinModern-munderover-expected.png: Added. * platform/gtk/mathml/opentype/horizontal-LatinModern-munderover-expected.txt: Added. * platform/gtk/mathml/opentype/opentype-stretchy-horizontal-expected.png: Added. * platform/gtk/mathml/opentype/opentype-stretchy-horizontal-expected.txt: Added. * platform/mac/TestExpectations: mark tests as failing. * platform/win/TestExpectations: ditto. Canonical link: https://commits.webkit.org/151534@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@169607 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2014-06-05 06:35:04 +00:00
<meta charset="utf-8"/>
</head>
<body>
<!-- We test various munderover constructions. All the horizontal braces
Update OS X and iOS expectations for some MathML pixel tests. https://bugs.webkit.org/show_bug.cgi?id=159339 Unreviewed test gardening. Patch by Frederic Wang <fwang@igalia.com> on 2016-07-01 * mathml/opentype/fraction-line.html: Add a comment about font requirements. * mathml/opentype/horizontal-munderover.html: Ditto. * mathml/opentype/horizontal.html: Ditto. * mathml/opentype/large-operators-italic-correction.html: Ditto. * mathml/opentype/large-operators.html: Ditto. * mathml/opentype/vertical.html: Ditto. * mathml/presentation/attributes-mathvariant.html: Ditto. * mathml/presentation/fractions-linethickness.html: Ditto. * mathml/presentation/tokenElements-mathvariant.html: Ditto. * mathml/radical-fallback.html: Ditto. * platform/ios-simulator-wk1/TestExpectations: Update expectations. * platform/ios-simulator-wk2/TestExpectations: Ditto. * platform/ios-simulator-wk2/mathml/opentype/large-operators-expected.png: Removed. * platform/ios-simulator-wk2/mathml/opentype/vertical-expected.png: Removed. * platform/ios-simulator-wk2/mathml/presentation/mo-stretch-expected.png: Removed. * platform/ios-simulator/TestExpectations: * platform/ios-simulator/mathml/opentype/horizontal-expected.txt: Removed. * platform/ios-simulator/mathml/opentype/horizontal-munderover-expected.txt: Removed. * platform/ios-simulator/mathml/opentype/large-operators-expected.txt: Removed. * platform/ios-simulator/mathml/opentype/opentype-stretchy-expected.png: Added. * platform/ios-simulator/mathml/opentype/opentype-stretchy-horizontal-expected.png: Added. * platform/ios-simulator/mathml/opentype/opentype-stretchy-horizontal-expected.txt: * platform/ios-simulator/mathml/opentype/vertical-expected.txt: Removed. * platform/ios-simulator/mathml/presentation/menclose-notation-default-longdiv-expected.png: Added. * platform/ios-simulator/mathml/presentation/menclose-notation-values-expected.png: Added. * platform/ios-simulator/mathml/presentation/mo-stretch-expected.png: Added. * platform/ios-simulator/mathml/presentation/mo-stretch-expected.txt: * platform/ios-simulator/mathml/presentation/mspace-children-expected.png: Added. * platform/ios-simulator/mathml/radical-fallback-expected.png: * platform/mac/TestExpectations: Update expectations. * platform/mac/mathml/opentype/horizontal-expected.txt: Removed. * platform/mac/mathml/opentype/horizontal-munderover-expected.txt: Removed. * platform/mac/mathml/opentype/large-operators-expected.txt: Removed. * platform/mac/mathml/opentype/opentype-stretchy-expected.png: Added. * platform/mac/mathml/opentype/vertical-expected.txt: Removed. * platform/mac/mathml/presentation/menclose-notation-values-expected.png: * platform/mac/mathml/presentation/menclose-notation-values-expected.txt: * platform/mac/mathml/presentation/mo-stretch-expected.png: * platform/mac/mathml/presentation/mo-stretch-expected.txt: * platform/mac/mathml/presentation/mspace-children-expected.png: Added. * platform/mac/mathml/presentation/roots-expected.png: * platform/mac/mathml/presentation/roots-expected.txt: * platform/mac/mathml/radical-fallback-expected.png: * platform/mac/mathml/radical-fallback-expected.txt: Canonical link: https://commits.webkit.org/177479@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@202748 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2016-07-01 19:41:30 +00:00
should stretch to cover the size of the red rectangle.
Note: A font with an OpenType MATH table is required. -->
MathML operators not stretched horizontally https://bugs.webkit.org/show_bug.cgi?id=72828 Reviewed by Chris Fleizach. Source/WebCore: This patch adds basic horizontal stretching rules for operators inside an <munder>, <mover> or <munderover> elements. The stretchy operators in such an element stretch to cover the size of the non-stretchy operators. This only works when fonts that have an OpenType MATH table are used. Tests: mathml/opentype/horizontal-LatinModern.html mathml/opentype/opentype-stretchy-horizontal.html mathml/opentype/horizontal-LatinModern-munderover.html * rendering/mathml/RenderMathMLOperator.cpp: (WebCore::MathMLOperatorDictionary::ExtractKeyHorizontal): We add an ordered list of operators that have horizontal stretch direction. (WebCore::RenderMathMLOperator::RenderMathMLOperator): init m_Vertical (WebCore::RenderMathMLOperator::SetOperatorProperties): set m_Vertical by checking whether the operator is in the horizontalOperators list. (WebCore::RenderMathMLOperator::stretchTo): We do not stretch vertically if the operator has horizontal direction. We also add a new version stretchTo(LayoutUnit width) for horizontal stretching only. (WebCore::RenderMathMLOperator::computePreferredLogicalWidths): Handle horizontal stretching: the maximumGlyphWidth is the maximum of the base size or of the stretch size. (WebCore::RenderMathMLOperator::getDisplayStyleLargeOperator): Add an ASSERT to ensure that this function is only called for vertical stretching. (WebCore::RenderMathMLOperator::findStretchyData): Add an ASSERT to ensure that this function is not called to get the maximum width of a horizontal stretchy operator. We take into account m_isVertical when calling getMathVariants or computing sizes. There is not any Unicode-only construction for horizontal stretching, so a MATH table is required for horizontal stretching. (WebCore::RenderMathMLOperator::updateStyle): Ignore some code paths specific to vertical stretching and take into account the m_Vertical parameters. For horizontal stretching, the m_stretch*Baseline parameters are now updated to match the metrics of the size variant or of the maximum of the parts in the glyph assembly. (WebCore::RenderMathMLOperator::computeLogicalHeight): logicalHeight is now explicitely the sum of m_stretchHeightAboveBaseline and m_stretchDepthBelowBaseline, since it can be different from the stretchSize() in horizontal stretching. (WebCore::RenderMathMLOperator::paintGlyph): handle trimming for horizontal stretching. (WebCore::RenderMathMLOperator::fillWithVerticalExtensionGlyph): rename the function and ensure it is only call for m_isVertical. (WebCore::RenderMathMLOperator::fillWithHorizontalExtensionGlyph): same as fillWithVerticalExtensionGlyph, but for horizontal stretching. (WebCore::RenderMathMLOperator::paint): For glyph assembly, choose between paintVerticalGlyphAssembly or paintHorizontalGlyphAssembly. (WebCore::RenderMathMLOperator::paintVerticalGlyphAssembly): rename the function and ensure it is only call for m_isVertical. (WebCore::RenderMathMLOperator::paintHorizontalGlyphAssembly): same as paintVerticalGlyphAssembly but for horizontal stretching. * rendering/mathml/RenderMathMLOperator.h: we add a m_isVertical member to indicate the stretch direction and a m_stretchWidth to indicate the width of the stretchy character. We define the horizontal counterparts of fillWith*ExtensionGlyph, paint*GlyphAssembly, GlyphPaintTrimming StretchyData. Finally stretchSize() takes into account the stretch direction. * rendering/mathml/RenderMathMLUnderOver.cpp: We override the layout() function to stretch munderover children horizontally. (WebCore::RenderMathMLUnderOver::layout): * rendering/mathml/RenderMathMLUnderOver.h: we declare layout(). LayoutTests: Add some tests to verify horizontal stretching with the MATH data. * mathml/opentype/horizontal-LatinModern-munderover.html: Added. * mathml/opentype/horizontal-LatinModern.html: Added. * mathml/opentype/opentype-stretchy-horizontal.html: Added. * platform/efl/TestExpectations: mark tests as failing. * platform/gtk/mathml/opentype/horizontal-LatinModern-expected.png: Added. * platform/gtk/mathml/opentype/horizontal-LatinModern-expected.txt: Added. * platform/gtk/mathml/opentype/horizontal-LatinModern-munderover-expected.png: Added. * platform/gtk/mathml/opentype/horizontal-LatinModern-munderover-expected.txt: Added. * platform/gtk/mathml/opentype/opentype-stretchy-horizontal-expected.png: Added. * platform/gtk/mathml/opentype/opentype-stretchy-horizontal-expected.txt: Added. * platform/mac/TestExpectations: mark tests as failing. * platform/win/TestExpectations: ditto. Canonical link: https://commits.webkit.org/151534@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@169607 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2014-06-05 06:35:04 +00:00
<p>
<math>
<mstyle scriptsizemultiplier="1">
<mover><mo stretchy="true">&#x23DE;</mo><mspace mathbackground="red" height="2px" width="4em"/></mover>
</mstyle>
</math>
<math>
<mstyle scriptsizemultiplier="1">
<mover><mspace mathbackground="red" height="2px" width="4em"/><mo stretchy="true">&#x23DE;</mo></mover>
</mstyle>
</math>
<math>
<mstyle scriptsizemultiplier="1">
<munder><mo stretchy="true">&#x23DE;</mo><mspace mathbackground="red" height="2px" width="4em"/></munder>
</mstyle>
</math>
<math>
<mstyle scriptsizemultiplier="1">
<munderover><mspace mathbackground="red" height="2px" width="4em"/><mo stretchy="true">&#x23DE;</mo><mo stretchy="true">&#x23DE;</mo></munderover>
</mstyle>
</math>
<math>
<mstyle scriptsizemultiplier="1">
<munderover><mo stretchy="true">&#x23DE;</mo><mspace mathbackground="red" height="2px" width="4em"/><mo stretchy="true">&#x23DE;</mo></munderover>
</mstyle>
</math>
<math>
<mstyle scriptsizemultiplier="1">
<munderover><mo stretchy="true">&#x23DE;</mo><mo stretchy="true">&#x23DE;</mo><mspace mathbackground="red" height="2px" width="4em"/></munderover>
</mstyle>
</math>
<math>
<mstyle scriptsizemultiplier="1">
<munder><mover><mo stretchy="true">&#x23DE;</mo><mspace mathbackground="red" height="2px" width="4em"/></mover><mo stretchy="true">&#x23DE;</mo></munder>
</mstyle>
</math>
</p>
</body>
</html>