From: Georg Baum Date: Fri, 3 Nov 2006 15:05:14 +0000 (+0000) Subject: * src/mathed/MathParser.C X-Git-Tag: 1.6.10~12066 X-Git-Url: https://git.lyx.org/gitweb/?a=commitdiff_plain;h=4689b5eea3fbe0a10332efa03c9463889f68affe;p=features.git * 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 --- 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) {