From 69ab57ab898031eb40069f2aceadfc557f789a3b Mon Sep 17 00:00:00 2001 From: Richard Heck Date: Sun, 13 Mar 2011 20:29:52 +0000 Subject: [PATCH] What is output as \eqref under prettyref needs to be handled differently under refstyle, since (a) the default refstyle.cfg defines \eqref itself and (b) does NOT define it the way AMS does. So we simply output: (\ref{label}) in this case, to match what we say in the UI. git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@37918 a592a061-630c-0410-9148-cb99ea01b6c8 --- src/insets/InsetRef.cpp | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/src/insets/InsetRef.cpp b/src/insets/InsetRef.cpp index 5322b3bba3..17184e51f6 100644 --- a/src/insets/InsetRef.cpp +++ b/src/insets/InsetRef.cpp @@ -82,7 +82,8 @@ ParamInfo const & InsetRef::findInfo(string const & /* cmdName */) // the command: \pfxcmd{suffix}. // // for prettyref, we return "\prettyref" and put ref into label -// and pfx into prefix. this is because prettyref +// and pfx into prefix. this is because prettyref uses the whole +// label, thus: \prettyref{pfx:suffix}. // docstring InsetRef::getFormattedCmd(docstring const & ref, docstring & label, docstring & prefix) const @@ -139,7 +140,11 @@ docstring InsetRef::getEscapedLabel(OutputParams const & rp) const void InsetRef::latex(otexstream & os, OutputParams const & rp) const { string const cmd = getCmdName(); - if (cmd != "formatted") { + + // refstyle defines its own version of \eqref + if (cmd != "formatted" && + !(cmd == "eqref" && buffer().params().use_refstyle) + ) { // We don't want to output p_["name"], since that is only used // in docbook. So we construct new params, without it, and use that. InsetCommandParams p(REF_CODE, cmd); @@ -147,10 +152,18 @@ void InsetRef::latex(otexstream & os, OutputParams const & rp) const p["reference"] = ref; os << p.getCommand(rp); return; - } - - // so we're doing a formatted reference. + } + + // so we're doing a formatted reference of some kind. docstring const data = getEscapedLabel(rp); + + // what we say in the UI is that an "eqref" is supposed to surround the + // reference with parentheses, so let's do that. + if (cmd == "eqref" /* && buffer().params().use_refstyle */) { + os << '(' << from_ascii("\\ref{") << data << from_ascii("})"); + return; + } + docstring label; docstring prefix; docstring const fcmd = getFormattedCmd(data, label, prefix); -- 2.39.2