From 68d48b0015065f3c3cdd1377678bca56551cc203 Mon Sep 17 00:00:00 2001 From: Juergen Spitzmueller Date: Wed, 22 Aug 2018 08:39:13 +0200 Subject: [PATCH] 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. --- src/tex2lyx/Preamble.h | 2 ++ src/tex2lyx/text.cpp | 9 ++++++--- 2 files changed, 8 insertions(+), 3 deletions(-) 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,