X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FLaTeXFeatures.cpp;h=3d67128f58069129dc7ed13364339a6e55971729;hb=a8572c1358d5d2e66612e9f44329a6ffd33516a6;hp=a1190e0618ccd5b5d1ed4f456a9fe74209a8e0e8;hpb=62af7ee772f16f154225d2d0b65d77f4376b6001;p=lyx.git diff --git a/src/LaTeXFeatures.cpp b/src/LaTeXFeatures.cpp index a1190e0618..3d67128f58 100644 --- a/src/LaTeXFeatures.cpp +++ b/src/LaTeXFeatures.cpp @@ -880,7 +880,7 @@ void LaTeXFeatures::useFloat(string const & name, bool subfloat) require("float"); if (!fl.required().empty()) { vector reqs = getVectorFromString(fl.required()); - for (auto const req : reqs) + for (auto const & req : reqs) require(req); } } @@ -924,11 +924,9 @@ bool LaTeXFeatures::hasOnlyPolyglossiaLanguages() const if (params_.language->polyglossia().empty()) return false; // now the secondary languages - LanguageList::const_iterator const begin = UsedLanguages_.begin(); - for (LanguageList::const_iterator cit = begin; - cit != UsedLanguages_.end(); - ++cit) { - if ((*cit)->polyglossia().empty()) + for (auto const & lang : UsedLanguages_) + { + if (lang->polyglossia().empty()) return false; } return true; @@ -941,11 +939,9 @@ bool LaTeXFeatures::hasPolyglossiaExclusiveLanguages() const if (params_.language->isPolyglossiaExclusive()) return true; // now the secondary languages - LanguageList::const_iterator const begin = UsedLanguages_.begin(); - for (LanguageList::const_iterator cit = begin; - cit != UsedLanguages_.end(); - ++cit) { - if ((*cit)->isPolyglossiaExclusive()) + for (auto const & lang : UsedLanguages_) + { + if (lang->isPolyglossiaExclusive()) return true; } return false; @@ -959,12 +955,10 @@ vector LaTeXFeatures::getPolyglossiaExclusiveLanguages() const if (params_.language->isPolyglossiaExclusive()) result.push_back(params_.language->display()); // now the secondary languages - LanguageList::const_iterator const begin = UsedLanguages_.begin(); - for (LanguageList::const_iterator cit = begin; - cit != UsedLanguages_.end(); - ++cit) { - if ((*cit)->isPolyglossiaExclusive()) - result.push_back((*cit)->display()); + for (auto const & lang : UsedLanguages_) + { + if (lang->isPolyglossiaExclusive()) + result.push_back(lang->display()); } return result; } @@ -977,12 +971,10 @@ vector LaTeXFeatures::getBabelExclusiveLanguages() const if (params_.language->isBabelExclusive()) result.push_back(params_.language->display()); // now the secondary languages - LanguageList::const_iterator const begin = UsedLanguages_.begin(); - for (LanguageList::const_iterator cit = begin; - cit != UsedLanguages_.end(); - ++cit) { - if ((*cit)->isBabelExclusive()) - result.push_back((*cit)->display()); + for (auto const & lang : UsedLanguages_) + { + if (lang->isBabelExclusive()) + result.push_back(lang->display()); } return result; } @@ -990,22 +982,19 @@ vector LaTeXFeatures::getBabelExclusiveLanguages() const string LaTeXFeatures::getBabelLanguages() const { - ostringstream langs; - - bool first = true; - LanguageList::const_iterator const begin = UsedLanguages_.begin(); - for (LanguageList::const_iterator cit = begin; - cit != UsedLanguages_.end(); - ++cit) { - if ((*cit)->babel().empty()) - continue; - if (!first) - langs << ','; - else - first = false; - langs << (*cit)->babel(); + vector blangs; + for (auto const & lang : UsedLanguages_) { + if (!lang->babel().empty()) + blangs.push_back(lang->babel()); } - return langs.str(); + + // Sort alphabetically to assure consistent order + // (the order itself does not matter apart from + // some exceptions, e.g. hebrew must come after + // arabic and farsi) + sort(blangs.begin(), blangs.end()); + + return getStringFromVector(blangs); } @@ -1013,13 +1002,9 @@ set LaTeXFeatures::getPolyglossiaLanguages() const { set langs; - LanguageList::const_iterator const begin = UsedLanguages_.begin(); - for (LanguageList::const_iterator cit = begin; - cit != UsedLanguages_.end(); - ++cit) { + for (auto const & lang : UsedLanguages_) // We do not need the variants here - langs.insert((*cit)->polyglossia()); - } + langs.insert(lang->polyglossia()); return langs; } @@ -1030,10 +1015,8 @@ string LaTeXFeatures::getActiveChars() const // first the main language res += params_.language->activeChars(); // now the secondary languages - LanguageList::const_iterator const begin = UsedLanguages_.begin(); - for (LanguageList::const_iterator cit = begin; - cit != UsedLanguages_.end(); ++cit) - res += ((*cit)->activeChars()); + for (auto const & lang : UsedLanguages_) + res += (lang->activeChars()); return res; } @@ -1065,7 +1048,8 @@ void LaTeXFeatures::getFontEncodings(vector & encs, bool const onlylangs encs.insert(encs.begin(), "T2A"); } - for (auto const & lang : UsedLanguages_) { + for (auto const & lang : UsedLanguages_) + { vector extraencs = getVectorFromString(lang->fontenc(buffer().masterParams())); for (auto const & extra : extraencs) { @@ -1150,7 +1134,6 @@ char const * simplefeatures[] = { "todonotes", "forest", "varwidth", - "tablefootnote", "afterpage", "tabularx", "tikz", @@ -1159,7 +1142,8 @@ char const * simplefeatures[] = { "xskak", "pict2e", "drs", - "environ" + "environ", + "dsfont" }; char const * bibliofeatures[] = { @@ -1396,6 +1380,9 @@ string const LaTeXFeatures::getPackages() const packages << "\\usepackage{rotating}\n"; if (mustProvide("rotfloat")) packages << "\\usepackage{rotfloat}\n"; + // and this must be loaded after rotating + if (mustProvide("tablefootnote")) + packages << "\\usepackage{tablefootnote}\n"; // lyxskak.sty --- newer chess support based on skak.sty if (mustProvide("chess")) @@ -1732,11 +1719,11 @@ TexString LaTeXFeatures::getMacros() const if (mustProvide("ct-xcolor-ulem")) { streamsize const prec = macros.os().precision(2); - RGBColor cadd = rgbFromHexName(lcolor.getX11Name(Color_addedtext)); + RGBColor cadd = rgbFromHexName(lcolor.getX11HexName(Color_addedtext)); macros << "\\providecolor{lyxadded}{rgb}{" << cadd.r / 255.0 << ',' << cadd.g / 255.0 << ',' << cadd.b / 255.0 << "}\n"; - RGBColor cdel = rgbFromHexName(lcolor.getX11Name(Color_deletedtext)); + RGBColor cdel = rgbFromHexName(lcolor.getX11HexName(Color_deletedtext)); macros << "\\providecolor{lyxdeleted}{rgb}{" << cdel.r / 255.0 << ',' << cdel.g / 255.0 << ',' << cdel.b / 255.0 << "}\n"; @@ -1761,11 +1748,11 @@ TexString LaTeXFeatures::getMacros() const if (!mustProvide("ct-xcolor-ulem")) { streamsize const prec = macros.os().precision(2); - RGBColor cadd = rgbFromHexName(lcolor.getX11Name(Color_addedtext)); + RGBColor cadd = rgbFromHexName(lcolor.getX11HexName(Color_addedtext)); macros << "\\providecolor{lyxadded}{rgb}{" << cadd.r / 255.0 << ',' << cadd.g / 255.0 << ',' << cadd.b / 255.0 << "}\n"; - RGBColor cdel = rgbFromHexName(lcolor.getX11Name(Color_deletedtext)); + RGBColor cdel = rgbFromHexName(lcolor.getX11HexName(Color_deletedtext)); macros << "\\providecolor{lyxdeleted}{rgb}{" << cdel.r / 255.0 << ',' << cdel.g / 255.0 << ',' << cdel.b / 255.0 << "}\n"; @@ -1804,7 +1791,7 @@ docstring const LaTeXFeatures::getBabelPresettings() const { odocstringstream tmp; - for (Language const * lang : UsedLanguages_) + for (auto const & lang : UsedLanguages_) if (!lang->babel_presettings().empty()) tmp << lang->babel_presettings() << '\n'; if (!params_.language->babel_presettings().empty()) @@ -1821,7 +1808,7 @@ docstring const LaTeXFeatures::getBabelPostsettings() const { odocstringstream tmp; - for (Language const * lang : UsedLanguages_) + for (auto const & lang : UsedLanguages_) if (!lang->babel_postsettings().empty()) tmp << lang->babel_postsettings() << '\n'; if (!params_.language->babel_postsettings().empty())