// development/tools/updatelayouts.sh script, to update the format of
// all of our layout files.
//
-int const LAYOUT_FORMAT = 45; // rgh: New Tag "NoInsetLayout"
+int const LAYOUT_FORMAT = 49; //gb: change default of ResetsFont
namespace {
TC_HTMLSTYLES,
TC_PROVIDES,
TC_REQUIRES,
+ TC_PKGOPTS,
TC_LEFTMARGIN,
TC_RIGHTMARGIN,
TC_FLOAT,
TC_CITEENGINETYPE,
TC_CITEFORMAT,
TC_DEFAULTBIBLIO,
- TC_FULLAUTHORLIST,
+ TC_FULLAUTHORLIST
};
{ "nostyle", TC_NOSTYLE },
{ "outputformat", TC_OUTPUTFORMAT },
{ "outputtype", TC_OUTPUTTYPE },
+ { "packageoptions", TC_PKGOPTS },
{ "pagestyle", TC_PAGESTYLE },
{ "preamble", TC_PREAMBLE },
{ "provides", TC_PROVIDES },
break;
}
+ case TC_PKGOPTS : {
+ lexrc.next();
+ string const pkg = lexrc.getString();
+ lexrc.next();
+ string const options = lexrc.getString();
+ package_options_[pkg] = options;
+ break;
+ }
+
case TC_DEFAULTMODULE: {
lexrc.next();
string const module = lexrc.getString();
cite_styles_[ENGINE_TYPE_AUTHORYEAR].clear();
if (type & ENGINE_TYPE_NUMERICAL)
cite_styles_[ENGINE_TYPE_NUMERICAL].clear();
+ if (type & ENGINE_TYPE_DEFAULT)
+ cite_styles_[ENGINE_TYPE_DEFAULT].clear();
string def;
bool getout = false;
while (!getout && lexrc.isOK()) {
cite_styles_[ENGINE_TYPE_AUTHORYEAR].push_back(cs);
if (type & ENGINE_TYPE_NUMERICAL)
cite_styles_[ENGINE_TYPE_NUMERICAL].push_back(cs);
+ if (type & ENGINE_TYPE_DEFAULT)
+ cite_styles_[ENGINE_TYPE_DEFAULT].push_back(cs);
}
return getout;
}
int TextClass::readCiteEngineType(Lexer & lexrc) const
{
- int const ENGINE_TYPE_DEFAULT =
- ENGINE_TYPE_AUTHORYEAR | ENGINE_TYPE_NUMERICAL;
+ LATTEST(ENGINE_TYPE_DEFAULT ==
+ (ENGINE_TYPE_AUTHORYEAR | ENGINE_TYPE_NUMERICAL));
if (!lexrc.next()) {
lexrc.printError("No cite engine type given for token: `$$Token'.");
return ENGINE_TYPE_DEFAULT;
cite_macros_[ENGINE_TYPE_AUTHORYEAR][etype] = definition;
if (type & ENGINE_TYPE_NUMERICAL)
cite_macros_[ENGINE_TYPE_NUMERICAL][etype] = definition;
+ if (type & ENGINE_TYPE_DEFAULT)
+ cite_macros_[ENGINE_TYPE_DEFAULT][etype] = definition;
} else {
if (type & ENGINE_TYPE_AUTHORYEAR)
cite_formats_[ENGINE_TYPE_AUTHORYEAR][etype] = definition;
if (type & ENGINE_TYPE_NUMERICAL)
cite_formats_[ENGINE_TYPE_NUMERICAL][etype] = definition;
+ if (type & ENGINE_TYPE_DEFAULT)
+ cite_formats_[ENGINE_TYPE_DEFAULT][etype] = definition;
}
}
return true;
}
+string DocumentClass::forcedLayouts() const
+{
+ ostringstream os;
+ bool first = true;
+ const_iterator const e = end();
+ for (const_iterator i = begin(); i != e; ++i) {
+ if (i->forcelocal > 0) {
+ if (first) {
+ os << "Format " << LAYOUT_FORMAT << '\n';
+ first = false;
+ }
+ i->write(os);
+ }
+ }
+ return os.str();
+}
+
+
InsetLayout const & DocumentClass::insetLayout(docstring const & name) const
{
// FIXME The fix for the InsetLayout part of 4812 would be here:
DocumentClassPtr getDocumentClass(
- LayoutFile const & baseClass, LayoutModuleList const & modlist)
+ LayoutFile const & baseClass, LayoutModuleList const & modlist,
+ bool const clone)
{
DocumentClassPtr doc_class =
DocumentClassPtr(new DocumentClass(baseClass));
"this document but has not been found in the list of\n"
"available modules. If you recently installed it, you\n"
"probably need to reconfigure LyX.\n"), from_utf8(modName));
- frontend::Alert::warning(_("Module not available"), msg);
+ if (!clone)
+ frontend::Alert::warning(_("Module not available"), msg);
continue;
}
- if (!lm->isAvailable()) {
+ if (!lm->isAvailable() && !clone) {
docstring const prereqs = from_utf8(getStringFromVector(lm->prerequisites(), "\n\t"));
docstring const msg =
bformat(_("The module %1$s requires a package that is not\n"