LT_FONT,
LT_FREE_SPACING,
LT_PASS_THRU,
+ LT_PASS_THRU_CHARS,
LT_PARBREAK_IS_NEWLINE,
LT_ITEMCOMMAND,
LT_ITEMSEP,
LT_NEED_PROTECT,
LT_NEWLINE,
LT_NEXTNOINDENT,
+ LT_PAR_GROUP,
LT_PARINDENT,
LT_PARSEP,
LT_PARSKIP,
LT_RESETARGS,
LT_RIGHTDELIM,
LT_FORCELOCAL,
+ LT_TOGGLE_INDENT,
LT_INTITLE // keep this last!
};
spellcheck = true;
forcelocal = 0;
itemcommand_ = "item";
+ toggle_indent = ITOGGLE_DOCUMENT_DEFAULT;
+ par_group_ = false;
}
{ "newline", LT_NEWLINE },
{ "nextnoindent", LT_NEXTNOINDENT },
{ "obsoletedby", LT_OBSOLETEDBY },
+ { "paragraphgroup", LT_PAR_GROUP },
{ "parbreakisnewline", LT_PARBREAK_IS_NEWLINE },
{ "parindent", LT_PARINDENT },
{ "parsep", LT_PARSEP },
{ "parskip", LT_PARSKIP },
{ "passthru", LT_PASS_THRU },
+ { "passthruchars", LT_PASS_THRU_CHARS },
{ "preamble", LT_PREAMBLE },
{ "refprefix", LT_REFPREFIX },
{ "requires", LT_REQUIRES },
{ "spellcheck", LT_SPELLCHECK },
{ "textfont", LT_TEXTFONT },
{ "toclevel", LT_TOCLEVEL },
+ { "toggleindent", LT_TOGGLE_INDENT },
{ "topsep", LT_TOPSEP }
};
lex >> nextnoindent;
break;
+ case LT_TOGGLE_INDENT: {
+ string tog;
+ lex >> tog;
+ tog = support::ascii_lowercase(tog);
+ if (tog == "always")
+ toggle_indent = ITOGGLE_ALWAYS;
+ else if (tog == "never")
+ toggle_indent = ITOGGLE_NEVER;
+ else
+ toggle_indent = ITOGGLE_DOCUMENT_DEFAULT;
+ break;
+ }
+
case LT_COMMANDDEPTH:
lex >> commanddepth;
break;
counter = trim(counter);
break;
+ case LT_PAR_GROUP:
+ lex >> par_group_;
+ break;
+
case LT_FREE_SPACING:
lex >> free_spacing;
break;
lex >> pass_thru;
break;
+ case LT_PASS_THRU_CHARS:
+ lex >> pass_thru_chars;
+ break;
+
case LT_PARBREAK_IS_NEWLINE:
lex >> parbreak_is_newline;
break;
case LT_REQUIRES: {
lex.eatLine();
- vector<string> const req =
- getVectorFromString(lex.getString());
+ vector<string> const req =
+ getVectorFromString(lex.getString(true));
requires_.insert(req.begin(), req.end());
break;
}
return;
case LATEX_PARAGRAPH:
case LATEX_COMMAND:
- case LATEX_ENVIRONMENT:
case LATEX_ITEM_ENVIRONMENT:
- case LATEX_BIB_ENVIRONMENT:
case LATEX_LIST_ENVIRONMENT:
latextype = static_cast<LatexType>(le);
break;
+ case LATEX_ENVIRONMENT:
+ case LATEX_BIB_ENVIRONMENT:
+ latextype = static_cast<LatexType>(le);
+ par_group_ = true;
+ break;
default:
LYXERR0("Unhandled value " << le);
break;
// writeArgument() makes use of these default values
arg.mandatory = false;
arg.autoinsert = false;
+ arg.insertcotext = false;
bool error = false;
bool finished = false;
arg.font = inherit_font;
} else if (tok == "autoinsert") {
lex.next();
arg.autoinsert = lex.getBool();
+ } else if (tok == "insertcotext") {
+ lex.next();
+ arg.insertcotext = lex.getBool();
} else if (tok == "leftdelim") {
lex.next();
arg.ldelim = lex.getDocString();
arg.font = lyxRead(lex, arg.font);
} else if (tok == "labelfont") {
arg.labelfont = lyxRead(lex, arg.labelfont);
+ } else if (tok == "passthruchars") {
+ lex.next();
+ arg.pass_thru_chars = lex.getDocString();
} else {
lex.printError("Unknown tag");
error = true;
os << "\t\tMandatory " << arg.mandatory << '\n';
if (arg.autoinsert)
os << "\t\tAutoinsert " << arg.autoinsert << '\n';
+ if (arg.insertcotext)
+ os << "\t\tInsertCotext " << arg.insertcotext << '\n';
if (!arg.ldelim.empty())
os << "\t\tLeftDelim \""
<< to_utf8(subst(arg.ldelim, from_ascii("\n"), from_ascii("<br/>")))
lyxWrite(os, arg.font, "Font", 2);
if (arg.labelfont != inherit_font)
lyxWrite(os, arg.labelfont, "LabelFont", 2);
+ if (!arg.pass_thru_chars.empty())
+ os << "\t\tPassThruChars \"" << to_utf8(arg.pass_thru_chars) << "\"\n";
os << "\tEndArgument\n";
}
os << "\tEndLabelType Static\n";
break;
}
+ os << "\tParagraphGroup \"" << par_group_ << "\"\n";
if (!leftmargin.empty())
os << "\tLeftMargin \"" << to_utf8(leftmargin) << "\"\n";
if (!rightmargin.empty())
bool first = true;
os << "\tAlignPossible";
if (alignpossible & LYX_ALIGN_BLOCK) {
- if (!first)
- os << ',';
os << " Block";
first = false;
}
os << "\tLabelCounter \"" << to_utf8(counter) << "\"\n";
os << "\tFreeSpacing " << free_spacing << '\n';
os << "\tPassThru " << pass_thru << '\n';
+ if (!pass_thru_chars.empty())
+ os << "\tPassThruChars " << to_utf8(pass_thru_chars) << '\n';
os << "\tParbreakIsNewline " << parbreak_is_newline << '\n';
switch (spacing.getSpace()) {
case Spacing::Double: