Fix #9726: Preview does not have correct font size

This commit is contained in:
Enrico Forestieri 2015-10-03 18:13:20 +02:00
parent 82fe5183ca
commit 8a909b0fa3

View File

@ -713,6 +713,23 @@ void InsetMathHull::preparePreview(DocIterator const & pos,
for (; it != end; ++it) for (; it != end; ++it)
macro_preamble.append(*it); macro_preamble.append(*it);
// set the font series and size for this snippet
DocIterator dit = pos;
while (dit.inMathed())
dit.pop_back();
Paragraph const & par = dit.paragraph();
Font font = par.getFontSettings(buffer->params(), dit.pos());
font.fontInfo().realize(par.layout().font);
string const lsize = font.latexSize();
docstring setfont;
docstring endfont;
if (font.fontInfo().series() == BOLD_SERIES) {
setfont += from_ascii("\\textbf{");
endfont += '}';
}
if (lsize != "normalsize" && !prefixIs(lsize, "error"))
setfont += from_ascii("\\" + lsize + '\n');
docstring setcnt; docstring setcnt;
if (forexport && haveNumbers()) { if (forexport && haveNumbers()) {
docstring eqstr = from_ascii("equation"); docstring eqstr = from_ascii("equation");
@ -734,7 +751,8 @@ void InsetMathHull::preparePreview(DocIterator const & pos,
'{' + convert<docstring>(num) + '}'; '{' + convert<docstring>(num) + '}';
} }
} }
docstring const snippet = macro_preamble + setcnt + latexString(*this); docstring const snippet = macro_preamble + setfont + setcnt
+ latexString(*this) + endfont;
LYXERR(Debug::MACROS, "Preview snippet: " << snippet); LYXERR(Debug::MACROS, "Preview snippet: " << snippet);
preview_->addPreview(snippet, *buffer, forexport); preview_->addPreview(snippet, *buffer, forexport);
} }