void InsetMathNest::dump() const
{
odocstringstream oss;
- WriteStream os(oss);
+ TexRow texrow(false);
+ otexrowstream ots(oss,texrow);
+ WriteStream os(ots);
os << "---------------------------------------------\n";
write(os);
os << "\n";
ModeSpecifier specifier(os, currentMode(), lockedMode());
docstring const latex_name = name();
os << '\\' << latex_name;
- for (size_t i = 0; i < nargs(); ++i)
+ for (size_t i = 0; i < nargs(); ++i) {
+ os.pushRowEntry(TexRow::mathEntry(id(),i));
os << '{' << cell(i) << '}';
+ os.popRowEntry();
+ }
if (nargs() == 0)
os.pendingSpace(true);
if (lock_ && !os.latex()) {
void InsetMathNest::latex(otexstream & os, OutputParams const & runparams) const
{
- WriteStream wi(os.os(), runparams.moving_arg, true,
- runparams.dryrun ? WriteStream::wsDryrun : WriteStream::wsDefault,
- runparams.encoding);
+ WriteStream wi(os, runparams.moving_arg, true,
+ runparams.dryrun ? WriteStream::wsDryrun : WriteStream::wsDefault,
+ runparams.encoding);
wi.canBreakLine(os.canBreakLine());
- write(wi);
+ if (runparams.lastid != -1) {
+ wi.pushRowEntry(os.texrow().textEntry(runparams.lastid,
+ runparams.lastpos));
+ write(wi);
+ wi.popRowEntry();
+ } else
+ write(wi);
// Reset parbreak status after a math inset.
os.lastChar(0);
os.canBreakLine(wi.canBreakLine());
-
- int lf = wi.line();
- if (lf > 0 && runparams.lastid != -1) {
- --lf;
- os.texrow().newline();
- os.texrow().start(runparams.lastid, runparams.lastpos);
- }
- os.texrow().newlines(lf);
}
case LFUN_CHAR_BACKWARD:
case LFUN_CHAR_FORWARD:
cur.screenUpdateFlags(Update::Decoration | Update::FitCursor);
+ // fall through
case LFUN_CHAR_RIGHT_SELECT:
case LFUN_CHAR_LEFT_SELECT:
case LFUN_CHAR_BACKWARD_SELECT:
case LFUN_DOWN:
case LFUN_UP:
cur.screenUpdateFlags(Update::Decoration | Update::FitCursor);
+ // fall through
case LFUN_DOWN_SELECT:
case LFUN_UP_SELECT: {
// close active macro
case LFUN_PARAGRAPH_UP:
case LFUN_PARAGRAPH_DOWN:
cur.screenUpdateFlags(Update::Decoration | Update::FitCursor);
+ // fall through
case LFUN_PARAGRAPH_UP_SELECT:
case LFUN_PARAGRAPH_DOWN_SELECT:
break;
case LFUN_WORD_BACKWARD:
case LFUN_WORD_LEFT:
cur.screenUpdateFlags(Update::Decoration | Update::FitCursor);
+ // fall through
case LFUN_LINE_BEGIN_SELECT:
case LFUN_WORD_BACKWARD_SELECT:
case LFUN_WORD_LEFT_SELECT:
case LFUN_WORD_RIGHT:
case LFUN_LINE_END:
cur.screenUpdateFlags(Update::Decoration | Update::FitCursor);
+ // fall through
case LFUN_WORD_FORWARD_SELECT:
case LFUN_WORD_RIGHT_SELECT:
case LFUN_LINE_END_SELECT:
case LFUN_FONT_DEFAULT:
handleFont(cur, cmd.argument(), "textnormal");
break;
-
case LFUN_FONT_UNDERLINE:
cur.recordUndo();
cur.handleNest(createInsetMath("underline", cur.buffer()));
break;
+
case LFUN_MATH_MODE: {
#if 1
// ignore math-mode on when already in math mode
globals.push_back(from_ascii("\\sqrt"));
globals.push_back(from_ascii("\\root"));
globals.push_back(from_ascii("\\tabular"));
+ globals.push_back(from_ascii("\\sideset"));
globals.push_back(from_ascii("\\stackrel"));
globals.push_back(from_ascii("\\stackrelthree"));
globals.push_back(from_ascii("\\binom"));