]> git.lyx.org Git - lyx.git/blobdiff - src/LaTeXFeatures.C
LFUN_UNICODE_INSERT - unicode-insert
[lyx.git] / src / LaTeXFeatures.C
index 2a2b757436df8b0085edeb35f76bebcdfe40d382..1ad591446f068d74f711cd3b3c49291f76412f7e 100644 (file)
 #include "LaTeXFeatures.h"
 
 #include "bufferparams.h"
+#include "Color.h"
 #include "debug.h"
 #include "encoding.h"
 #include "Floating.h"
 #include "FloatList.h"
+#include "LColor.h"
 #include "language.h"
 #include "lyxlex.h"
 #include "lyx_sty.h"
 #include "lyxrc.h"
 
+#include "support/docstream.h"
 #include "support/filetools.h"
-
 #include <sstream>
 
-using lyx::support::isSGMLFilename;
-using lyx::support::libFileSearch;
-using lyx::support::makeRelPath;
-using lyx::support::onlyPath;
+
+namespace lyx {
+
+using support::isSGMLFilename;
+using support::libFileSearch;
+using support::makeRelPath;
+using support::onlyPath;
 
 using std::endl;
 using std::find;
@@ -43,9 +48,6 @@ using std::ostream;
 using std::ostringstream;
 using std::set;
 
-namespace biblio = lyx::biblio;
-
-
 LaTeXFeatures::PackagesList LaTeXFeatures::packages_;
 
 
@@ -189,7 +191,7 @@ void LaTeXFeatures::useLanguage(Language const * lang)
 }
 
 
-void LaTeXFeatures::includeFile(string const & key, string const & name)
+void LaTeXFeatures::includeFile(docstring const & key, string const & name)
 {
        IncludedFiles_[key] = name;
 }
@@ -239,11 +241,13 @@ char const * simplefeatures[] = {
        "varioref",
        "prettyref",
        "float",
+       "booktabs",
        "dvipost",
        "fancybox",
        "calc",
        "nicefrac",
        "tipa",
+       "framed",
 };
 
 int const nb_simplefeatures = sizeof(simplefeatures) / sizeof(char const *);
@@ -308,6 +312,12 @@ string const LaTeXFeatures::getPackages() const
                                 << params_.graphicsDriver
                                 << "]{graphicx}\n";
        }
+       // shadecolor for shaded
+       if (isRequired("framed")) {
+               RGBColor c = RGBColor(lcolor.getX11Name(LColor::shadedbg));
+               packages << "\\definecolor{shadecolor}{rgb}{" 
+                       << c.r/255 << ',' << c.g/255 << ',' << c.b/255 << "}\n";
+       }
 
        //if (algorithm) {
        //      packages << "\\usepackage{algorithm}\n";
@@ -488,10 +498,10 @@ string const LaTeXFeatures::getTClassPreamble() const
 }
 
 
-string const LaTeXFeatures::getLyXSGMLEntities() const
+docstring const LaTeXFeatures::getLyXSGMLEntities() const
 {
        // Definition of entities used in the document that are LyX related.
-       ostringstream entities;
+       odocstringstream entities;
 
        if (isRequired("lyxarrow")) {
                entities << "<!ENTITY lyxarrow \"-&gt;\">" << '\n';
@@ -501,9 +511,9 @@ string const LaTeXFeatures::getLyXSGMLEntities() const
 }
 
 
-string const LaTeXFeatures::getIncludedFiles(string const & fname) const
+docstring const LaTeXFeatures::getIncludedFiles(string const & fname) const
 {
-       ostringstream sgmlpreamble;
+       odocstringstream sgmlpreamble;
        string const basename = onlyPath(fname);
 
        FileMap::const_iterator end = IncludedFiles_.end();
@@ -511,7 +521,7 @@ string const LaTeXFeatures::getIncludedFiles(string const & fname) const
             fi != end; ++fi)
                sgmlpreamble << "\n<!ENTITY " << fi->first
                             << (isSGMLFilename(fi->second) ? " SYSTEM \"" : " \"")
-                            << makeRelPath(fi->second, basename) << "\">";
+                            << from_ascii(makeRelPath(fi->second, basename)) << "\">";
 
        return sgmlpreamble.str();
 }
@@ -604,3 +614,6 @@ void LaTeXFeatures::getFloatDefinitions(ostream & os) const
                }
        }
 }
+
+
+} // namespace lyx