From b8a8d5052f88310874be5a6dbb8c5309db518638 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Uwe=20St=C3=B6hr?= Date: Fri, 28 Oct 2011 12:37:59 +0000 Subject: [PATCH] tex2lyx/preamble.cpp: fix bug #7861 and #7858 git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@40050 a592a061-630c-0410-9148-cb99ea01b6c8 --- src/tex2lyx/preamble.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/tex2lyx/preamble.cpp b/src/tex2lyx/preamble.cpp index e31a2a8252..44822ba158 100644 --- a/src/tex2lyx/preamble.cpp +++ b/src/tex2lyx/preamble.cpp @@ -552,8 +552,12 @@ void handle_package(Parser &p, string const & name, string const & opts, else if (name == "babel") { h_language_package = "default"; - // we have to do nothing if babel is loaded without any options, otherwise - // we would pollute the preamble with this call in every roundtrip + // One might think we would have to do nothing if babel is loaded + // without any options to prevent pollution of the preamble with this + // babel call in every roundtrip. + // But the user could have defined babel-specific things afterwards. So + // we need to keep it in the preamble to prevent cases like bug #7861. + h_preamble << "\\usepackage{babel}\n"; if (!opts.empty()) { // check if more than one option was used - used later for inputenc // in case inputenc is parsed before babel, set the encoding to auto @@ -566,7 +570,7 @@ void handle_package(Parser &p, string const & name, string const & opts, // last language in the documentclass options is used. handle_opt(options, known_languages, h_language); delete_opt(options, known_languages); - } + } } else if (name == "fontenc") { @@ -575,7 +579,7 @@ void handle_package(Parser &p, string const & name, string const & opts, * but this makes the document less portable, so I skip it: if (h_fontencoding == lyxrc.fontenc) h_fontencoding = "global"; - */ + */ options.clear(); } -- 2.39.2