]> git.lyx.org Git - lyx.git/blobdiff - src/LaTeXFeatures.C
* Painter.h:
[lyx.git] / src / LaTeXFeatures.C
index 9b993fdd2d200759b74c0d9ed51e77fb8f9c3f7d..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,14 +48,11 @@ using std::ostream;
 using std::ostringstream;
 using std::set;
 
-namespace biblio = lyx::biblio;
-
-
 LaTeXFeatures::PackagesList LaTeXFeatures::packages_;
 
 
 LaTeXFeatures::LaTeXFeatures(Buffer const & b, BufferParams const & p,
-                             OutputParams const & r)
+                            OutputParams const & r)
        : buffer_(&b), params_(p), runparams_(r)
 {}
 
@@ -75,7 +77,7 @@ void LaTeXFeatures::require(string const & name)
 void LaTeXFeatures::getAvailable()
 {
        LyXLex lex(0, 0);
-       string real_file = LibFileSearch("", "packages.lst");
+       string real_file = libFileSearch("", "packages.lst");
 
        if (real_file.empty())
                return;
@@ -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;
 }
@@ -220,8 +222,8 @@ set<string> LaTeXFeatures::getEncodingSet(string const & doc_encoding) const
        LanguageList::const_iterator it  = UsedLanguages_.begin();
        LanguageList::const_iterator end = UsedLanguages_.end();
        for (; it != end; ++it)
-               if ((*it)->encoding()->LatexName() != doc_encoding)
-                       encodings.insert((*it)->encoding()->LatexName());
+               if ((*it)->encoding()->latexName() != doc_encoding)
+                       encodings.insert((*it)->encoding()->latexName());
        return encodings;
 }
 
@@ -239,9 +241,13 @@ char const * simplefeatures[] = {
        "varioref",
        "prettyref",
        "float",
+       "booktabs",
        "dvipost",
        "fancybox",
        "calc",
+       "nicefrac",
+       "tipa",
+       "framed",
 };
 
 int const nb_simplefeatures = sizeof(simplefeatures) / sizeof(char const *);
@@ -292,7 +298,7 @@ string const LaTeXFeatures::getPackages() const
 
        // makeidx.sty
        if (isRequired("makeidx")) {
-               if (! tclass.provides(LyXTextClass::makeidx))
+               if (!tclass.provides(LyXTextClass::makeidx))
                        packages << "\\usepackage{makeidx}\n";
                packages << "\\makeindex\n";
        }
@@ -306,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";
@@ -486,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';
@@ -499,17 +511,17 @@ string const LaTeXFeatures::getLyXSGMLEntities() const
 }
 
 
-string const LaTeXFeatures::getIncludedFiles(string const & fname) const
+docstring const LaTeXFeatures::getIncludedFiles(string const & fname) const
 {
-       ostringstream sgmlpreamble;
-       string const basename = OnlyPath(fname);
+       odocstringstream sgmlpreamble;
+       string const basename = onlyPath(fname);
 
        FileMap::const_iterator end = IncludedFiles_.end();
        for (FileMap::const_iterator fi = IncludedFiles_.begin();
             fi != end; ++fi)
                sgmlpreamble << "\n<!ENTITY " << fi->first
-                            << (IsSGMLFilename(fi->second) ? " SYSTEM \"" : " \"")
-                            << MakeRelPath(fi->second, basename) << "\">";
+                            << (isSGMLFilename(fi->second) ? " SYSTEM \"" : " \"")
+                            << from_ascii(makeRelPath(fi->second, basename)) << "\">";
 
        return sgmlpreamble.str();
 }
@@ -602,3 +614,6 @@ void LaTeXFeatures::getFloatDefinitions(ostream & os) const
                }
        }
 }
+
+
+} // namespace lyx