- // text before the citation
- string before;
- // text after the citation
- string after;
- get_cite_arguments(p, true, before, after);
-
- // These use natbib cmd names in LyX
- // for inter-citeengine compativility
- if (command == "citeyear")
- command = "citebyear";
- else if (command == "cite*")
- command = "citeyear";
- else if (command == "textcite")
- command = "citet";
- else if (command == "Textcite")
- command = "Citet";
- else if (command == "parencite")
- command = "citep";
- else if (command == "Parencite")
- command = "Citep";
- else if (command == "parencite*")
- command = "citeyearpar";
- else if (command == "smartcite")
- command = "footcite";
- else if (command == "Smartcite")
- command = "Footcite";
-
- if (before.empty() && after == "[]")
- // avoid \cite[]{a}
- after.erase();
- else if (before == "[]" && after == "[]") {
- // avoid \cite[][]{a}
- before.erase();
- after.erase();
- }
- // remove the brackets around after and before
- if (!after.empty()) {
- after.erase(0, 1);
- after.erase(after.length() - 1, 1);
- after = convert_command_inset_arg(after);
- }
- if (!before.empty()) {
- before.erase(0, 1);
- before.erase(before.length() - 1, 1);
- before = convert_command_inset_arg(before);
- }
- begin_command_inset(os, "citation", command);
- os << "after " << '"' << after << '"' << "\n";
- os << "before " << '"' << before << '"' << "\n";
- os << "key \""
- << convert_command_inset_arg(p.verbatim_item())
- << "\"\n"
- << "literal \"true\"\n";
- end_inset(os);
- // Need to set the cite engine if biblatex is loaded by
- // the document class directly
- if (preamble.citeEngine() == "basic")
- preamble.citeEngine("biblatex");
- }
-
- else if (use_biblatex_natbib
- && (is_known(t.cs(), known_biblatex_commands)
- || is_known(t.cs(), known_natbib_commands))
- && ((t.cs() == "cite" || t.cs() == "citet" || t.cs() == "Citet"
- || t.cs() == "citep" || t.cs() == "Citep" || t.cs() == "citealt"
- || t.cs() == "Citealt" || t.cs() == "citealp" || t.cs() == "Citealp"
- || t.cs() == "citeauthor" || t.cs() == "Citeauthor"
- || t.cs() == "parencite" || t.cs() == "citetitle")
- || p.next_token().asInput() != "*")) {
- context.check_layout(os);
- string command = t.cs();
- if (p.next_token().asInput() == "*") {
- command += '*';
- p.get_token();
- }