LT_FREE_SPACING,
LT_PASS_THRU,
//LT_HEADINGS,
- LT_I18NPREAMBLE,
LT_ITEMSEP,
LT_KEEPEMPTY,
LT_LABEL_BOTTOMSEP,
LT_PARSKIP,
//LT_PLAIN,
LT_PREAMBLE,
+ LT_LANGPREAMBLE,
+ LT_BABELPREAMBLE,
LT_REQUIRES,
LT_RIGHTMARGIN,
LT_SPACING,
LT_INNERTAG,
LT_LABELTAG,
LT_ITEMTAG,
+ LT_HTMLTAG,
+ LT_HTMLATTR,
+ LT_HTMLITEM,
+ LT_HTMLITEMATTR,
+ LT_HTMLLABEL,
+ LT_HTMLLABELATTR,
+ LT_HTMLLABELFIRST,
+ LT_HTMLPREAMBLE,
+ LT_HTMLSTYLE,
LT_INTITLE // keep this last!
};
pass_thru = false;
toclevel = NOT_IN_TOC;
commanddepth = 0;
+ htmllabelfirst_ = false;
}
LexerKeyword layoutTags[] = {
{ "align", LT_ALIGN },
{ "alignpossible", LT_ALIGNPOSSIBLE },
+ { "babelpreamble", LT_BABELPREAMBLE },
{ "bottomsep", LT_BOTTOMSEP },
{ "category", LT_CATEGORY },
{ "commanddepth", LT_COMMANDDEPTH },
{ "fill_top", LT_FILL_TOP },
{ "font", LT_FONT },
{ "freespacing", LT_FREE_SPACING },
- { "i18npreamble", LT_I18NPREAMBLE },
+ { "htmlattr", LT_HTMLATTR },
+ { "htmlitem", LT_HTMLITEM },
+ { "htmlitemattr", LT_HTMLITEMATTR },
+ { "htmllabel", LT_HTMLLABEL },
+ { "htmllabelattr", LT_HTMLLABELATTR },
+ { "htmllabelfirst", LT_HTMLLABELFIRST },
+ { "htmlpremable", LT_HTMLPREAMBLE },
+ { "htmlstyle", LT_HTMLSTYLE },
+ { "htmltag", LT_HTMLTAG },
{ "innertag", LT_INNERTAG },
{ "intitle", LT_INTITLE },
{ "itemsep", LT_ITEMSEP },
{ "labelstringappendix", LT_LABELSTRING_APPENDIX },
{ "labeltag", LT_LABELTAG },
{ "labeltype", LT_LABELTYPE },
+ { "langpreamble", LT_LANGPREAMBLE },
{ "latexname", LT_LATEXNAME },
{ "latexparam", LT_LATEXPARAM },
{ "latextype", LT_LATEXTYPE },
lex.printError("Unknown layout tag `$$Token'");
error = true;
continue;
- default: break;
+
+ default:
+ break;
}
switch (static_cast<LayoutTags>(le)) {
case LT_END: // end of structure
preamble_ = from_utf8(lex.getLongString("EndPreamble"));
break;
- case LT_I18NPREAMBLE:
- i18npreamble_ = from_utf8(lex.getLongString("EndI18NPreamble"));
+ case LT_LANGPREAMBLE:
+ langpreamble_ = from_utf8(lex.getLongString("EndLangPreamble"));
+ break;
+
+ case LT_BABELPREAMBLE:
+ babelpreamble_ = from_utf8(lex.getLongString("EndBabelPreamble"));
break;
case LT_LABELTYPE:
readSpacing(lex);
break;
- case LT_REQUIRES:
+ case LT_REQUIRES: {
lex.eatLine();
vector<string> const req =
getVectorFromString(lex.getString());
requires_.insert(req.begin(), req.end());
break;
+ }
+
+ case LT_HTMLTAG:
+ lex >> htmltag_;
+ break;
+
+ case LT_HTMLATTR:
+ lex >> htmlattr_;
+ break;
+
+ case LT_HTMLITEM:
+ lex >> htmlitem_;
+ break;
+
+ case LT_HTMLITEMATTR:
+ lex >> htmlitemattr_;
+ break;
+
+ case LT_HTMLLABEL:
+ lex >> htmllabel_;
+ break;
+
+ case LT_HTMLLABELATTR:
+ lex >> htmllabelattr_;
+ break;
+
+ case LT_HTMLLABELFIRST:
+ lex >> htmllabelfirst_;
+ break;
+
+ case LT_HTMLSTYLE:
+ htmlstyle_ = from_utf8(lex.getLongString("EndHTMLStyle"));
+ break;
+
+ case LT_HTMLPREAMBLE:
+ htmlpreamble_ = from_utf8(lex.getLongString("EndPreamble"));
+ break;
}
}
}
-docstring const & Layout::name() const
-{
- return name_;
-}
+namespace {
-
-void Layout::setName(docstring const & name)
-{
- name_ = name;
-}
-
-
-docstring const & Layout::obsoleted_by() const
+docstring const i18npreamble(Language const * lang, docstring const & templ)
{
- return obsoleted_by_;
-}
+ if (templ.empty())
+ return templ;
+ string preamble = subst(to_utf8(templ), "$$lang", lang->babel());
-docstring const & Layout::depends_on() const
-{
- return depends_on_;
-}
-
-
-docstring const Layout::i18npreamble(Language const * lang) const
-{
- if (i18npreamble_.empty())
- return i18npreamble_;
- string preamble = subst(to_utf8(i18npreamble_), "$$lang",
- lang->babel());
#ifdef TEX2LYX
// tex2lyx does not have getMessages()
LASSERT(false, /**/);
return from_utf8(preamble);
}
+}
+
+
+docstring const Layout::langpreamble(Language const * lang) const
+{
+ return i18npreamble(lang, langpreamble_);
+}
+
+
+docstring const Layout::babelpreamble(Language const * lang) const
+{
+ return i18npreamble(lang, babelpreamble_);
+}
+
bool Layout::operator==(Layout const & rhs) const
{