#endif
else if (t.cs() == "limits" || t.cs() == "nolimits") {
- CatCode cat = nextToken().cat();
+ CatCode const cat = nextToken().cat();
if (cat == catSuper || cat == catSub)
limits = t.cs() == "limits" ? 1 : -1;
else {
delEmptyLastRow(subgrid);
}
+ else if (t.cs() == "Diagram") {
+ odocstringstream os;
+ while (good() && nextToken().cat() != catBegin)
+ os << getToken().asInput();
+ cell->push_back(createInsetMath(t.cs() + os.str(), buf));
+ parse2(cell->back(), FLAG_ITEM, mode, false);
+ }
+
else if (t.cs() == "framebox" || t.cs() == "makebox") {
cell->push_back(createInsetMath(t.cs(), buf));
parse(cell->back().nucleus()->cell(0), FLAG_OPTION, InsetMath::TEXT_MODE);
else if (t.cs().size()) {
bool const no_mhchem =
- (t.cs() == "ce" || t.cs() == "cf") && buf
- && buf->params().use_mhchem == BufferParams::package_off;
+ (t.cs() == "ce" || t.cs() == "cf")
+ && buf && buf->params().use_mhchem ==
+ BufferParams::package_off;
+
bool const is_user_macro = no_mhchem ||
(buf && (mode_ & Parse::TRACKMACRO
- ? buf->usermacros.count(t.cs()) != 0
- : buf->getMacro(t.cs(), false) != 0));
+ ? buf->usermacros.count(t.cs()) != 0
+ : buf->getMacro(t.cs(), false) != 0));
+
latexkeys const * l = in_word_set(t.cs());
if (l && !is_user_macro) {
if (l->inset == "big") {