From 29ee44e84cf11b0cf7339abd9d31f0fdd540f846 Mon Sep 17 00:00:00 2001 From: Georg Baum Date: Fri, 18 Feb 2011 20:39:58 +0000 Subject: [PATCH] LyX does not support optional arguments of ref commands git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@37730 a592a061-630c-0410-9148-cb99ea01b6c8 --- src/tex2lyx/text.cpp | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/src/tex2lyx/text.cpp b/src/tex2lyx/text.cpp index b82d1686e8..01c1775c58 100644 --- a/src/tex2lyx/text.cpp +++ b/src/tex2lyx/text.cpp @@ -2348,13 +2348,22 @@ void parse_text(Parser & p, ostream & os, unsigned flags, bool outer, } else if (is_known(t.cs(), known_ref_commands)) { - context.check_layout(os); - begin_command_inset(os, "ref", t.cs()); - // LyX cannot handle newlines in a latex command - // FIXME: Move the substitution into parser::getOpt()? - os << subst(p.getOpt(), "\n", " "); - os << "reference " << '"' << subst(p.verbatim_item(), "\n", " ") << '"' << "\n"; - end_inset(os); + string const opt = p.getOpt(); + if (opt.empty()) { + context.check_layout(os); + begin_command_inset(os, "ref", t.cs()); + // LyX cannot handle newlines in a latex command + // FIXME: Move the substitution into parser::getOpt()? + os << "reference \"" + << subst(p.verbatim_item(), "\n", " ") + << "\"\n"; + end_inset(os); + } else { + // LyX does not support optional arguments of ref commands + handle_ert(os, t.asInput() + '[' + opt + "]{" + + p.verbatim_item() + "}", context); + } + } else if (use_natbib &&