]> git.lyx.org Git - features.git/commitdiff
"AsBabelOptions" no longer required. Part2.
authorGünter Milde <milde@lyx.org>
Sat, 27 Apr 2019 10:36:51 +0000 (12:36 +0200)
committerJean-Marc Lasgouttes <lasgouttes@lyx.org>
Thu, 18 Jun 2020 13:48:27 +0000 (15:48 +0200)
AsBabelOptions was introduced 2010 in [cc5dd37a2a05/lyxgit].

Since the re-orgianization and opening of the Babel package to
"contributed" language definitions in March 2013, it is no longer required.

Clean up after Part 1 [1361f1a45f23/lyxgit].

lib/languages
src/BufferParams.cpp
src/LaTeXFeatures.cpp
src/LaTeXFeatures.h
src/Language.cpp
src/Language.h

index ea8a7c77fa09fbf2095650ae6360ae4c08d3b188..3358366a4ffe2ea13b8badfb6ca0d83d6c35298e 100644 (file)
@@ -17,7 +17,6 @@
 #      FontEncoding       <font encoding|font encoding|...>
 #      InternalEncoding   <true|false>
 #      RTL                <true|false>
-#      AsBabelOptions     <true|false>
 #      LangCode           <language_code>
 #      LangVariety        <language_variety>
 #      PreBabelPreamble
 #   If True, LyX takes care for characters/macros that do not exist in
 #   some font encodings ("<", ">", "|" and straight quote).
 #   It is not required for standard encodings like T2A. See bug #5091.
-# * AsBabelOptions advices LyX to pass the languages locally to babel, not
-#   globally to the class. In the old days, some languages (basically those
-#   not natively supported by babel) needed this.
-#   FIXME: in this case, we might still need to pass the other languages
-#          globally, for the use of other packages (such as varioref).
 # * LangCode is also used for spellchecking and thesaurus, where the
 #   dictionaries are named accordingly. Thus, check this when introducing/
 #   changing language codes (especially aspell, thesaurus).
@@ -781,10 +775,14 @@ Language hebrew
        QuoteStyle       english
        InternalEncoding true
        # babel-hebrew expects the encoding for *other* languages last:
-       # FontEncoding    HE8
-       # Define the font encoding the babel-hebrew way and
+       # FontEncoding    HE8|LHE
+       ## Use font encoding HE8 if the Culmus fonts are installed and
        # work around too simple test for article-like classes in rlbabel.def.
        PreBabelPreamble
+         %\IfFileExists{he8david.fd}{%
+         %  \providecommand{\HeblatexEncoding}{HE8}
+         %  \providecommand{\HeblatexEncodingFile}{he8enc}%
+         %}{}
          \providecommand{\l@chapter}{\relax}
        EndPreBabelPreamble
        DateFormats      "d MMMM yyyy|d MMM yyyy|dd/MM/yyyy"
index fb176b95f68fc4a9bf61d51cbcc0bcae4650c1c2..8478f8c3564f7542e4524e8056d99ebce76b0573 100644 (file)
@@ -1719,8 +1719,7 @@ bool BufferParams::writeLaTeX(otexstream & os, LaTeXFeatures & features,
                                language_options << ',';
                        language_options << language->babel();
                }
-               if (global && !features.needBabelLangOptions()
-                   && !language_options.str().empty())
+               if (global && !language_options.str().empty())
                        clsoptions << language_options.str() << ',';
        }
 
@@ -1802,8 +1801,8 @@ bool BufferParams::writeLaTeX(otexstream & os, LaTeXFeatures & features,
        if (features.mustProvide("pmboxdraw"))
                os << "\\usepackage{pmboxdraw}\n";
        
-       // FIXME: With Thai as document or secondary language, we must load babel
-       // before inputenc (see lib/languages).
+       // FIXME: In any document containing text in Thai language, 
+       // we must load babel before inputenc (see lib/languages).
        // handle inputenc etc.
        writeEncodingPreamble(os, features);
 
@@ -2090,7 +2089,7 @@ bool BufferParams::writeLaTeX(otexstream & os, LaTeXFeatures & features,
                        os << features.getBabelPresettings();
                        // FIXME UNICODE
                        os << from_utf8(babelCall(language_options.str(),
-                                                 features.needBabelLangOptions())) + '\n';
+                                                                         !lyxrc.language_global_options)) + '\n';
                        os << features.getBabelPostsettings();
        }
 
@@ -2286,7 +2285,7 @@ bool BufferParams::writeLaTeX(otexstream & os, LaTeXFeatures & features,
                os << features.getBabelPresettings();
                // FIXME UNICODE
                os << from_utf8(babelCall(language_options.str(),
-                                         features.needBabelLangOptions())) + '\n';
+                                         !lyxrc.language_global_options)) + '\n';
                os << features.getBabelPostsettings();
        }
        if (features.isRequired("bicaption"))
@@ -3215,8 +3214,7 @@ string BufferParams::babelCall(string const & lang_opts, bool const langoptions)
        // other languages are used (lang_opts is then empty)
        if (lang_opts.empty())
                return string();
-       // either a specific language (AsBabelOptions setting in
-       // lib/languages) or the prefs require the languages to
+       // The prefs may require the languages to
        // be submitted to babel itself (not the class).
        if (langoptions)
                return "\\usepackage[" + lang_opts + "]{babel}";
index b706cec17020df52b211ef3eecc66c209503b1c3..827b44992fba64cc526bdf47432a4dd1579369ff 100644 (file)
@@ -1603,21 +1603,6 @@ docstring const LaTeXFeatures::getBabelPostsettings() const
 }
 
 
-bool LaTeXFeatures::needBabelLangOptions() const
-{
-       if (!lyxrc.language_global_options || params_.language->asBabelOptions())
-               return true;
-
-       LanguageList::const_iterator it  = UsedLanguages_.begin();
-       LanguageList::const_iterator end = UsedLanguages_.end();
-       for (; it != end; ++it)
-               if ((*it)->asBabelOptions())
-                       return true;
-
-       return false;
-}
-
-
 string const LaTeXFeatures::loadAMSPackages() const
 {
        ostringstream tmp;
index 864efeee4ae15f9204a203a53b2a8e7dd8f46a58..a902c4a7b24ee6f7f3999252cc63d4eec62c31b7 100644 (file)
@@ -66,8 +66,6 @@ public:
        docstring const getBabelPresettings() const;
        /// Extra preamble code after babel is called
        docstring const getBabelPostsettings() const;
-       /// Do we need to pass the languages to babel directly?
-       bool needBabelLangOptions() const;
        /// Load AMS packages when appropriate
        std::string const loadAMSPackages() const;
        /// The definitions needed by the document's textclass
index 12c79a04193fa8964c7c3b69b1d0a25eb348d3eb..24e5cd7482a5cdb3f6caab524067f49d4b30251b 100644 (file)
@@ -114,8 +114,7 @@ string Language::dateFormat(size_t i) const
 bool Language::readLanguage(Lexer & lex)
 {
        enum LanguageTags {
-               LA_AS_BABELOPTS = 1,
-               LA_BABELNAME,
+               LA_BABELNAME = 1,
                LA_DATEFORMATS,
                LA_ENCODING,
                LA_END,
@@ -137,7 +136,6 @@ bool Language::readLanguage(Lexer & lex)
 
        // Keep these sorted alphabetically!
        LexerKeyword languageTags[] = {
-               { "asbabeloptions",       LA_AS_BABELOPTS },
                { "babelname",            LA_BABELNAME },
                { "dateformats",          LA_DATEFORMATS },
                { "encoding",             LA_ENCODING },
@@ -181,9 +179,6 @@ bool Language::readLanguage(Lexer & lex)
                case LA_END: // end of structure
                        finished = true;
                        break;
-               case LA_AS_BABELOPTS:
-                       lex >> as_babel_options_;
-                       break;
                case LA_BABELNAME:
                        lex >> babel_;
                        break;
@@ -254,7 +249,6 @@ bool Language::readLanguage(Lexer & lex)
 
 bool Language::read(Lexer & lex)
 {
-       as_babel_options_ = 0;
        encoding_ = 0;
        internal_enc_ = 0;
        rightToLeft_ = 0;
index 85df29d8d98a9700e2e6d116d90e7729e4e82c14..1dabbacaec4c011e44093c1d09f37ea54b9fcf03 100644 (file)
@@ -36,7 +36,7 @@ class Language {
 public:
        ///
        Language() : rightToLeft_(false), encoding_(0), internal_enc_(false),
-                                as_babel_options_(false), has_gui_support_(false) {}
+                                has_gui_support_(false) {}
        /// LyX language name
        std::string const lang() const { return lang_; }
        /// Babel language name
@@ -88,8 +88,6 @@ public:
        std::string fontenc(BufferParams const &) const;
        /// Return the localized date formats (long, medium, short format)
        std::string dateFormat(size_t i) const;
-       /// This language needs to be passed to babel itself (not the class)
-       bool asBabelOptions() const { return as_babel_options_; }
        /// This language corresponds to a translation of the GUI
        bool hasGuiSupport() const { return has_gui_support_; }
        ///