\begin_layout Itemize
-\change_inserted -712698321 1720623254
+\change_inserted -712698321 1720682930
\begin_inset Flex Code
status collapsed
\end_inset
:
- If this is given,
- the command is specific to this (biblatex) citation style.
+ a (comma-separated) list of biblatex citation styles to which this command is specific.
E.
\begin_inset space \thinspace{}
\end_inset
\end_inset
:
- Wenn dies angegeben wird,
- wird der Befehl als spezifisch für einen (Biblatex-)Zitierstil markiert.
+ eine (kommaseparierter) Liste von (Biblatex-)Zitierstilen,
+ für die der Befehl spezifisch ist.
Mit
\begin_inset Flex Code
status collapsed
string style;
CiteStringMap csm(styles.size());
for (size_t i = 0; i != csm.size(); ++i) {
- if (!styles[i].style.empty() && styles[i].style != buf.masterParams().biblatex_citestyle)
+ bool ours = false;
+ // exclude variants that are not supported in the current style
+ for (string const & s: styles[i].styles) {
+ if (s == buf.masterParams().biblatex_citestyle) {
+ ours = true;
+ break;
+ }
+ }
+ if (!styles[i].styles.empty() && !ours)
continue;
style = styles[i].name;
csm[i] = make_pair(from_ascii(style), getLabel(keys, buf, style, ci));
std::string stardesc;
/// Optional tooltip for the starred version
std::string startooltip;
- /// Style that supports the command
- std::string style;
+ /// Styles that supports the command
+ std::vector <std::string> styles;
/// upper casing author prefixes (van -> Van)
bool forceUpperCase;
/// starred version (full author list by default)
// split off style prefix if there
if (contains(lyx_cmd, '@')) {
lyx_cmd = split(lyx_cmd, style, '@');
- cs.style = style;
+ cs.styles = getVectorFromString(style);
}
cs.name = lyx_cmd;
cs.cmd = latex_cmd.empty() ? lyx_cmd : latex_cmd;
for (int ii = 1; cit != end; ++cit, ++ii) {
docstring label = cit->second;
CitationStyle ccs = citeStyleList[ii - 1];
- if (!ccs.style.empty() && ccs.style != bp.biblatex_citestyle)
+ bool ours = false;
+ // exclude variants that are not supported in the current style
+ for (string const & s: ccs.styles) {
+ if (s == bp.biblatex_citestyle) {
+ ours = true;
+ break;
+ }
+ }
+ if (!ccs.styles.empty() && !ours)
continue;
ccs.forceUpperCase &= force;
ccs.hasStarredVersion &= star;
for (; it != end; ++it) {
CitationStyle this_cs = *it;
if (this_cs.name == normalized_input) {
- if (!this_cs.style.empty() && this_cs.style != bp.biblatex_citestyle) {
+ bool ours = false;
+ // exclude variants that are not supported in the current style
+ for (string const & s: this_cs.styles) {
+ if (s == bp.biblatex_citestyle) {
+ ours = true;
+ break;
+ }
+ }
+ if (!this_cs.styles.empty() && !ours) {
// citation not supported with current style
// reset to \cite
normalized_input = "cite";