namespace lyx {
InsetMathSymbol::InsetMathSymbol(latexkeys const * l)
- : sym_(l), h_(0), scriptable_(false)
+ : sym_(l), h_(0), kerning_(0), scriptable_(false)
{}
InsetMathSymbol::InsetMathSymbol(char const * name)
- : sym_(in_word_set(from_ascii(name))), h_(0), scriptable_(false)
+ : sym_(in_word_set(from_ascii(name))), h_(0),
+ kerning_(0), scriptable_(false)
{}
InsetMathSymbol::InsetMathSymbol(docstring const & name)
- : sym_(in_word_set(name)), h_(0), scriptable_(false)
+ : sym_(in_word_set(name)), h_(0), kerning_(0), scriptable_(false)
{}
bool const italic_upcase_greek = sym_->inset == "cmr" &&
sym_->extra == "mathalpha" &&
mi.base.fontname == "mathit";
- docstring const font = italic_upcase_greek ? from_ascii("cmm") : sym_->inset;
- int const em = mathed_char_width(mi.base.font, 'M');
- FontSetChanger dummy(mi.base, font);
+ std::string const font = italic_upcase_greek ? "cmm" : sym_->inset;
+ int const em = mathed_font_em(mi.base.font);
+ FontSetChanger dummy(mi.base, from_ascii(font));
mathed_string_dim(mi.base.font, sym_->draw, dim);
docstring::const_reverse_iterator rit = sym_->draw.rbegin();
kerning_ = mathed_char_kerning(mi.base.font, *rit);
scriptable_ = false;
if (mi.base.style == LM_ST_DISPLAY)
if (sym_->inset == "cmex" || sym_->inset == "esint" ||
- sym_->extra == "funclim")
+ sym_->extra == "funclim" ||
+ (sym_->inset == "stmry" && sym_->extra == "mathop"))
scriptable_ = true;
}
bool const italic_upcase_greek = sym_->inset == "cmr" &&
sym_->extra == "mathalpha" &&
pi.base.fontname == "mathit";
- docstring const font = italic_upcase_greek ? from_ascii("cmm") : sym_->inset;
- int const em = mathed_char_width(pi.base.font, 'M');
+ std::string const font = italic_upcase_greek ? "cmm" : sym_->inset;
+ int const em = mathed_font_em(pi.base.font);
if (isRelOp())
x += static_cast<int>(0.25*em+0.5);
else
x += static_cast<int>(0.0833*em+0.5);
- FontSetChanger dummy(pi.base, font);
+ FontSetChanger dummy(pi.base, from_ascii(font));
pi.draw(x, y - h_, sym_->draw);
}
sym_->inset == "cmex" ||
sym_->inset == "lyxboldsymb" ||
sym_->inset == "esint" ||
- sym_->extra == "funclim";
+ sym_->extra == "funclim" ||
+ (sym_->inset == "stmry" && sym_->extra == "mathop");
}
}
-// FIXME This will likely need some work.
-char const * MathMLtype(docstring const & s)
-{
- if (s == "mathord")
- return "mi";
- return "mo";
-}
-
-
void InsetMathSymbol::mathmlize(MathStream & os) const
{
- // FIXME We may need to do more interesting things
+ // FIXME We may need to do more interesting things
// with MathMLtype.
- char const * type = MathMLtype(sym_->extra);
+ char const * type = sym_->MathMLtype();
os << '<' << type << "> ";
- if (sym_->xmlname == "x")
+ if (sym_->xmlname == "x")
// unknown so far
os << name();
else
void InsetMathSymbol::htmlize(HtmlStream & os, bool spacing) const
{
- // FIXME We may need to do more interesting things
+ // FIXME We may need to do more interesting things
// with MathMLtype.
- char const * type = MathMLtype(sym_->extra);
+ char const * type = sym_->MathMLtype();
bool op = (std::string(type) == "mo");
-
- if (sym_->xmlname == "x")
+
+ if (sym_->xmlname == "x")
// unknown so far
os << ' ' << name() << ' ';
- else if (op && spacing)
+ else if (op && spacing)
os << ' ' << sym_->xmlname << ' ';
else
os << sym_->xmlname;
"sup.limit{font-size: 75%;}");
} else {
if (!sym_->requires.empty())
- features.require(to_utf8(sym_->requires));
+ features.require(sym_->requires);
}
}