]> git.lyx.org Git - lyx.git/blobdiff - src/BufferParams.cpp
Update it.po
[lyx.git] / src / BufferParams.cpp
index 96aaf7af2826eb6a1b1811e80f3ad1fbb54b5a1f..656ba12ccf9827a9781ea956c4c06a031894c0b6 100644 (file)
@@ -336,6 +336,7 @@ BufferParams::BufferParams()
        use_geometry = false;
        use_amsmath = package_auto;
        use_esint = package_auto;
+       use_mhchem = package_auto;
        cite_engine_ = ENGINE_BASIC;
        use_bibtopic = false;
        use_indices = false;
@@ -363,6 +364,7 @@ BufferParams::BufferParams()
        columns = 1;
        listings_params = string();
        pagestyle = "default";
+       suppress_date = false;
        // white is equal to no background color
        backgroundcolor = lyx::rgbFromHexName("#ffffff");
        compressed = false;
@@ -539,6 +541,8 @@ string BufferParams::readToken(Lexer & lex, string const & token,
        } else if (token == "\\master") {
                lex.eatLine();
                master = lex.getString();
+       } else if (token == "\\suppress_date") {
+               lex >> suppress_date;
        } else if (token == "\\language") {
                readLanguage(lex);
        } else if (token == "\\inputencoding") {
@@ -609,6 +613,10 @@ string BufferParams::readToken(Lexer & lex, string const & token,
                int useesint;
                lex >> useesint;
                use_esint = packagetranslator().find(useesint);
+       } else if (token == "\\use_mhchem") {
+               int usemhchem;
+               lex >> usemhchem;
+               use_mhchem = packagetranslator().find(usemhchem);
        } else if (token == "\\cite_engine") {
                string engine;
                lex >> engine;
@@ -641,7 +649,6 @@ string BufferParams::readToken(Lexer & lex, string const & token,
                                if (branch_ptr)
                                        branch_ptr->setFilenameSuffix(lex.getInteger());
                        }
-                       // not yet operational
                        if (tok == "\\color") {
                                lex.eatLine();
                                string color = lex.getString();
@@ -657,6 +664,7 @@ string BufferParams::readToken(Lexer & lex, string const & token,
        } else if (token == "\\index") {
                lex.eatLine();
                docstring index = lex.getDocString();
+               docstring shortcut;
                indiceslist().add(index);
                while (true) {
                        lex.next();
@@ -666,10 +674,10 @@ string BufferParams::readToken(Lexer & lex, string const & token,
                        Index * index_ptr = indiceslist().find(index);
                        if (tok == "\\shortcut") {
                                lex.next();
+                               shortcut = lex.getDocString();
                                if (index_ptr)
-                                       index_ptr->setShortcut(lex.getDocString());
+                                       index_ptr->setShortcut(shortcut);
                        }
-                       // not yet operational
                        if (tok == "\\color") {
                                lex.eatLine();
                                string color = lex.getString();
@@ -679,7 +687,8 @@ string BufferParams::readToken(Lexer & lex, string const & token,
                                if (color == "none")
                                        color = lcolor.getX11Name(Color_background);
                                // FIXME UNICODE
-                               lcolor.setColor(to_utf8(index), color);
+                               if (!shortcut.empty())
+                                       lcolor.setColor(to_utf8(shortcut), color);
                        }
                }
        } else if (token == "\\author") {
@@ -859,10 +868,12 @@ void BufferParams::writeFile(ostream & os) const
           << "\n\\use_geometry " << convert<string>(use_geometry)
           << "\n\\use_amsmath " << use_amsmath
           << "\n\\use_esint " << use_esint
+          << "\n\\use_mhchem " << use_mhchem
           << "\n\\cite_engine " << citeenginetranslator().find(cite_engine_)
           << "\n\\use_bibtopic " << convert<string>(use_bibtopic)
           << "\n\\use_indices " << convert<string>(use_indices)
           << "\n\\paperorientation " << string_orientation[orientation]
+          << "\n\\suppress_date " << convert<string>(suppress_date)
           << '\n';
           if (backgroundcolor != lyx::rgbFromHexName("#ffffff"))
                os << "\\backgroundcolor " << lyx::X11hexname(backgroundcolor) << '\n';
@@ -1007,6 +1018,8 @@ void BufferParams::validate(LaTeXFeatures & features) const
                features.require("amsmath");
        if (use_esint == package_on)
                features.require("esint");
+       if (use_mhchem == package_on)
+               features.require("mhchem");
 
        // Document-level line spacing
        if (spacing().getSpace() != Spacing::Single && !spacing().isDefault())
@@ -1492,6 +1505,12 @@ bool BufferParams::writeLaTeX(odocstream & os, LaTeXFeatures & features,
                        "Textclass specific LaTeX commands.\n"
                        + tmppreamble + '\n';
 
+       // suppress date if selected
+       // use \@ifundefined because we cannot be sure that every document class
+       // has a \date command
+       if (suppress_date)
+               atlyxpreamble += "\\@ifundefined{date}{}{\\date{}}\n";
+
        /* the user-defined preamble */
        if (!containsOnly(preamble, " \n\t"))
                // FIXME UNICODE