commit c349472d35bc13c17fd9c7f9dfe6c1b3694bdcb4
Author: Günter Milde <[email protected]>
Date: Sat Apr 27 12:36:51 2019 +0200
"AsBabelOptions" no longer required. Part2.
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 | 14 ++++++--------
src/BufferParams.cpp | 14 ++++++--------
src/LaTeXFeatures.cpp | 15 ---------------
src/LaTeXFeatures.h | 2 --
src/Language.cpp | 8 +-------
src/Language.h | 4 +---
6 files changed, 14 insertions(+), 43 deletions(-)
diff --git a/lib/languages b/lib/languages
index ea8a7c7..3358366 100644
--- a/lib/languages
+++ b/lib/languages
@@ -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
@@ -101,11 +100,6 @@
# 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"
diff --git a/src/BufferParams.cpp b/src/BufferParams.cpp
index fb176b9..8478f8c 100644
--- a/src/BufferParams.cpp
+++ b/src/BufferParams.cpp
@@ -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}";
diff --git a/src/LaTeXFeatures.cpp b/src/LaTeXFeatures.cpp
index b706cec..827b449 100644
--- a/src/LaTeXFeatures.cpp
+++ b/src/LaTeXFeatures.cpp
@@ -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;
diff --git a/src/LaTeXFeatures.h b/src/LaTeXFeatures.h
index 864efee..a902c4a 100644
--- a/src/LaTeXFeatures.h
+++ b/src/LaTeXFeatures.h
@@ -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
diff --git a/src/Language.cpp b/src/Language.cpp
index 12c79a0..24e5cd7 100644
--- a/src/Language.cpp
+++ b/src/Language.cpp
@@ -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;
diff --git a/src/Language.h b/src/Language.h
index 85df29d..1dabbac 100644
--- a/src/Language.h
+++ b/src/Language.h
@@ -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_; }
///