X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FLaTeXFeatures.cpp;h=24dba48977f2784d2c01e6d314145bbb80c3df80;hb=5aece0832c5a1116b34ee003f7f51d8150f44db5;hp=641e99eb7db1576a4154f769a1a8f7865ad90b03;hpb=2ad48f204b2a2a6aba7f845cb43819d07dbece98;p=lyx.git diff --git a/src/LaTeXFeatures.cpp b/src/LaTeXFeatures.cpp index 641e99eb7d..24dba48977 100644 --- a/src/LaTeXFeatures.cpp +++ b/src/LaTeXFeatures.cpp @@ -198,7 +198,23 @@ static string const textcyr_def = " \\def\\encodingdefault{T2A}}\n" "\\DeclareRobustCommand{\\textcyr}[1]{\\leavevmode{\\cyrtext #1}}\n" "\\DeclareFontEncoding{T2A}{}{}\n"; - + +static string const lyxmathsym_def = + "\\DeclareRobustCommand{\\lyxmathsym}[1]{%\n" + " \\ifmmode\\begingroup\n" + " \\edef\\b@ld{bold}%\n" + " \\def\\rmorbf##1{\\ifx\\math@version\\b@ld\\textbf{##1}\\else\\textrm{##1}\\fi}%\n" + " \\mathchoice{\\hbox{\\rmorbf{#1}}}{\\hbox{\\rmorbf{#1}}}%\n" + " {\\hbox{\\smaller[2]\\rmorbf{#1}}}{\\hbox{\\smaller[3]\\rmorbf{#1}}}%\n" + " \\endgroup\\else#1\\fi}\n"; + +static string const papersizedvi_def = + "\\special{papersize=\\the\\paperwidth,\\the\\paperheight}\n"; + +static string const papersizepdf_def = + "\\pdfpageheight\\paperheight\n" + "\\pdfpagewidth\\paperwidth\n"; + ///////////////////////////////////////////////////////////////////// // // LaTeXFeatures @@ -237,7 +253,7 @@ void LaTeXFeatures::require(set const & names) void LaTeXFeatures::getAvailable() { - Lexer lex(0, 0); + Lexer lex; support::FileName const real_file = libFileSearch("", "packages.lst"); if (real_file.empty()) @@ -355,6 +371,10 @@ void LaTeXFeatures::useLanguage(Language const * lang) { if (!lang->babel().empty()) UsedLanguages_.insert(lang); + if (lang->lang() == "vietnamese") + require("vietnamese"); + else if (lang->lang() == "japanese") + require("japanese"); // CJK languages do not have a babel name. // They use the CJK package if (lang->encoding()->package() == Encoding::CJK) @@ -415,7 +435,7 @@ char const * simplefeatures[] = { "rotating", "latexsym", "pifont", - "subfig", + // subfig is handled in BufferParams.cpp "varioref", "prettyref", /*For a successful cooperation of the `wrapfig' package with the @@ -450,7 +470,10 @@ char const * simplefeatures[] = { "ifthen", "amsthm", "listings", - "bm" + "bm", + "pdfpages", + "relsize", + "amscd" }; int const nb_simplefeatures = sizeof(simplefeatures) / sizeof(char const *); @@ -576,7 +599,7 @@ string const LaTeXFeatures::getPackages() const // natbib.sty if (mustProvide("natbib")) { packages << "\\usepackage["; - if (params_.citeEngine() == biblio::ENGINE_NATBIB_NUMERICAL) + if (params_.citeEngine() == ENGINE_NATBIB_NUMERICAL) packages << "numbers"; else packages << "authoryear"; @@ -625,6 +648,12 @@ string const LaTeXFeatures::getMacros() const for (; pit != pend; ++pit) macros << *pit << '\n'; + if (mustProvide("papersize")) + if (runparams_.flavor == OutputParams::LATEX) + macros << papersizedvi_def << '\n'; + else + macros << papersizepdf_def << '\n'; + if (mustProvide("LyX")) macros << lyx_def << '\n'; @@ -643,6 +672,9 @@ string const LaTeXFeatures::getMacros() const if (mustProvide("textcyr")) macros << textcyr_def << '\n'; + if (mustProvide("lyxmathsym")) + macros << lyxmathsym_def << '\n'; + // quotes. if (mustProvide("quotesinglbase")) macros << quotesinglbase_def << '\n'; @@ -778,7 +810,8 @@ docstring const LaTeXFeatures::getIncludedFiles(string const & fname) const } -void LaTeXFeatures::showStruct() const { +void LaTeXFeatures::showStruct() const +{ lyxerr << "LyX needs the following commands when LaTeXing:" << "\n***** Packages:" << getPackages() << "\n***** Macros:" << getMacros()