Dimension const InsetText::dimensionHelper(BufferView const & bv) const
{
TextMetrics const & tm = bv.textMetrics(&text_);
- Dimension dim = tm.dimension();
+ Dimension dim = tm.dim();
dim.wid += 2 * TEXT_TO_INSET_OFFSET;
dim.des += TEXT_TO_INSET_OFFSET;
dim.asc += TEXT_TO_INSET_OFFSET;
rp.pass_thru = true;
if (il.isNeedProtect())
rp.moving_arg = true;
+ if (il.isNeedMBoxProtect())
+ ++rp.inulemcmd;
if (!il.passThruChars().empty())
rp.pass_thru_chars += il.passThruChars();
+ if (!il.newlineCmd().empty())
+ rp.newlinecmd = il.newlineCmd();
rp.par_begin = 0;
rp.par_end = paragraphs().size();
// Output the contents of the inset
latexParagraphs(buffer(), text_, os, rp);
runparams.encoding = rp.encoding;
+ // Pass the post_macros upstream
+ runparams.post_macro = rp.post_macro;
if (!il.rightdelim().empty())
os << il.rightdelim();
}
-bool InsetText::hasCProtectContent(bool const fragile) const
+bool InsetText::hasCProtectContent(bool fragile) const
{
+ fragile |= getLayout().isNeedProtect();
ParagraphList const & pars = paragraphs();
- pit_type pend = paragraphs().size();
+ pit_type pend = pit_type(paragraphs().size());
for (pit_type pit = 0; pit != pend; ++pit) {
- Paragraph const & par = pars[pit];
+ Paragraph const & par = pars[size_type(pit)];
if (par.needsCProtection(fragile))
return true;
}
'&', '_', '$', '%', '#', '^', '{', '}', '\\'};
ParagraphList const & pars = paragraphs();
- pit_type pend = paragraphs().size();
+ pit_type pend = pit_type(paragraphs().size());
for (pit_type pit = 0; pit != pend; ++pit) {
- Paragraph const & par = pars[pit];
+ Paragraph const & par = pars[size_type(pit)];
if (par.needsCProtection(fragile))
return true;
docstring const pars = par.asString();