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 << '}';
}