]> git.lyx.org Git - lyx.git/blobdiff - src/LaTeXFeatures.cpp
* GuiView.cpp:
[lyx.git] / src / LaTeXFeatures.cpp
index 118c8f2807035131c5d2c8a0f632e762994abdec..a29ee11f7b4fbffe668cb721ef08e88722aea4d8 100644 (file)
@@ -199,12 +199,21 @@ static string const textcyr_def =
        "\\DeclareRobustCommand{\\textcyr}[1]{\\leavevmode{\\cyrtext #1}}\n"
        "\\DeclareFontEncoding{T2A}{}{}\n";
 
-static string const mathsym_def =
-       "\\DeclareRobustCommand{\\mathsym}[1]{%\n"
-       " \\mathchoice{\\hbox{\\normalsize\\textrm{#1}}}%\n"
-       "  {\\hbox{\\normalsize\\textrm{#1}}}%\n"
-       "  {\\hbox{\\scriptsize\\textrm{#1}}}%\n"
-       "  {\\hbox{\\tiny\\textrm{#1}}}}\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";
 
 /////////////////////////////////////////////////////////////////////
 //
@@ -362,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)
@@ -458,7 +471,8 @@ char const * simplefeatures[] = {
        "amsthm",
        "listings",
        "bm",
-       "pdfpages"
+       "pdfpages",
+       "relsize"
 };
 
 int const nb_simplefeatures = sizeof(simplefeatures) / sizeof(char const *);
@@ -633,6 +647,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';
 
@@ -651,8 +671,8 @@ string const LaTeXFeatures::getMacros() const
        if (mustProvide("textcyr"))
                macros << textcyr_def << '\n';
 
-       if (mustProvide("mathsym"))
-               macros << mathsym_def << '\n';
+       if (mustProvide("lyxmathsym"))
+               macros << lyxmathsym_def << '\n';
 
        // quotes.
        if (mustProvide("quotesinglbase"))