From: Juergen Spitzmueller Date: Wed, 22 Aug 2018 06:39:13 +0000 (+0200) Subject: tex2lyx: Fixes to the btUnit import X-Git-Url: https://git.lyx.org/gitweb/?a=commitdiff_plain;h=6a64fcdc1f8781b3eed28e9a787466b42bca16a0;p=features.git tex2lyx: Fixes to the btUnit import 1. Do not attempt to mix diverging btUnits (e.g., chapters and sections). 2. use parse_text to properly parse the contents. --- diff --git a/src/tex2lyx/Preamble.h b/src/tex2lyx/Preamble.h index 725bf6740e..804e5caf0c 100644 --- a/src/tex2lyx/Preamble.h +++ b/src/tex2lyx/Preamble.h @@ -82,6 +82,8 @@ public: /// void citeEngine(std::string const & e) { h_cite_engine = e; } /// + std::string multibib() const { return h_multibib; } + /// void multibib(std::string const & s) { h_multibib = s; } /// bool titleLayoutFound() const { return title_layout_found; } diff --git a/src/tex2lyx/text.cpp b/src/tex2lyx/text.cpp index c39f928f14..5bc0e996d0 100644 --- a/src/tex2lyx/text.cpp +++ b/src/tex2lyx/text.cpp @@ -1925,9 +1925,12 @@ void parse_environment(Parser & p, ostream & os, bool outer, else if (name == "btUnit") { string const nt = p.next_next_token().cs(); - if (nt == "part" || nt == "chapter" - || nt == "section" || nt == "subsection") { - active_environments.push_back("btUnit"); + // Do not attempt to overwrite a former diverging multibib. + // Those are output as ERT instead. + if ((nt == "part" || nt == "chapter" + || nt == "section" || nt == "subsection") + && (preamble.multibib().empty() || preamble.multibib() == nt)) { + parse_text(p, os, FLAG_END, outer, parent_context); preamble.multibib(nt); } else parse_unknown_environment(p, name, os, FLAG_END, outer,