- if (sym_->token == LM_TK_CMEX)
- return LM_TC_BOLDSYMB;
- else
- return LM_TC_SYMB;
-}
-
-
-void MathSymbolInset::metrics(MathMetricsInfo const & mi) const
-{
- mi_ = mi;
- MathTextCodes c = code();
- if (sym_->latex_font_id > 0 && math_font_available(c)) {
- mathed_char_dim(c, mi_, sym_->latex_font_id, ascent_, descent_, width_);
- if (c == LM_TC_CMEX) {
- h_ = 4 * descent_ / 5;
- ascent_ += h_;
- descent_ -= h_;
- }
- } else {
- if (sym_->id > 0 && sym_->id < 255 && math_font_available(LM_TC_SYMB))
- mathed_char_dim(code2(), mi_, sym_->id, ascent_, descent_, width_);
- else
- mathed_string_dim(LM_TC_TEX, mi_, sym_->name, ascent_, descent_, width_);
+ //lyxerr << "metrics: symbol: '" << sym_->name
+ // << "' in font: '" << sym_->inset
+ // << "' drawn as: '" << sym_->draw
+ // << "'\n";
+ MathFontSetChanger dummy(mi.base, sym_->inset.c_str());
+ mathed_string_dim(mi.base.font, sym_->draw, ascent_, descent_, width_);
+ // correct height for broken cmex font
+ if (sym_->inset == "cmex") {
+ h_ = 4 * descent_ / 5;
+ ascent_ += h_;
+ descent_ -= h_;