]> git.lyx.org Git - lyx.git/blobdiff - src/BufferParams.cpp
Cmake build: Creating a define for a header file found
[lyx.git] / src / BufferParams.cpp
index 403a2cbbe1fa0d2a46ea3abb3c6f899a58053ab7..0b0965c236218925af6d655a4ef77333fe44b14a 100644 (file)
@@ -454,6 +454,8 @@ vector<string> const & BufferParams::auto_packages()
                packages.push_back("mathdots");
                packages.push_back("mathtools");
                packages.push_back("mhchem");
+               packages.push_back("stackrel");
+               packages.push_back("stmaryrd");
                packages.push_back("undertilde");
        }
        return packages;
@@ -815,10 +817,12 @@ string BufferParams::readToken(Lexer & lex, string const & token,
                lex.eatLine();
                string color = lex.getString();
                notefontcolor = lyx::rgbFromHexName(color);
+               lcolor.setColor("notefontcolor", color);
        } else if (token == "\\boxbgcolor") {
                lex.eatLine();
                string color = lex.getString();
                boxbgcolor = lyx::rgbFromHexName(color);
+               lcolor.setColor("boxbgcolor", color);
        } else if (token == "\\paperwidth") {
                lex >> paperwidth;
        } else if (token == "\\paperheight") {
@@ -1444,15 +1448,27 @@ bool BufferParams::writeLaTeX(otexstream & os, LaTeXFeatures & features,
        // XeTeX and LuaTeX (with OS fonts) work without fontenc
        if (font_encoding() != "default" && language->lang() != "japanese"
            && !useNonTeXFonts && !features.isProvided("fontenc")) {
+               docstring extra_encoding;
+               if (features.mustProvide("textgreek"))
+                       extra_encoding += from_ascii("LGR");
+               if (features.mustProvide("textcyr")) {
+                       if (!extra_encoding.empty())
+                               extra_encoding.push_back(',');
+                       extra_encoding += from_ascii("T2A");
+               }
+               if (!extra_encoding.empty() && !font_encoding().empty())
+                       extra_encoding.push_back(',');
                size_t fars = language_options.str().find("farsi");
                size_t arab = language_options.str().find("arabic");
                if (language->lang() == "arabic_arabi"
                        || language->lang() == "farsi" || fars != string::npos
                        || arab != string::npos) {
-                       os << "\\usepackage[" << from_ascii(font_encoding())
+                       os << "\\usepackage[" << extra_encoding
+                          << from_ascii(font_encoding())
                           << ",LFE,LAE]{fontenc}\n";
                } else {
-                       os << "\\usepackage[" << from_ascii(font_encoding())
+                       os << "\\usepackage[" << extra_encoding
+                          << from_ascii(font_encoding())
                           << "]{fontenc}\n";
                }
        }
@@ -2059,17 +2075,16 @@ void BufferParams::makeDocumentClass()
                return;
 
        LayoutModuleList mods;
-       LayoutModuleList::iterator it;
-       LayoutModuleList::iterator en;
-
-       it = layout_modules_.begin();
-       en = layout_modules_.end();
+       LayoutModuleList::iterator it = layout_modules_.begin();
+       LayoutModuleList::iterator en = layout_modules_.end();
        for (; it != en; ++it)
                mods.push_back(*it);
+
        it = cite_engine_.begin();
        en = cite_engine_.end();
        for (; it != en; ++it)
                mods.push_back(*it);
+
        doc_class_ = getDocumentClass(*baseClass(), mods);
 
        if (!local_layout.empty()) {
@@ -2083,10 +2098,15 @@ void BufferParams::makeDocumentClass()
 }
 
 
-bool BufferParams::moduleCanBeAdded(string const & modName) const
+bool BufferParams::layoutModuleCanBeAdded(string const & modName) const
+{
+       return layout_modules_.moduleCanBeAdded(modName, baseClass());
+}
+
+
+bool BufferParams::citationModuleCanBeAdded(string const & modName) const
 {
-       return cite_engine_.moduleCanBeAdded(modName, baseClass()) &&
-               layout_modules_.moduleCanBeAdded(modName, baseClass());
+       return cite_engine_.moduleCanBeAdded(modName, baseClass());
 }