mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-22 10:00:33 +00:00
tex2lyx: support for bibencoding argument of \addbibresource
This commit is contained in:
parent
f75b081551
commit
035d539964
@ -1752,7 +1752,28 @@ void Preamble::parse(Parser & p, string const & forceclass,
|
||||
}
|
||||
|
||||
if (t.cs() == "addbibresource") {
|
||||
biblatex_bibliographies.push_back(removeExtension(p.getArg('{', '}')));
|
||||
string const options = p.getArg('[', ']');
|
||||
string const arg = removeExtension(p.getArg('{', '}'));
|
||||
if (!options.empty()) {
|
||||
// check if the option contains a bibencoding, if yes, extract it
|
||||
string::size_type pos = options.find("bibencoding=");
|
||||
string encoding;
|
||||
if (pos != string::npos) {
|
||||
string::size_type i = options.find(',', pos);
|
||||
if (i == string::npos)
|
||||
encoding = options.substr(pos + 1);
|
||||
else
|
||||
encoding = options.substr(pos, i - pos);
|
||||
pos = encoding.find('=');
|
||||
if (pos == string::npos)
|
||||
encoding.clear();
|
||||
else
|
||||
encoding = encoding.substr(pos + 1);
|
||||
}
|
||||
if (!encoding.empty())
|
||||
biblatex_encodings.push_back(normalize_filename(arg) + ' ' + encoding);
|
||||
}
|
||||
biblatex_bibliographies.push_back(arg);
|
||||
continue;
|
||||
}
|
||||
|
||||
|
@ -113,6 +113,8 @@ public:
|
||||
///
|
||||
std::vector<std::string> biblatex_bibliographies;
|
||||
///
|
||||
std::vector<std::string> biblatex_encodings;
|
||||
///
|
||||
std::string bibencoding;
|
||||
///
|
||||
std::string docencoding;
|
||||
|
@ -5344,6 +5344,14 @@ void parse_text(Parser & p, ostream & os, unsigned flags, bool outer,
|
||||
} else
|
||||
os << "encoding " << '"' << enc->name() << '"' << "\n";
|
||||
}
|
||||
string bibfileencs;
|
||||
for (auto const & bf : preamble.biblatex_encodings) {
|
||||
if (!bibfileencs.empty())
|
||||
bibfileencs += "\t";
|
||||
bibfileencs += bf;
|
||||
}
|
||||
if (!bibfileencs.empty())
|
||||
os << "file_encodings " << '"' << bibfileencs << '"' << "\n";
|
||||
end_inset(os);
|
||||
need_commentbib = false;
|
||||
continue;
|
||||
@ -6209,6 +6217,14 @@ void check_comment_bib(ostream & os, Context & context)
|
||||
}
|
||||
if (!bibfiles.empty())
|
||||
os << "bibfiles " << '"' << bibfiles << '"' << "\n";
|
||||
string bibfileencs;
|
||||
for (auto const & bf : preamble.biblatex_encodings) {
|
||||
if (!bibfileencs.empty())
|
||||
bibfileencs += "\t";
|
||||
bibfileencs += bf;
|
||||
}
|
||||
if (!bibfileencs.empty())
|
||||
os << "file_encodings " << '"' << bibfileencs << '"' << "\n";
|
||||
end_inset(os);// Bibtex
|
||||
os << "\\end_layout\n";
|
||||
end_inset(os);// Note
|
||||
|
Loading…
Reference in New Issue
Block a user