X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FLaTeXFeatures.cpp;h=457029319b8109da841cf89bfac087c1840ee31e;hb=f37a1b8aeaf8f3a3a66a22bf0b396f7d1ceca2ff;hp=862c3240618b23ab0f546a547ba32419e6a28c87;hpb=e0acb978ff34c174dcfaddae08caa70eed11ef35;p=lyx.git diff --git a/src/LaTeXFeatures.cpp b/src/LaTeXFeatures.cpp index 862c324061..457029319b 100644 --- a/src/LaTeXFeatures.cpp +++ b/src/LaTeXFeatures.cpp @@ -182,12 +182,12 @@ static docstring const changetracking_dvipost_def = from_ascii( static docstring const changetracking_xcolor_ulem_def = from_ascii( "%% Change tracking with ulem\n" - "\\newcommand{\\lyxadded}[3]{{\\color{lyxadded}#3}}\n" + "\\newcommand{\\lyxadded}[3]{{\\color{lyxadded}{}#3}}\n" "\\newcommand{\\lyxdeleted}[3]{{\\color{lyxdeleted}\\sout{#3}}}\n"); static docstring const changetracking_xcolor_ulem_hyperref_def = from_ascii( "%% Change tracking with ulem\n" - "\\newcommand{\\lyxadded}[3]{{\\texorpdfstring{\\color{lyxadded}}{}#3}}\n" + "\\newcommand{\\lyxadded}[3]{{\\texorpdfstring{\\color{lyxadded}{}}{}#3}}\n" "\\newcommand{\\lyxdeleted}[3]{{\\texorpdfstring{\\color{lyxdeleted}\\sout{#3}}{}}}\n"); static docstring const changetracking_none_def = from_ascii( @@ -195,8 +195,10 @@ static docstring const changetracking_none_def = from_ascii( "\\newcommand{\\lyxdeleted}[3]{}\n"); static docstring const textgreek_def = from_ascii( - "\\DeclareRobustCommand{\\greektext}{%\n" - " \\fontencoding{LGR}\\selectfont\\def\\encodingdefault{LGR}}\n" + "\\AtBeginDocument{\\DeclareRobustCommand{\\greektext}{%\n" + " \\fontencoding{LGR}\\selectfont\\def\\encodingdefault{LGR}%\n" + " \\renewcommand{\\~}{\\char126}%\n" + "}}\n" "\\DeclareRobustCommand{\\textgreek}[1]{\\leavevmode{\\greektext #1}}\n" "\\DeclareFontEncoding{LGR}{}{}\n"); @@ -365,12 +367,10 @@ void LaTeXFeatures::useInsetLayout(InsetLayout const & lay) { docstring const & lname = lay.name(); DocumentClass const & tclass = params_.documentClass(); - if (!tclass.hasInsetLayout(lname)) { - lyxerr << "LaTeXFeatures::useInsetLayout: layout `" - << to_utf8(lname) << "' does not exist in this class" - << endl; + + // this is a default inset layout, nothing useful here + if (!tclass.hasInsetLayout(lname)) return; - } // Is this layout already in usedInsetLayouts? if (find(usedInsetLayouts_.begin(), usedInsetLayouts_.end(), lname) != usedInsetLayouts_.end()) @@ -399,7 +399,7 @@ bool LaTeXFeatures::isAvailable(string const & name) if (i != string::npos) { string const from = name.substr(0,i); string const to = name.substr(i+2); - LYXERR0("from=[" << from << "] to=[" << to << "]"); + //LYXERR0("from=[" << from << "] to=[" << to << "]"); return theConverters().isReachable(from, to); } @@ -640,7 +640,7 @@ string const LaTeXFeatures::getPackages() const // 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 + // See http://www.lyx.org/trac/ticket/1942 if (mustProvide("wasysym") && (params_.use_esint != BufferParams::package_off || !isRequired("esint"))) packages << "\\usepackage{wasysym}\n"; @@ -649,6 +649,14 @@ string const LaTeXFeatures::getPackages() const if (mustProvide("accents")) packages << "\\usepackage{accents}\n"; + // mathdots must be loaded after amsmath + if (mustProvide("mathdots")) + packages << "\\usepackage{mathdots}\n"; + + // yhmath must be loaded after amsmath + if (mustProvide("yhmath")) + packages << "\\usepackage{yhmath}\n"; + // [x]color and pdfcolmk are handled in getColorOptions() above // makeidx.sty @@ -736,6 +744,11 @@ string const LaTeXFeatures::getPackages() const packages << "\\PassOptionsToPackage{normalem}{ulem}\n" "\\usepackage{ulem}\n"; + if (mustProvide("mhchem") && + params_.use_mhchem != BufferParams::package_off) + packages << "\\PassOptionsToPackage{version=3}{mhchem}\n" + "\\usepackage{mhchem}\n"; + if (mustProvide("nomencl")) { // Make it work with the new and old version of the package, // but don't use the compatibility option since it is @@ -751,18 +764,27 @@ string const LaTeXFeatures::getPackages() const } +string LaTeXFeatures::getPreambleSnippets() const +{ + ostringstream snip; + SnippetList::const_iterator pit = preamble_snippets_.begin(); + SnippetList::const_iterator pend = preamble_snippets_.end(); + for (; pit != pend; ++pit) + snip << *pit << '\n'; + return snip.str(); +} + + docstring const LaTeXFeatures::getMacros() const { odocstringstream macros; - if (!preamble_snippets_.empty()) + if (!preamble_snippets_.empty()) { macros << '\n'; - SnippetList::const_iterator pit = preamble_snippets_.begin(); - SnippetList::const_iterator pend = preamble_snippets_.end(); - for (; pit != pend; ++pit) - macros << *pit << '\n'; + macros << from_utf8(getPreambleSnippets()); + } - if (mustProvide("papersize")) { + if (mustProvide("papersize")) { if (runparams_.flavor == OutputParams::LATEX) macros << papersizedvi_def << '\n'; else