]> git.lyx.org Git - features.git/blobdiff - src/LaTeXFeatures.C
several changes and some new insets, read the Changelog
[features.git] / src / LaTeXFeatures.C
index cac7a883585e53848201e725289480aaab29258b..67341747bdaf5ce14ff24c14e606e469fe709e29 100644 (file)
@@ -45,6 +45,7 @@ LaTeXFeatures::LaTeXFeatures(BufferParams const & p, int n)
        url = false;
        varioref = false;
        prettyref = false;
+       chess = false;
        
        // commands
        lyx = false;
@@ -71,6 +72,53 @@ LaTeXFeatures::LaTeXFeatures(BufferParams const & p, int n)
        NeedLyXMinipageIndent = false;
 }
 
+void LaTeXFeatures::require(string const & name) {
+       if (name == "color") {
+               color = true;
+       } else if (name == "graphics") {
+#ifdef USE_GRAPHICX
+               graphicx = true;
+#else
+               graphics = true;
+#endif
+       } else if (name == "setspace") {
+               setspace = true;
+       } else if (name == "makeidx") {
+               makeidx = true;
+       } else if (name == "verbatim") {
+               verbatim = true;
+       } else if (name == "longtable") {
+               longtable = true;
+       } else if (name == "algorithm") {
+               algorithm = true;
+       } else if (name == "rotating") {
+               rotating = true;
+       } else if (name == "amssymb") {
+               amssymb = true;
+       } else if (name == "latexsym") {
+               latexsym = true;
+       } else if (name == "pifont") {
+               pifont = true;
+       } else if (name == "subfigure") {
+               subfigure = true;
+       } else if (name == "floatflt") {
+               floatflt = true;
+       } else if (name == "url") {
+               url = true;
+       } else if (name == "varioref") {
+               varioref = true;
+       } else if (name == "prettyref") {
+               prettyref = true;
+       } else if (name == "chess") {
+               chess = true;
+       } else if (name == "amsstyle") {
+               amsstyle = true;
+       } else if (name == "boldsymbol") {
+               boldsymbol = true;
+       } else if (name == "binom") {
+               binom = true;
+       }
+}
 
 string LaTeXFeatures::getPackages()
 {
@@ -105,7 +153,7 @@ string LaTeXFeatures::getPackages()
                                + params.graphicsDriver + "]{graphics}\n";
        }
 
-       //verbatim.sty
+       // verbatim.sty
        if (verbatim)
                packages += "\\usepackage{verbatim}\n";
 
@@ -113,6 +161,11 @@ string LaTeXFeatures::getPackages()
                packages += "\\usepackage{algorithm}\n";
        }
 
+       // lyxchess.sty
+       if (chess) {
+               packages += "\\usepackage{lyxchess}\n";
+       }
+
        // setspace.sty
        if ((params.spacing.getSpace() != Spacing::Single
             && !params.spacing.isDefault())
@@ -192,6 +245,15 @@ string LaTeXFeatures::getPackages()
        if (prettyref)
                packages += "\\usepackage{prettyref}\n";
 
+       // float.sty
+       // This is not correct and needs fixing.
+       // We don't need float.sty if we only use unchanged
+       // table and figure floats. (Lgb)
+       if (!usedFloats.empty())
+               packages += "\\usepackage{float}\n";
+       
+       packages += externalPreambles;
+
        return packages;
 }
 
@@ -243,6 +305,12 @@ string LaTeXFeatures::getMacros()
         if (NeedLyXFootnoteCode) 
                macros += floatingfootnote_def;
 
+       // floats
+       // Here we will output the code to create the needed float styles.
+       // We will try to do this as minimal as possible.
+       // \floatstyle{ruled}
+       // \newfloat{algorithm}{htbp}{loa}
+       // \floatname{algorithm}{Algorithm}
        return macros;
 }