// You should also run the development/tools/updatelayouts.py script,
// to update the format of all of our layout files.
//
-int const LAYOUT_FORMAT = 62; //spitz PassThru for arguments.
+int const LAYOUT_FORMAT = 63; //spitz: new tags CiteFramework, MaxCiteNames, extended InsetCite syntax.
// Layout format for the current lyx file format. Controls which format is
outputType_(LATEX), outputFormat_("latex"),
defaultfont_(sane_font),
titletype_(TITLE_COMMAND_AFTER), titlename_("maketitle"),
- min_toclevel_(0), max_toclevel_(0),
+ min_toclevel_(0), max_toclevel_(0), maxcitenames_(2),
cite_full_author_list_(true)
{
}
TC_CITEENGINETYPE,
TC_CITEFORMAT,
TC_CITEFRAMEWORK,
+ TC_MAXCITENAMES,
TC_DEFAULTBIBLIO,
TC_FULLAUTHORLIST,
TC_OUTLINERNAME
{ "input", TC_INPUT },
{ "insetlayout", TC_INSETLAYOUT },
{ "leftmargin", TC_LEFTMARGIN },
+ { "maxcitenames", TC_MAXCITENAMES },
{ "modifystyle", TC_MODIFYSTYLE },
{ "nocounter", TC_NOCOUNTER },
{ "nofloat", TC_NOFLOAT },
case TC_INPUT: // Include file
if (lexrc.next()) {
+ FileName tmp;
string const inc = lexrc.getString();
- FileName tmp = libFileSearch("layouts", inc,
+ if (!path().empty() && (prefixIs(inc, "./") ||
+ prefixIs(inc, "../")))
+ tmp = fileSearch(path(), inc, "layout");
+ else
+ tmp = libFileSearch("layouts", inc,
"layout");
if (tmp.empty()) {
// Either way, we just scan the rest and discard it
else {
Layout lay;
- // false positive from coverity
- // coverity[CHECKED_RETURN]
- readStyle(lexrc, lay);
+ // signal to coverity that we do not care about the result
+ (void)readStyle(lexrc, lay);
}
break;
}
citeframework_ = rtrim(lexrc.getString());
break;
+ case TC_MAXCITENAMES:
+ lexrc.next();
+ maxcitenames_ = size_t(lexrc.getInteger());
+ break;
+
case TC_DEFAULTBIBLIO:
if (lexrc.next()) {
vector<string> const dbs =
vector<string>::const_iterator it = dbs.begin();
vector<string>::const_iterator end = dbs.end();
for (; it != end; ++it) {
- if (!contains(*it, ':'))
- cite_default_biblio_style_[opt_enginetype_] = *it;
- else {
+ if (!contains(*it, ':')) {
+ vector<string> const enginetypes =
+ getVectorFromString(opt_enginetype_, "|");
+ for (string const &s: enginetypes)
+ cite_default_biblio_style_[s] = *it;
+ } else {
string eng;
string const db = split(*it, eng, ':');
cite_default_biblio_style_[eng] = db;
latex_cmd += ichar;
else if (mode == StarDesc)
stardesc += ichar;
+ else if (ichar == '$')
+ cs.hasQualifiedList = true;
else if (ichar == '*')
cs.hasStarredVersion = true;
else if (ichar == '[' && cs.textAfter)
}
-docstring TextClass::outlinerName(std::string const & type) const
-{
- std::map<std::string,docstring>::const_iterator const it
- = outliner_names_.find(type);
- if (it == outliner_names_.end()) {
- LYXERR0("Missing OutlinerName for " << type << "!");
- return from_utf8(type);
- } else
- return it->second;
-}
-
-
string const & TextClass::prerequisites(string const & sep) const
{
if (contains(prerequisites_, ',')) {
}
-string const & DocumentClass::getCiteFormat(CiteEngineType const & type,
- string const & entry, string const & fallback) const
+string const DocumentClass::getCiteFormat(CiteEngineType const & type,
+ string const & entry, bool const punct, string const & fallback) const
{
- static string default_format = "{%author%[[%author%, ]][[{%editor%[[%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 += ".";
map<CiteEngineType, map<string, string> >::const_iterator itype = cite_formats_.find(type);
if (itype == cite_formats_.end())
it = itype->second.find(fallback);
if (it == itype->second.end())
return default_format;
+ if (punct)
+ return it->second + ".";
return it->second;
}