X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FLaTeXFeatures.cpp;h=364a4921e1ac13799cd76ab7853de9fa41f32ef0;hb=c9b1b46796923b0453ccaed022448b61b5be6d8a;hp=b55b0be3073b4d1c32c59c8c61b6ea02afb337df;hpb=65af4e44bb63e540e0f3b298e479182b247a3665;p=lyx.git diff --git a/src/LaTeXFeatures.cpp b/src/LaTeXFeatures.cpp index b55b0be307..364a4921e1 100644 --- a/src/LaTeXFeatures.cpp +++ b/src/LaTeXFeatures.cpp @@ -193,6 +193,12 @@ static docstring const tabularnewline_def = from_ascii( "%% Because html converters don't know tabularnewline\n" "\\providecommand{\\tabularnewline}{\\\\}\n"); +static docstring const cellvarwidth_def = from_ascii( + "%% Variable width box for table cells\n" + "\\newenvironment{cellvarwidth}[1][t]\n" + " {\\begin{varwidth}[#1]{\\linewidth}}\n" + " {\\@finalstrut\\@arstrutbox\\end{varwidth}}\n"); + // We want to omit the file extension for includegraphics, but this does not // work when the filename contains other dots. // Idea from http://www.tex.ac.uk/cgi-bin/texfaq2html?label=unkgrfextn @@ -554,9 +560,9 @@ docstring const lyxgreyedoutDef(bool const rtl, bool const ct, bool const lua, b ods << " \\if@rl%\n"; ods << " \\everypar{%\n"; if (lua) - ods << " \\pardir TRT \\textdir TRT\\textcolor{note_fontcolor}\\ignorespaces%\n"; + ods << " \\pardir TRT \\textdir TRT\\normalfont\\normalsize\\textcolor{note_fontcolor}\\ignorespaces%\n"; else - ods << " \\textcolor{note_fontcolor}\\beginL\\ignorespaces%\n"; + ods << " \\normalfont\\normalsize\\textcolor{note_fontcolor}\\beginL\\ignorespaces%\n"; ods << " }%\n"; if (ct) ods << " \\colorlet{lyxadded}{lyxadded!30}\\colorlet{lyxdeleted}{lyxdeleted!30}%\n"; @@ -567,7 +573,7 @@ docstring const lyxgreyedoutDef(bool const rtl, bool const ct, bool const lua, b ods << " \\else%\n"; if (ct) ods << " \\colorlet{lyxadded}{lyxadded!30}\\colorlet{lyxdeleted}{lyxdeleted!30}%\n"; - ods << " \\textcolor{note_fontcolor}\\bgroup\\ignorespaces%\n" + ods << " \\normalfont\\normalsize\\textcolor{note_fontcolor}\\bgroup\\ignorespaces%\n" << " \\BODY\\ignorespacesafterend\\egroup%\n" << " \\fi%\n" << "}\n"; @@ -577,7 +583,7 @@ docstring const lyxgreyedoutDef(bool const rtl, bool const ct, bool const lua, b << "{"; if (ct) ods << "\\colorlet{lyxadded}{lyxadded!30}\\colorlet{lyxdeleted}{lyxdeleted!30}%\n "; - ods << "\\textcolor{note_fontcolor}\\bgroup\\ignorespaces}\n" + ods << "\\normalfont\\normalsize\\textcolor{note_fontcolor}\\bgroup\\ignorespaces}\n" << "{\\ignorespacesafterend\\egroup}\n"; } @@ -777,8 +783,8 @@ bool LaTeXFeatures::isProvided(string const & name) const if (params_.useNonTeXFonts) return params_.documentClass().provides(name); - bool const ot1 = (params_.main_font_encoding() == "default" - || params_.main_font_encoding() == "OT1"); + bool const ot1 = (runparams().main_fontenc == "default" + || runparams().main_fontenc == "OT1"); bool const complete = (params_.fontsSans() == "default" && params_.fontsTypewriter() == "default"); bool const nomath = (params_.fontsMath() == "default"); @@ -821,6 +827,12 @@ bool LaTeXFeatures::isAvailable(string const & name) } +bool LaTeXFeatures::isAvailableAtLeastFrom(string const & name, int const y, int const m, int const d) +{ + return LaTeXPackages::isAvailableAtLeastFrom(name, y, m, d); +} + + namespace { void addSnippet(std::list & list, TexString ts, bool allow_dupes) @@ -831,7 +843,7 @@ void addSnippet(std::list & list, TexString ts, bool allow_dupes) return ts.str == ts2.str; }) ) - list.push_back(move(ts)); + list.push_back(std::move(ts)); } @@ -848,7 +860,7 @@ TexString getSnippets(std::list const & list) void LaTeXFeatures::addPreambleSnippet(TexString snippet, bool allow_dupes) { - addSnippet(preamble_snippets_, move(snippet), allow_dupes); + addSnippet(preamble_snippets_, std::move(snippet), allow_dupes); } @@ -1155,7 +1167,9 @@ char const * simplefeatures[] = { "pict2e", "drs", "environ", - "dsfont" + "dsfont", + "hepparticles", + "hepnames" }; char const * bibliofeatures[] = { @@ -1309,8 +1323,8 @@ string const LaTeXFeatures::getPackages() const // if fontspec or newtxmath is used, AMS packages have to be loaded // before fontspec (in BufferParams) string const amsPackages = loadAMSPackages(); - bool const ot1 = (params_.main_font_encoding() == "default" - || params_.main_font_encoding() == "OT1"); + bool const ot1 = (runparams().main_fontenc == "default" + || runparams().main_fontenc == "OT1"); bool const use_newtxmath = theLaTeXFonts().getLaTeXFont(from_ascii(params_.fontsMath())).getUsedPackage( ot1, false, false) == "newtxmath"; @@ -1505,7 +1519,8 @@ string const LaTeXFeatures::getPackages() const } // fixltx2e provides subscript - if (mustProvide("subscript") && !isRequired("fixltx2e")) + if (mustProvide("subscript") && !isRequired("fixltx2e") + && !isAvailableAtLeastFrom("LaTeX", 2005, 12)) packages << "\\usepackage{subscript}\n"; // footmisc must be loaded after setspace @@ -1578,15 +1593,15 @@ TexString LaTeXFeatures::getMacros() const macros << lyxZWSP_def << '\n'; if (!usePolyglossia() && mustProvide("textgreek")) { - // ensure LGR font encoding is defined also if fontenc is not loaded by LyX - if (params_.main_font_encoding() == "default") + // ensure LGR font encoding is defined also if fontenc is not loaded by LyX + if (runparams().main_fontenc == "default") macros << textgreek_LGR_def; macros << textgreek_def << '\n'; } if (!usePolyglossia() && mustProvide("textcyrillic")) { // ensure T2A font encoding is set up also if fontenc is not loaded by LyX - if (params_.main_font_encoding() == "default") + if (runparams().main_fontenc == "default") macros << textcyr_T2A_def; macros << textcyr_def << '\n'; } @@ -1695,6 +1710,9 @@ TexString LaTeXFeatures::getMacros() const if (mustProvide("NeedTabularnewline")) macros << tabularnewline_def; + if (mustProvide("cellvarwidth")) + macros << cellvarwidth_def; + // greyed-out environment (note inset) // the color is specified in the routine // getColorOptions() to avoid LaTeX-package clashes @@ -1717,11 +1735,11 @@ TexString LaTeXFeatures::getMacros() const if (mustProvide("ct-xcolor-ulem")) { streamsize const prec = macros.os().precision(2); - RGBColor cadd = rgbFromHexName(lcolor.getX11HexName(Color_addedtext)); + RGBColor cadd = rgbFromHexName(lcolor.getX11HexName(Color_addedtext_output)); macros << "\\providecolor{lyxadded}{rgb}{" << cadd.r / 255.0 << ',' << cadd.g / 255.0 << ',' << cadd.b / 255.0 << "}\n"; - RGBColor cdel = rgbFromHexName(lcolor.getX11HexName(Color_deletedtext)); + RGBColor cdel = rgbFromHexName(lcolor.getX11HexName(Color_deletedtext_output)); macros << "\\providecolor{lyxdeleted}{rgb}{" << cdel.r / 255.0 << ',' << cdel.g / 255.0 << ',' << cdel.b / 255.0 << "}\n"; @@ -1746,11 +1764,11 @@ TexString LaTeXFeatures::getMacros() const if (!mustProvide("ct-xcolor-ulem")) { streamsize const prec = macros.os().precision(2); - RGBColor cadd = rgbFromHexName(lcolor.getX11HexName(Color_addedtext)); + RGBColor cadd = rgbFromHexName(lcolor.getX11HexName(Color_addedtext_output)); macros << "\\providecolor{lyxadded}{rgb}{" << cadd.r / 255.0 << ',' << cadd.g / 255.0 << ',' << cadd.b / 255.0 << "}\n"; - RGBColor cdel = rgbFromHexName(lcolor.getX11HexName(Color_deletedtext)); + RGBColor cdel = rgbFromHexName(lcolor.getX11HexName(Color_deletedtext_output)); macros << "\\providecolor{lyxdeleted}{rgb}{" << cdel.r / 255.0 << ',' << cdel.g / 255.0 << ',' << cdel.b / 255.0 << "}\n"; @@ -1915,16 +1933,12 @@ docstring const LaTeXFeatures::getTClassHTMLStyles() const tcpreamble << tclass.htmlstyles(); - list::const_iterator cit = usedLayouts_.begin(); - list::const_iterator end = usedLayouts_.end(); - for (; cit != end; ++cit) - tcpreamble << tclass[*cit].htmlstyle(); + for (auto const & c : usedLayouts_) + tcpreamble << tclass[c].htmlstyle(); - cit = usedInsetLayouts_.begin(); - end = usedInsetLayouts_.end(); TextClass::InsetLayouts const & ils = tclass.insetLayouts(); - for (; cit != end; ++cit) { - TextClass::InsetLayouts::const_iterator it = ils.find(*cit); + for (auto const & c : usedInsetLayouts_) { + TextClass::InsetLayouts::const_iterator it = ils.find(c); if (it == ils.end()) continue; tcpreamble << it->second.htmlstyle(); @@ -2150,37 +2164,6 @@ docstring const LaTeXFeatures::getTClassI18nPreamble(bool use_babel, } -docstring const LaTeXFeatures::getLyXSGMLEntities() const -{ - // Definition of entities used in the document that are LyX related. - odocstringstream entities; - - if (mustProvide("lyxarrow")) { - entities << "" << '\n'; - } - - return entities.str(); -} - - -docstring const LaTeXFeatures::getIncludedFiles(string const & fname) const -{ - odocstringstream sgmlpreamble; - // FIXME UNICODE - docstring const basename(from_utf8(onlyPath(fname))); - - FileMap::const_iterator end = IncludedFiles_.end(); - for (FileMap::const_iterator fi = IncludedFiles_.begin(); - fi != end; ++fi) - // FIXME UNICODE - sgmlpreamble << "\nfirst - << (isSGMLFileName(fi->second) ? " SYSTEM \"" : " \"") - << makeRelPath(from_utf8(fi->second), basename) << "\">"; - - return sgmlpreamble.str(); -} - - void LaTeXFeatures::showStruct() const { lyxerr << "LyX needs the following commands when LaTeXing:"