X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FLaTeXFeatures.C;h=921c15ef782823be4ede8470e4be22ea591b40dc;hb=8ebf862adbe377d032f888a82d88d4393aebc929;hp=70ae8a47c93eaba06f16c1ffcf4f71b13a422057;hpb=04a381977918db73961a14fe0799a0051a3c1689;p=lyx.git diff --git a/src/LaTeXFeatures.C b/src/LaTeXFeatures.C index 70ae8a47c9..921c15ef78 100644 --- a/src/LaTeXFeatures.C +++ b/src/LaTeXFeatures.C @@ -17,10 +17,12 @@ #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" @@ -30,10 +32,10 @@ #include -using lyx::support::IsSGMLFilename; -using lyx::support::LibFileSearch; -using lyx::support::MakeRelPath; -using lyx::support::OnlyPath; +using lyx::support::isSGMLFilename; +using lyx::support::libFileSearch; +using lyx::support::makeRelPath; +using lyx::support::onlyPath; using std::endl; using std::find; @@ -49,8 +51,9 @@ namespace biblio = lyx::biblio; LaTeXFeatures::PackagesList LaTeXFeatures::packages_; -LaTeXFeatures::LaTeXFeatures(Buffer const & b, BufferParams const & p, bool n) - : buffer_(&b), params_(p), nice_(n) +LaTeXFeatures::LaTeXFeatures(Buffer const & b, BufferParams const & p, + OutputParams const & r) + : buffer_(&b), params_(p), runparams_(r) {} @@ -74,16 +77,19 @@ 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; lex.setFile(real_file); - if (!lex.isOK()) + if (!lex.isOK()) return; + // Make sure that we are clean + packages_.clear(); + bool finished = false; // Parse config-file while (lex.isOK() && !finished) { @@ -216,8 +222,8 @@ set 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; } @@ -235,10 +241,13 @@ char const * simplefeatures[] = { "varioref", "prettyref", "float", - "wasysym", + "booktabs", "dvipost", "fancybox", "calc", + "nicefrac", + "tipa", + "framed", }; int const nb_simplefeatures = sizeof(simplefeatures) / sizeof(char const *); @@ -272,20 +281,24 @@ string const LaTeXFeatures::getPackages() const packages << "\\usepackage{amsmath}\n"; } + // wasysym is a simple feature, but it must be after amsmath if both + // are used + if (isRequired("wasysym")) + packages << "\\usepackage{wasysym}\n"; + // color.sty if (isRequired("color")) { if (params_.graphicsDriver == "default") - packages << "\\usepackage[usenames]{color}\n"; + packages << "\\usepackage{color}\n"; else packages << "\\usepackage[" << params_.graphicsDriver - << ",usenames" << "]{color}\n"; } // makeidx.sty if (isRequired("makeidx")) { - if (! tclass.provides(LyXTextClass::makeidx)) + if (!tclass.provides(LyXTextClass::makeidx)) packages << "\\usepackage{makeidx}\n"; packages << "\\makeindex\n"; } @@ -299,6 +312,12 @@ string const LaTeXFeatures::getPackages() const << params_.graphicsDriver << "]{graphicx}\n"; } + // shadecolor for shaded + if (isRequired("framed")) { + lyx::RGBColor c = lyx::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"; @@ -495,14 +514,14 @@ string const LaTeXFeatures::getLyXSGMLEntities() const string const LaTeXFeatures::getIncludedFiles(string const & fname) const { ostringstream sgmlpreamble; - string const basename = OnlyPath(fname); + string const basename = onlyPath(fname); FileMap::const_iterator end = IncludedFiles_.end(); for (FileMap::const_iterator fi = IncludedFiles_.begin(); fi != end; ++fi) sgmlpreamble << "\nfirst - << (IsSGMLFilename(fi->second) ? " SYSTEM \"" : " \"") - << MakeRelPath(fi->second, basename) << "\">"; + << (isSGMLFilename(fi->second) ? " SYSTEM \"" : " \"") + << makeRelPath(fi->second, basename) << "\">"; return sgmlpreamble.str(); }