}
}
- else if (t.cat() == catSpace
+ else if (t.cat() == catSpace
|| t.cat() == catNewline
- || t.cat() == catLetter
- || t.cat() == catSuper
- || t.cat() == catSub
- || t.cat() == catOther
- || t.cat() == catActive
+ || t.cat() == catLetter
+ || t.cat() == catSuper
+ || t.cat() == catSub
+ || t.cat() == catOther
+ || t.cat() == catActive
|| t.cat() == catParameter)
os << t.cs();
// treat the nested environment as a block, don't
// parse &, \\ etc, because they don't belong to our
// table if they appear.
- os << p.verbatimEnvironment(name);
+ os << p.ertEnvironment(name);
os << "\\end{" << name << '}';
active_environments.pop_back();
}
cellinfo[row][col].content += os.str();
// add dummy cells for multicol
- for (size_t i = 0; i < ncells - 1 && col < colinfo.size(); ++i) {
+ for (size_t i = 0; i < ncells - 1; ++i) {
++col;
+ if (col >= colinfo.size()) {
+ cerr << "The cell '"
+ << cells[cell]
+ << "' specifies "
+ << convert<string>(ncells)
+ << " columns while the table has only "
+ << convert<string>(colinfo.size())
+ << " columns!"
+ << " Therefore the surplus columns will be ignored."
+ << endl;
+ break;
+ }
cellinfo[row][col].multi = CELL_PART_OF_MULTICOLUMN;
cellinfo[row][col].align = 'c';
}
angle = p.getArg('{', '}');
}
active_environments.push_back(env);
- p.verbatimEnvironment(env);
+ p.ertEnvironment(env);
active_environments.pop_back();
p.skip_spaces();
if (!p.good() && support::isStrInt(angle))