From 4689b5eea3fbe0a10332efa03c9463889f68affe Mon Sep 17 00:00:00 2001 From: Georg Baum Date: Fri, 3 Nov 2006 15:05:14 +0000 Subject: [PATCH] * src/mathed/MathParser.C (Parser::parse1): Fix special handling of {}-bases to not destroy \xxx{\vec{H}}_0 where \xxx is an unknown command git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15712 a592a061-630c-0410-9148-cb99ea01b6c8 --- src/mathed/MathParser.C | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/mathed/MathParser.C b/src/mathed/MathParser.C index c3a17c2875..2fe641cf93 100644 --- a/src/mathed/MathParser.C +++ b/src/mathed/MathParser.C @@ -816,9 +816,13 @@ void Parser::parse1(InsetMathGrid & grid, unsigned flags, cell->back() = MathAtom(new InsetMathScript(cell->back(), up)); InsetMathScript * p = cell->back().nucleus()->asScriptInset(); // special handling of {}-bases + // Test for empty brace inset, otherwise \xxx{\vec{H}}_{0} + // where \xxx is an unknown command gets misparsed to + // \xxx\vec{H}_{0}, and that is invalid LaTeX. // is this always correct? - if (p->nuc().size() == 1 - && p->nuc().back()->asBraceInset()) + if (p->nuc().size() == 1 && + p->nuc().back()->asBraceInset() && + p->nuc().back()->asBraceInset()->cell(0).empty()) p->nuc() = p->nuc().back()->asNestInset()->cell(0); parse(p->cell(p->idxOfScript(up)), FLAG_ITEM, mode); if (limits) { -- 2.39.2