// You should also run the development/tools/updatelayouts.py script,
// to update the format of all of our layout files.
//
-int const LAYOUT_FORMAT = 72; // spitz: TableStyle
+int const LAYOUT_FORMAT = 76; // spitz: BibInToc
// Layout format for the current lyx file format. Controls which format is
has_output_format_(false), defaultfont_(sane_font),
titletype_(TITLE_COMMAND_AFTER), titlename_("maketitle"),
min_toclevel_(0), max_toclevel_(0), maxcitenames_(2),
- cite_full_author_list_(true)
+ cite_full_author_list_(true), bibintoc_(false)
{
}
TC_DEFAULTBIBLIO,
TC_FULLAUTHORLIST,
TC_OUTLINERNAME,
- TC_TABLESTYLE
+ TC_TABLESTYLE,
+ TC_BIBINTOC
};
{ "addtohtmlpreamble", TC_ADDTOHTMLPREAMBLE },
{ "addtohtmlstyles", TC_ADDTOHTMLSTYLES },
{ "addtopreamble", TC_ADDTOPREAMBLE },
+ { "bibintoc", TC_BIBINTOC },
{ "citeengine", TC_CITEENGINE },
{ "citeenginetype", TC_CITEENGINETYPE },
{ "citeformat", TC_CITEFORMAT },
}
break;
+ case TC_BIBINTOC:
+ if (lexrc.next())
+ bibintoc_ = lexrc.getBool();
+ break;
+
case TC_FULLAUTHORLIST:
if (lexrc.next())
cite_full_author_list_ &= lexrc.getBool();
cite_command_aliases_[s] = lyx_cmd;
}
vector<string> const stardescs = getVectorFromString(stardesc, "!");
- int size = stardesc.size();
+ int size = int(stardesc.size());
if (size > 0)
cs.stardesc = stardescs[0];
if (size > 1)
// Add the styles from AddToCiteEngine to the class' styles
// (but only if they are not yet defined)
- for (auto const cis : class_cite_styles_) {
+ for (auto const & cis : class_cite_styles_) {
// Only consider the current CiteEngineType
if (!(type & cis.first))
continue;
- for (auto const ciss : cis.second) {
+ for (auto const & ciss : cis.second) {
bool defined = false;
// Check if the style "name" is already def'ed
- for (auto const av : getCiteStyles(cis.first))
+ for (auto const & av : getCiteStyles(cis.first))
if (av.name == ciss.name)
defined = true;
if (!defined) {
continue;
if (initchar == '!' || initchar == '_' || prefixIs(etype, "B_")) {
bool defined = false;
+ bool aydefined = false;
+ bool numdefined = false;
// Check if the macro is already def'ed
- for (auto const cm : cite_macros_) {
+ for (auto const & cm : cite_macros_) {
if (!(type & cm.first))
continue;
- if (cm.second.find(etype) != cm.second.end())
- defined = true;
+ if (cm.second.find(etype) != cm.second.end()) {
+ if (type == cm.first)
+ // defined as default or specific type
+ defined = true;
+ if (cm.first == ENGINE_TYPE_AUTHORYEAR)
+ // defined for author-year
+ aydefined = true;
+ else if (cm.first == ENGINE_TYPE_NUMERICAL)
+ // defined for numerical
+ numdefined = true;
+ }
}
if (!defined || overwrite) {
- if (type & ENGINE_TYPE_AUTHORYEAR)
+ if (type & ENGINE_TYPE_AUTHORYEAR && (type != ENGINE_TYPE_DEFAULT || !aydefined))
cite_macros_[ENGINE_TYPE_AUTHORYEAR][etype] = definition;
- if (type & ENGINE_TYPE_NUMERICAL)
+ if (type & ENGINE_TYPE_NUMERICAL && (type != ENGINE_TYPE_DEFAULT || !numdefined))
cite_macros_[ENGINE_TYPE_NUMERICAL][etype] = definition;
- if (type & ENGINE_TYPE_DEFAULT)
+ if (type == ENGINE_TYPE_DEFAULT)
cite_macros_[ENGINE_TYPE_DEFAULT][etype] = definition;
}
} else {
bool defined = false;
+ bool aydefined = false;
+ bool numdefined = false;
// Check if the format is already def'ed
- for (auto const cm : cite_formats_) {
+ for (auto const & cm : cite_formats_) {
if (!(type & cm.first))
continue;
- if (cm.second.find(etype) != cm.second.end())
- defined = true;
+ if (cm.second.find(etype) != cm.second.end()) {
+ if (type == cm.first)
+ // defined as default or specific type
+ defined = true;
+ if (cm.first == ENGINE_TYPE_AUTHORYEAR)
+ // defined for author-year
+ aydefined = true;
+ else if (cm.first == ENGINE_TYPE_NUMERICAL)
+ // defined for numerical
+ numdefined = true;
+ }
}
if (!defined || overwrite){
- if (type & ENGINE_TYPE_AUTHORYEAR)
+ if (type & ENGINE_TYPE_AUTHORYEAR && (type != ENGINE_TYPE_DEFAULT || !aydefined))
cite_formats_[ENGINE_TYPE_AUTHORYEAR][etype] = definition;
- if (type & ENGINE_TYPE_NUMERICAL)
+ if (type & ENGINE_TYPE_NUMERICAL && (type != ENGINE_TYPE_DEFAULT || !numdefined))
cite_formats_[ENGINE_TYPE_NUMERICAL][etype] = definition;
- if (type & ENGINE_TYPE_DEFAULT)
+ if (type == ENGINE_TYPE_DEFAULT)
cite_formats_[ENGINE_TYPE_DEFAULT][etype] = definition;
}
}
string const DocumentClass::getCiteFormat(CiteEngineType const & type,
string const & entry, bool const punct, string const & fallback) const
{
- string default_format = "{%fullnames:author%[[%fullnames:author%, ]][[{%fullnames:editor%[[%fullnames:editor%, ed., ]]}]]}\"%title%\"{%journal%[[, {!<i>!}%journal%{!</i>!}]][[{%publisher%[[, %publisher%]][[{%institution%[[, %institution%]]}]]}]]}{%year%[[ (%year%)]]}{%pages%[[, %pages%]]}";
+ string default_format = "{%fullnames:author%[[%fullnames:author%, ]][[{%fullnames:editor%[[%fullnames:editor%, ed., ]]}]]}"
+ "\"%title%\"{%journal%[[, {!<i>!}%journal%{!</i>!}]][[{%publisher%[[, %publisher%]]"
+ "[[{%institution%[[, %institution%]]}]]}]]}{%year%[[ (%year%)]]}{%pages%[[, %pages%]]}";
if (punct)
default_format += ".";