]> git.lyx.org Git - lyx.git/blobdiff - src/BufferParams.cpp
BufferParams.cpp: fix #6714
[lyx.git] / src / BufferParams.cpp
index a23bfd2d6d4c5653c3ff3dd1979bc24a0c842e5a..15ed12edadc0f75569b41761d395f98d13fa81b1 100644 (file)
@@ -1177,7 +1177,8 @@ bool BufferParams::writeLaTeX(odocstream & os, LaTeXFeatures & features,
 
        // all paper sizes except of A4, A5, B5 and the US sizes need the
        // geometry package
-       bool nonstandard_papersize = papersize != PAPER_USLETTER
+       bool nonstandard_papersize = papersize != PAPER_DEFAULT
+               && papersize != PAPER_USLETTER
                && papersize != PAPER_USLEGAL
                && papersize != PAPER_USEXECUTIVE
                && papersize != PAPER_A4
@@ -1334,9 +1335,12 @@ bool BufferParams::writeLaTeX(odocstream & os, LaTeXFeatures & features,
        // LFE encoding
        // XeTeX works without fontenc
        if (font_encoding() != "default" && language->lang() != "japanese"
-           && !useXetex) {
+               && !useXetex) {
+               size_t fars = language_options.str().find("farsi");
+               size_t arab = language_options.str().find("arabic");
                if (language->lang() == "arabic_arabi"
-                   || language->lang() == "farsi") {
+                       || language->lang() == "farsi" || fars != string::npos
+                       || arab != string::npos) {
                        os << "\\usepackage[" << from_ascii(font_encoding())
                           << ",LFE,LAE]{fontenc}\n";
                        texrow.newline();
@@ -1397,7 +1401,7 @@ bool BufferParams::writeLaTeX(odocstream & os, LaTeXFeatures & features,
                texrow.newline();
        }
        if (!tclass.provides("geometry")
-               && (use_geometry || nonstandard_papersize)) {
+           && (use_geometry || nonstandard_papersize)) {
                odocstringstream ods;
                if (!getGraphicsDriver("geometry").empty())
                        ods << getGraphicsDriver("geometry");
@@ -1558,7 +1562,8 @@ bool BufferParams::writeLaTeX(odocstream & os, LaTeXFeatures & features,
                        os << "}\n";
                        texrow.newline();
                }
-       } else if (orientation == ORIENTATION_LANDSCAPE) {
+       } else if (orientation == ORIENTATION_LANDSCAPE
+                  || papersize != PAPER_DEFAULT) {
                features.require("papersize");
        }