From be44cb851650e680200cb667c3d51987f7078d37 Mon Sep 17 00:00:00 2001 From: Thibaut Cuvelier Date: Sun, 8 Oct 2023 02:12:35 +0200 Subject: [PATCH] MathML: don't output delimiters in InsetMathBinom and InsetMathDelim if the delimiter is a space. --- src/mathed/InsetMathDelim.cpp | 22 +++++++++++++--------- src/mathed/InsetMathFrac.cpp | 21 +++++++++++++-------- 2 files changed, 26 insertions(+), 17 deletions(-) diff --git a/src/mathed/InsetMathDelim.cpp b/src/mathed/InsetMathDelim.cpp index 486ed97580..18f3ffbae2 100644 --- a/src/mathed/InsetMathDelim.cpp +++ b/src/mathed/InsetMathDelim.cpp @@ -181,15 +181,19 @@ void InsetMathDelim::mathematica(MathematicaStream & os) const void InsetMathDelim::mathmlize(MathMLStream & ms) const { - ms << MTag("mrow") - << MTagInline("mo", "form='prefix' fence='true' stretchy='true' symmetric='true'") - << convertDelimToXMLEscape(left_) - << ETagInline("mo") - << cell(0) - << MTagInline("mo", "form='postfix' fence='true' stretchy='true' symmetric='true'") - << convertDelimToXMLEscape(right_) - << ETagInline("mo") - << ETag("mrow"); + if (left_.empty() || (left_.size() == 1 && left_[0] == ' ')) { + ms << MTag("mrow") + << MTagInline("mo", "form='prefix' fence='true' stretchy='true' symmetric='true'") + << convertDelimToXMLEscape(left_) + << ETagInline("mo"); + } + ms << cell(0); + if (right_.empty() || (right_.size() == 1 && right_[0] == ' ')) { + ms << MTagInline("mo", "form='postfix' fence='true' stretchy='true' symmetric='true'") + << convertDelimToXMLEscape(right_) + << ETagInline("mo") + << ETag("mrow"); + } } diff --git a/src/mathed/InsetMathFrac.cpp b/src/mathed/InsetMathFrac.cpp index f6f2f95b0a..5bed1a1fa6 100644 --- a/src/mathed/InsetMathFrac.cpp +++ b/src/mathed/InsetMathFrac.cpp @@ -768,15 +768,20 @@ void InsetMathBinom::mathmlize(MathMLStream & ms) const rdelim = ']'; break; } - ms << MTagInline("mo", "fence='true' stretchy='true' form='prefix'") - << ldelim - << ETagInline("mo") - << MTagInline("mfrac", "linethickness='0'") + + if (ldelim != ' ') { + ms << MTagInline("mo", "fence='true' stretchy='true' form='prefix'") + << ldelim + << ETagInline("mo"); + } + ms << MTagInline("mfrac", "linethickness='0'") << cell(0) << cell(1) - << ETagInline("mfrac") - << MTagInline("mo", "fence='true' stretchy='true' form='postfix'") - << rdelim - << ETagInline("mo"); + << ETagInline("mfrac"); + if (rdelim != ' ') { + ms << MTagInline("mo", "fence='true' stretchy='true' form='postfix'") + << rdelim + << ETagInline("mo"); + } } -- 2.39.5