+ if (!(*it)->babel_presettings().empty())
+ tmp << (*it)->babel_presettings() << '\n';
+ if (!params_.language->babel_presettings().empty())
+ tmp << params_.language->babel_presettings() << '\n';
+
+ return tmp.str();
+}
+
+
+string const LaTeXFeatures::getBabelPostsettings() const
+{
+ ostringstream tmp;
+
+ LanguageList::const_iterator it = UsedLanguages_.begin();
+ LanguageList::const_iterator end = UsedLanguages_.end();
+ for (; it != end; ++it)
+ if (!(*it)->babel_postsettings().empty())
+ tmp << (*it)->babel_postsettings() << '\n';
+ if (!params_.language->babel_postsettings().empty())
+ tmp << params_.language->babel_postsettings() << '\n';
+
+ return tmp.str();
+}
+
+
+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;
+ if (mustProvide("amsthm"))
+ tmp << "\\usepackage{amsthm}\n";
+
+ // esint is preferred for esintoramsmath
+ if ((mustProvide("amsmath")
+ && params_.use_amsmath != BufferParams::package_off)
+ || (mustProvide("esintoramsmath")
+ && params_.use_esint == BufferParams::package_off
+ && params_.use_amsmath != BufferParams::package_off)) {
+ tmp << "\\usepackage{amsmath}\n";
+ } else {
+ // amsbsy and amstext are already provided by amsmath
+ if (mustProvide("amsbsy"))
+ tmp << "\\usepackage{amsbsy}\n";
+ if (mustProvide("amstext"))
+ tmp << "\\usepackage{amstext}\n";
+ }
+
+ if (mustProvide("amssymb")
+ || params_.use_amsmath == BufferParams::package_on)
+ tmp << "\\usepackage{amssymb}\n";