X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FLaTeXFeatures.cpp;h=457029319b8109da841cf89bfac087c1840ee31e;hb=f37a1b8aeaf8f3a3a66a22bf0b396f7d1ceca2ff;hp=ecb6eaa0b87f54704e0c6d639221db1c8ba5c157;hpb=4c15e3fb5577885f73c2ad2ca8b398cfcebc8a52;p=lyx.git diff --git a/src/LaTeXFeatures.cpp b/src/LaTeXFeatures.cpp index ecb6eaa0b8..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()) @@ -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"; @@ -744,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 @@ -759,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