bool InsetMathFont::lockedMode() const
{
- if (key_->extra == "forcetext")
- return true;
- return false;
+ return key_->extra == "forcetext";
}
-void InsetMathFont::write(WriteStream & os) const
+void InsetMathFont::write(TeXMathStream & os) const
{
// Close the mode changing command inserted during export if
// we are going to output another mode changing command that
{
Changer dummy = mi.base.changeFontSet(font());
cell(0).metrics(mi, dim);
- metricsMarkers(mi, dim);
}
void InsetMathFont::draw(PainterInfo & pi, int x, int y) const
{
Changer dummy = pi.base.changeFontSet(font());
- cell(0).draw(pi, x + 1, y);
- drawMarkers(pi, x, y);
+ cell(0).draw(pi, x, y);
}
features.require("tipa");
if (fontname == "ce" || fontname == "cf")
features.require("mhchem");
+ if (fontname == "mathds")
+ features.require("dsfont");
} else if (features.runparams().math_flavor == OutputParams::MathAsHTML) {
features.addCSSSnippet(
"span.normal{font: normal normal normal inherit serif;}\n"
variant = "normal";
else if (tag == "frak" || tag == "mathfrak")
variant = "fraktur";
- else if (tag == "mathbb" || tag == "mathbf"
- || tag == "textbf")
+ else if (tag == "mathbf" || tag == "textbf")
variant = "bold";
+ else if (tag == "mathbb" || tag == "mathbbm"
+ || tag == "mathds")
+ variant = "double-struck";
else if (tag == "mathcal")
variant = "script";
else if (tag == "mathit" || tag == "textsl"
// The fonts we want to support are listed in lib/symbols
-void InsetMathFont::mathmlize(MathStream & os) const
+void InsetMathFont::mathmlize(MathMLStream & ms) const
{
// FIXME These are not quite right, because they do not nest
// correctly. A proper fix would presumably involve tracking
// the fonts already in effect.
std::string variant;
docstring const & tag = key_->name;
- if (tag == "mathnormal" || tag == "mathrm"
- || tag == "text" || tag == "textnormal"
- || tag == "textrm" || tag == "textup"
- || tag == "textmd")
+ if (tag == "mathnormal" || tag == "mathrm")
variant = "normal";
else if (tag == "frak" || tag == "mathfrak")
variant = "fraktur";
- else if (tag == "mathbb" || tag == "mathbf"
- || tag == "textbf")
+ else if (tag == "mathbf" || tag == "textbf")
variant = "bold";
+ else if (tag == "mathbb" || tag == "mathbbm" || tag == "mathds")
+ variant = "double-struck";
else if (tag == "mathcal")
variant = "script";
- else if (tag == "mathit" || tag == "textsl"
- || tag == "emph" || tag == "textit")
+ else if (tag == "mathit" || tag == "textsl" || tag == "emph" ||
+ tag == "textit")
variant = "italic";
else if (tag == "mathsf" || tag == "textsf")
variant = "sans-serif";
variant = "monospace";
// no support at present for textipa, textsc, noun
- if (!variant.empty()) {
- if (tag == "mathbb") {
- os << MTag("mstyle", "class='mathbb' mathvariant='" + variant + "'")
- << cell(0)
- << ETag("mstyle");
- } else {
- os << MTag("mstyle", "mathvariant='" + variant + "'")
- << cell(0)
- << ETag("mstyle");
- }
- } else
- os << cell(0);
+ if (tag == "text" || tag == "textnormal" || tag == "textrm" ||
+ tag == "textup" || tag == "textmd") {
+ SetMode textmode(ms, true);
+ ms << MTagInline("mtext");
+ ms << cell(0);
+ ms << ETagInline("mtext");
+ } else if (!variant.empty()) {
+ ms << MTag("mstyle", "mathvariant='" + variant + "'");
+ ms << cell(0);
+ ms << ETag("mstyle");
+ } else {
+ ms << cell(0);
+ }
}