// some sort of counter with the label, and we don't have that yet.
docstring const attr = "href=\"#" + xml::cleanAttr(ref) + '"';
xs << xml::StartTag("a", to_utf8(attr));
- xs << displayString(ref, cmd, op.local_font->language()->lang());;
+ xs << displayString(ref, cmd, getLocalOrDefaultLang(op)->lang());
xs << xml::EndTag("a");
return docstring();
}
} else
tooltip_ = from_ascii("");
- if (use_formatted_ref && cmd != "pageref" && cmd != "vpageref"
- && cmd != "vref" && cmd != "labelonly")
- screen_label_ = displayString(ref, cmd);
- else
- screen_label_ = label;
+ screen_label_ = label;
+ // If use_formatted_ref is active, this will be overwritten in addToToc.
+ // (We can't do it now because it might be a forward-reference
+ // and so the reference might not be in the label cache yet.
broken_ = false;
setBroken(broken_);
}
shared_ptr<Toc> toc2 = backend.toc("brokenrefs");
toc2->push_back(TocItem(cpit, 0, screenLabel(), output_active));
}
- // This InsetRef has already been taken care of in InsetLabel::addToToc().
+
+ // Code for display of formatted references
+ bool const use_formatted_ref = buffer().params().use_formatted_ref;
+ if (use_formatted_ref) {
+ string const & cmd = getCmdName();
+ docstring const & ref = getParam("reference");
+ if (cmd != "pageref" && cmd != "vpageref" && cmd != "vref" &&
+ cmd != "labelonly")
+ screen_label_ = displayString(ref, cmd);
+ }
return;
}
-
// It seems that this reference does not point to any valid label.
broken_ = true;
setBroken(broken_);