]> git.lyx.org Git - lyx.git/blobdiff - src/BufferParams.cpp
Remove undisclosed imports (from xxx import *)
[lyx.git] / src / BufferParams.cpp
index 0d1600c5cf201f4efa3acf4d1f4f62bbfcf0ce6c..93e2b47ea7e9784af87f9341f67d5774e89845f5 100644 (file)
@@ -33,7 +33,6 @@
 #include "LaTeXFeatures.h"
 #include "LaTeXFonts.h"
 #include "Font.h"
-#include "Lexer.h"
 #include "LyXRC.h"
 #include "OutputParams.h"
 #include "Spacing.h"
@@ -53,6 +52,7 @@
 #include "support/filetools.h"
 #include "support/gettext.h"
 #include "support/Length.h"
+#include "support/Lexer.h"
 #include "support/Messages.h"
 #include "support/mutex.h"
 #include "support/Package.h"
@@ -1594,7 +1594,8 @@ void BufferParams::validate(LaTeXFeatures & features) const
        features.require(documentClass().required());
 
        if (columns > 1 && language->rightToLeft()
-           && !features.runparams().isFullUnicode())
+           && !features.runparams().isFullUnicode()
+           && language->babel() != "hebrew")
                features.require("rtloutputdblcol");
 
        if (output_changes) {
@@ -1832,6 +1833,13 @@ bool BufferParams::writeLaTeX(otexstream & os, LaTeXFeatures & features,
                break;
        }
 
+       if (paragraph_separation) {
+               if (!tclass.halfparskip().empty() && getDefSkip().kind() == VSpace::HALFLINE)
+                       clsoptions << tclass.halfparskip() << ",";
+               if (!tclass.fullparskip().empty() && getDefSkip().kind() == VSpace::FULLLINE)
+                       clsoptions << tclass.fullparskip() << ",";
+       }
+
        // language should be a parameter to \documentclass
        if (language->babel() == "hebrew"
            && default_language->babel() != "hebrew")
@@ -2154,6 +2162,7 @@ bool BufferParams::writeLaTeX(otexstream & os, LaTeXFeatures & features,
                // when skip separation
                string psopt;
                bool default_skip = false;
+               bool by_class_option = false;
                switch (getDefSkip().kind()) {
                case VSpace::SMALLSKIP:
                        psopt = "\\smallskipamount";
@@ -2167,9 +2176,11 @@ bool BufferParams::writeLaTeX(otexstream & os, LaTeXFeatures & features,
                case VSpace::HALFLINE:
                        // default (no option)
                        default_skip = true;
+                       by_class_option = !tclass.halfparskip().empty();
                        break;
                case VSpace::FULLLINE:
                        psopt = "\\baselineskip";
+                       by_class_option = !tclass.fullparskip().empty();
                        break;
                case VSpace::LENGTH:
                        psopt = getDefSkip().length().asLatexString();
@@ -2186,11 +2197,16 @@ bool BufferParams::writeLaTeX(otexstream & os, LaTeXFeatures & features,
                                // explicitly reset default (might have been changed
                                // in a class or package)
                                os << "\\parskip=.5\\baselineskip plus 2pt\\relax\n";
-               } else {
+               } else if (!by_class_option) {
                        // load parskip package with required options
                        string psopts;
-                       if (!psopt.empty())
-                               psopts = "skip=" + psopt;
+                       if (!psopt.empty()) {
+                               if (contains(psopt, ' '))
+                                       // glue length has spaces: embrace
+                                       psopts = "skip={" + psopt + "}";
+                               else
+                                       psopts = "skip=" + psopt;
+                       }
                        string const xpsopts = getPackageOptions("parskip");
                        if (!xpsopts.empty()) {
                                if (!psopts.empty())