buffer->listMacroNames(macros);
MacroNameSet::iterator it = macros.begin();
MacroNameSet::iterator end = macros.end();
- odocstringstream macro_preamble;
+ docstring macro_preamble;
for (; it != end; ++it) {
MacroData const * data = buffer->getMacro(*it, pos, true);
if (data) {
- data->write(macro_preamble, true);
- macro_preamble << endl;
+ odocstringstream mac_preamble;
+ data->write(mac_preamble, false);
+ docstring const mps = mac_preamble.str();
+ bool const is_new_def = prefixIs(mps, from_ascii("\\newcomm"));
+ // assure that \newcommand definitions of macros are only added once
+ if (!is_new_def || !preview_->hasMacroDef(mps, *buffer)) {
+ if (is_new_def)
+ preview_->addMacroDef(mps, *buffer);
+ if (!macro_preamble.empty())
+ macro_preamble += '\n';
+ macro_preamble += mps;
+ }
}
}
'{' + convert<docstring>(num) + '}';
}
}
- docstring const snippet = macro_preamble.str() +
- setcnt + latexString(*this);
+ docstring const snippet = macro_preamble + setcnt + latexString(*this);
LYXERR(Debug::MACROS, "Preview snippet: " << snippet);
preview_->addPreview(snippet, *buffer, forexport);
}
void InsetMathHull::infoize(odocstream & os) const
{
- os << "Type: " << hullName(type_);
+ os << bformat(_("Type: %1$s"), hullName(type_));
}
enable = display() != Inline;
}
status.setEnabled(enable);
+ status.setOnOff(display() != Inline);
return true;
}