diff --git a/src/mathed/InsetMathNest.cpp b/src/mathed/InsetMathNest.cpp index b62505a8b8..7241e0bc3b 100644 --- a/src/mathed/InsetMathNest.cpp +++ b/src/mathed/InsetMathNest.cpp @@ -1903,10 +1903,16 @@ bool InsetMathNest::interpretChar(Cursor & cur, char_type const c) return true; } if (currentMode() == InsetMath::MATH_MODE && Encodings::isUnicodeTextOnly(c)) { - MathAtom at = createInsetMath("text", buf); - at.nucleus()->cell(0).push_back(MathAtom(new InsetMathChar(c))); - cur.insert(at); - cur.posForward(); + MathAtom const atom(new InsetMathChar(c)); + if (cur.prevInset() && cur.prevInset()->asInsetMath()->name() == "text") { + // reuse existing \text inset + cur.prevInset()->asInsetMath()->cell(0).push_back(atom); + } else { + MathAtom at = createInsetMath("text", buf); + at.nucleus()->cell(0).push_back(atom); + cur.insert(at); + cur.posForward(); + } return true; } } else {