LT_LEFTDELIM,
LT_LEFTMARGIN,
LT_NEED_CPROTECT,
+ LT_NEED_MBOXPROTECT,
LT_NEED_PROTECT,
LT_NEWLINE,
LT_NEXTNOINDENT,
inpreamble = false;
needprotect = false;
needcprotect = false;
+ needmboxprotect = false;
keepempty = false;
font = inherit_font;
labelfont = inherit_font;
{ "leftmargin", LT_LEFTMARGIN },
{ "margin", LT_MARGIN },
{ "needcprotect", LT_NEED_CPROTECT },
+ { "needmboxprotect", LT_NEED_MBOXPROTECT },
{ "needprotect", LT_NEED_PROTECT },
{ "newline", LT_NEWLINE },
{ "nextnoindent", LT_NEXTNOINDENT },
latexargs_.clear();
itemargs_.clear();
postcommandargs_.clear();
+ listpreamble_.clear();
}
break;
lex >> needcprotect;
break;
+ case LT_NEED_MBOXPROTECT:
+ lex >> needmboxprotect;
+ break;
+
case LT_KEEPEMPTY:
lex >> keepempty;
break;
}
case LT_AUTONESTS: {
- docstring const autonest =
- subst(subst(subst(lex.getLongString(from_ascii("EndAutoNests")),
- from_ascii("\n"), docstring()),
- from_ascii(" "), docstring()),
- from_ascii("\t"), docstring());
+ docstring autonest = lex.getLongString(from_ascii("EndAutoNests"));
+ autonest = subst(autonest, from_ascii("\n"), docstring());
+ autonest = subst(autonest, from_ascii("\t"), docstring());
+ autonest = subst(autonest, from_ascii("\""), docstring());
+ autonest = subst(autonest, '_', ' ');
vector<docstring> const autonests =
- getVectorFromString(autonest);
+ getVectorFromString(autonest, from_ascii(","), false, true);
autonests_.insert(autonests.begin(), autonests.end());
break;
}
case LT_AUTONESTEDBY: {
- docstring const autonest =
- subst(subst(subst(lex.getLongString(from_ascii("EndIsAutoNestedBy")),
- from_ascii("\n"), docstring()),
- from_ascii(" "), docstring()),
- from_ascii("\t"), docstring());
+ docstring autonest = lex.getLongString(from_ascii("EndIsAutoNestedBy"));
+ autonest = subst(autonest, from_ascii("\n"), docstring());
+ autonest = subst(autonest, from_ascii("\t"), docstring());
+ autonest = subst(autonest, from_ascii("\""), docstring());
+ autonest = subst(autonest, '_', ' ');
vector<docstring> const autonests =
- getVectorFromString(autonest);
+ getVectorFromString(autonest, from_ascii(","), false, true);
autonested_by_.insert(autonests.begin(), autonests.end());
break;
}
latexarg arg;
// writeArgument() makes use of these default values
arg.mandatory = false;
+ arg.nodelims = false;
arg.autoinsert = false;
arg.insertcotext = false;
bool error = false;
lex >> id;
bool const itemarg = prefixIs(id, "item:");
bool const postcmd = prefixIs(id, "post:");
+ bool const listpreamble = prefixIs(id, "listpreamble:");
while (!finished && lex.isOK() && !error) {
lex.next();
itemargs_[id] = arg;
else if (postcmd)
postcommandargs_[id] = arg;
- else
+ else if (listpreamble) {
+ // list preamble has no delimiters by default
+ arg.nodelims = true;
+ listpreamble_[id] = arg;
+ } else
latexargs_[id] = arg;
}
for (LaTeXArgMap::const_iterator it = postcommandargs_.begin();
it != postcommandargs_.end(); ++it)
writeArgument(os, it->first, it->second);
+ for (LaTeXArgMap::const_iterator it = listpreamble_.begin();
+ it != listpreamble_.end(); ++it)
+ writeArgument(os, it->first, it->second);
os << "\tNeedProtect " << needprotect << "\n"
"\tNeedCProtect " << needcprotect << "\n"
+ "\tNeedMBoxProtect " << needmboxprotect << "\n"
"\tKeepEmpty " << keepempty << '\n';
if (labelfont == font)
lyxWrite(os, font, "Font", 1);
bool Layout::hasArgs() const
{
return !latexargs_.empty() || !postcommandargs_.empty() ||
- !itemargs_.empty();
+ !itemargs_.empty() || !listpreamble_.empty();
}
LaTeXArgMap args = latexargs_;
if (!postcommandargs_.empty())
args.insert(postcommandargs_.begin(), postcommandargs_.end());
+ if (!listpreamble_.empty())
+ args.insert(listpreamble_.begin(), listpreamble_.end());
if (!itemargs_.empty())
args.insert(itemargs_.begin(), itemargs_.end());
return args;