commit 3e6a1eecc5f64997a1f211b56257493051da0a90 Author: Juergen Spitzmueller <sp...@lyx.org> Date: Sun Mar 4 16:45:37 2018 +0100
tex2lyx: consider options passed via \PassOptionsToPackage (cherry picked from commit 476401a76f8bdb3dd2c2a482b2088f00dbe501d9) --- src/tex2lyx/Preamble.cpp | 17 +++++++++++++++++ src/tex2lyx/Preamble.h | 2 ++ status.23x | 2 ++ 3 files changed, 21 insertions(+), 0 deletions(-) diff --git a/src/tex2lyx/Preamble.cpp b/src/tex2lyx/Preamble.cpp index fe722f4..1cff58d 100644 --- a/src/tex2lyx/Preamble.cpp +++ b/src/tex2lyx/Preamble.cpp @@ -418,6 +418,15 @@ void Preamble::add_package(string const & name, vector<string> & options) if (used_packages.find(name) == used_packages.end()) used_packages[name] = split_options(h_options); + // Insert options passed via PassOptionsToPackage + for (auto const & p : extra_package_options_) { + if (p.first == name) { + vector<string> eo = getVectorFromString(p.second); + for (auto const & eoi : eo) + options.push_back(eoi); + } + + } vector<string> & v = used_packages[name]; v.insert(v.end(), options.begin(), options.end()); if (name == "jurabib") { @@ -1033,6 +1042,8 @@ void Preamble::handle_package(Parser &p, string const & name, options.erase(it); } } + if (!options.empty()) + h_biblio_options = join(options, ","); } else if (name == "jurabib") { @@ -1407,6 +1418,12 @@ void Preamble::parse(Parser & p, string const & forceclass, h_preamble << t.asInput(); } + else if (t.cs() == "PassOptionsToPackage") { + string const poptions = p.getArg('{', '}'); + string const package = p.verbatim_item(); + extra_package_options_.insert(make_pair(package, poptions)); + } + else if (t.cs() == "pagestyle") h_paperpagestyle = p.verbatim_item(); diff --git a/src/tex2lyx/Preamble.h b/src/tex2lyx/Preamble.h index 5dcc671..288dd87 100644 --- a/src/tex2lyx/Preamble.h +++ b/src/tex2lyx/Preamble.h @@ -241,6 +241,8 @@ private: AuthorList authors_; /// special table column types std::map<char, int> special_columns_; + /// + std::map<std::string, std::string> extra_package_options_; }; diff --git a/status.23x b/status.23x index cff2cb4..d8efc4f 100644 --- a/status.23x +++ b/status.23x @@ -99,6 +99,8 @@ What's new - Import straight quotations marks (e.g. babel shorthands) as ERT (bug 75). +- Consider options passed via \PassOptionsToPackage. + * ADVANCED FIND AND REPLACE