From be03d699463fba896f90e3046b0814d527368771 Mon Sep 17 00:00:00 2001 From: Thibaut Cuvelier Date: Mon, 11 Mar 2024 01:30:48 +0100 Subject: [PATCH] MathML: don't output delimiters in InsetMathBinom and InsetMathDelim if the delimiter is a space. --- src/mathed/InsetMathDelim.cpp | 23 ++++++++++++++--------- src/mathed/InsetMathFrac.cpp | 21 +++++++++++++-------- 2 files changed, 27 insertions(+), 17 deletions(-) diff --git a/src/mathed/InsetMathDelim.cpp b/src/mathed/InsetMathDelim.cpp index 78d26fceea..d32029b818 100644 --- a/src/mathed/InsetMathDelim.cpp +++ b/src/mathed/InsetMathDelim.cpp @@ -189,15 +189,20 @@ 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"); + // Ignore the delimiter if: it is empty or only a space (one character). + if (!left_.empty() && ((left_.size() == 1 && left_[0] != ' ') || left_.size() > 1)) { + 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] != ' ') || right_.size() > 1)) { + 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..b0ff55bc4d 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