X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FLaTeXFeatures.cpp;h=22d35ea75c679fa184a62c267b0324e01e99f8a9;hb=f99d41a25a326865183879853b97ed3265499042;hp=d03f964d035744d6a7c3a600f0e26c4d5a5d7eb6;hpb=e91029ae5175a1203a33060ff93405ffcf300e10;p=lyx.git diff --git a/src/LaTeXFeatures.cpp b/src/LaTeXFeatures.cpp index d03f964d03..22d35ea75c 100644 --- a/src/LaTeXFeatures.cpp +++ b/src/LaTeXFeatures.cpp @@ -254,7 +254,7 @@ void LaTeXFeatures::getAvailable() } -void LaTeXFeatures::useLayout(string const & layoutname) +void LaTeXFeatures::useLayout(docstring const & layoutname) { // Some code to avoid loops in dependency definition static int level = 0; @@ -262,15 +262,15 @@ void LaTeXFeatures::useLayout(string const & layoutname) if (level > maxlevel) { lyxerr << "LaTeXFeatures::useLayout: maximum level of " << "recursion attained by layout " - << layoutname << endl; + << to_utf8(layoutname) << endl; return; } TextClass const & tclass = params_.getTextClass(); if (tclass.hasLayout(layoutname)) { // Is this layout already in usedLayouts? - list::const_iterator cit = usedLayouts_.begin(); - list::const_iterator end = usedLayouts_.end(); + list::const_iterator cit = usedLayouts_.begin(); + list::const_iterator end = usedLayouts_.end(); for (; cit != end; ++cit) { if (layoutname == *cit) return; @@ -285,7 +285,7 @@ void LaTeXFeatures::useLayout(string const & layoutname) usedLayouts_.push_back(layoutname); } else { lyxerr << "LaTeXFeatures::useLayout: layout `" - << layoutname << "' does not exist in this class" + << to_utf8(layoutname) << "' does not exist in this class" << endl; } @@ -411,7 +411,6 @@ char const * simplefeatures[] = { "soul", "textcomp", "xcolor", - "wasysym", "pmboxdraw", "bbding", "ifsym", @@ -446,8 +445,11 @@ string const LaTeXFeatures::getPackages() const // than those above. // - if (mustProvide("amsmath") - && params_.use_amsmath != BufferParams::package_off) { + // esint is preferred for esintoramsmath + if ((mustProvide("amsmath") && + params_.use_amsmath != BufferParams::package_off) || + (mustProvide("esintoramsmath") && + params_.use_esint == BufferParams::package_off)) { packages << "\\usepackage{amsmath}\n"; } @@ -455,11 +457,12 @@ string const LaTeXFeatures::getPackages() const // are used // wasysym redefines some integrals (e.g. iint) from amsmath. That // leads to inconsistent integrals. We only load this package if - // esint is used, since esint redefines all relevant integral - // symbols from wasysym and amsmath. + // the document does not contain integrals (then isRequired("esint") + // is false) or if esint is used, since esint redefines all relevant + // integral symbols from wasysym and amsmath. // See http://bugzilla.lyx.org/show_bug.cgi?id=1942 - if (mustProvide("wasysym") && isRequired("esint") && - params_.use_esint != BufferParams::package_off) + if (mustProvide("wasysym") && + (params_.use_esint != BufferParams::package_off || !isRequired("esint"))) packages << "\\usepackage{wasysym}\n"; // color.sty @@ -499,7 +502,7 @@ string const LaTeXFeatures::getPackages() const //in InsetNote::validate(). int const stmSize = packages.precision(2); packages << "\\definecolor{shadecolor}{rgb}{" - << c.r/255.0 << ',' << c.g/255.0 << ',' << c.b/255.0 << "}\n"; + << c.r / 255.0 << ',' << c.g / 255.0 << ',' << c.b / 255.0 << "}\n"; packages.precision(stmSize); } @@ -539,8 +542,8 @@ string const LaTeXFeatures::getPackages() const // esint must be after amsmath and wasysym, since it will redeclare // inconsistent integral symbols - if (mustProvide("esint") - && params_.use_esint != BufferParams::package_off) + if ((mustProvide("esint") || mustProvide("esintoramsmath")) && + params_.use_esint != BufferParams::package_off) packages << "\\usepackage{esint}\n"; // url.sty @@ -662,13 +665,17 @@ string const LaTeXFeatures::getMacros() const macros << changetracking_dvipost_def; } if (mustProvide("ct-xcolor-soul")) { + int const prec = macros.precision(2); + RGBColor cadd = RGBColor(lcolor.getX11Name(Color::addedtext)); macros << "\\providecolor{lyxadded}{rgb}{" - << cadd.r/255 << ',' << cadd.g/255 << ',' << cadd.b/255 << "}\n"; + << cadd.r / 255.0 << ',' << cadd.g / 255.0 << ',' << cadd.b / 255.0 << "}\n"; RGBColor cdel = RGBColor(lcolor.getX11Name(Color::deletedtext)); macros << "\\providecolor{lyxdeleted}{rgb}{" - << cdel.r/255 << ',' << cdel.g/255 << ',' << cdel.b/255 << "}\n"; + << cdel.r / 255.0 << ',' << cdel.g / 255.0 << ',' << cdel.b / 255.0 << "}\n"; + + macros.precision(prec); macros << "\\newcommand{\\lyxadded}[3]{{\\color{lyxadded}#3}}\n" << "\\newcommand{\\lyxdeleted}[3]{{\\color{lyxdeleted}\\st{#3}}}\n"; @@ -705,8 +712,8 @@ docstring const LaTeXFeatures::getTClassPreamble() const tcpreamble << tclass.preamble(); - list::const_iterator cit = usedLayouts_.begin(); - list::const_iterator end = usedLayouts_.end(); + list::const_iterator cit = usedLayouts_.begin(); + list::const_iterator end = usedLayouts_.end(); for (; cit != end; ++cit) { tcpreamble << tclass[*cit]->preamble(); }