X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FTextClass.cpp;h=f6723ec9c2ff3c48fdf33ed91a29f7f2bceba9b2;hb=4db3e641ed6765e005343010cb90ee8af26f8f99;hp=8ebe0e32f278edb73b3f98148d8c294c8cb4efeb;hpb=7bdc34a98700f487a923ea2b3546f476b9d5d98c;p=lyx.git diff --git a/src/TextClass.cpp b/src/TextClass.cpp index 8ebe0e32f2..f6723ec9c2 100644 --- a/src/TextClass.cpp +++ b/src/TextClass.cpp @@ -61,7 +61,7 @@ namespace lyx { // development/tools/updatelayouts.sh script, to update the format of // all of our layout files. // -int const LAYOUT_FORMAT = 46; // gb: New Tag "ForceLocal" +int const LAYOUT_FORMAT = 47; //rgh: package options namespace { @@ -197,6 +197,7 @@ enum TextClassTags { TC_HTMLSTYLES, TC_PROVIDES, TC_REQUIRES, + TC_PKGOPTS, TC_LEFTMARGIN, TC_RIGHTMARGIN, TC_FLOAT, @@ -256,6 +257,7 @@ LexerKeyword textClassTags[] = { { "nostyle", TC_NOSTYLE }, { "outputformat", TC_OUTPUTFORMAT }, { "outputtype", TC_OUTPUTTYPE }, + { "packageoptions", TC_PKGOPTS }, { "pagestyle", TC_PAGESTYLE }, { "preamble", TC_PREAMBLE }, { "provides", TC_PROVIDES }, @@ -634,6 +636,15 @@ TextClass::ReturnValues TextClass::read(Lexer & lexrc, ReadType rt) 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(); @@ -962,6 +973,8 @@ bool TextClass::readCiteEngine(Lexer & lexrc) 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()) { @@ -1001,6 +1014,8 @@ bool TextClass::readCiteEngine(Lexer & lexrc) 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; } @@ -1008,8 +1023,8 @@ bool TextClass::readCiteEngine(Lexer & lexrc) 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; @@ -1050,11 +1065,15 @@ bool TextClass::readCiteFormat(Lexer & lexrc) 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;