]> git.lyx.org Git - features.git/blobdiff - src/insets/InsetRef.cpp
Revert wrong previous commit.
[features.git] / src / insets / InsetRef.cpp
index 4bbb38d46602071bf2985273a40ca67d8c0104af..17184e51f6333291430073a9ddd586a2aa37556f 100644 (file)
@@ -140,25 +140,34 @@ docstring InsetRef::getEscapedLabel(OutputParams const & rp) const
 void InsetRef::latex(otexstream & os, OutputParams const & rp) const
 {
        string const cmd = getCmdName();
-       docstring const data = getEscapedLabel(rp);
 
-       if (cmd == "eqref" && buffer().params().use_refstyle) {
-               os << '(' << from_ascii("\\ref{") << data << from_ascii("})");
-       } 
-       else if (cmd == "formatted") {
-               docstring label;
-               docstring prefix;
-               docstring const fcmd = getFormattedCmd(data, label, prefix);
-               os << fcmd << '{' << label << '}';
-       }
-       else {
+       // 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);
                docstring const ref = getParam("reference");
                p["reference"] = ref;
                os << p.getCommand(rp);
+               return;
+       }
+
+       // 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);
+       os << fcmd << '{' << label << '}';
 }