commit 07c99393be6e6dbb734c8effa53040b7e4188dbe
Author: Juergen Spitzmueller <[email protected]>
Date:   Mon Oct 30 12:54:29 2023 +0100

    Consider PackageOptions with parskip
---
 src/BufferParams.cpp |   25 ++++++++++++++++++++++---
 src/BufferParams.h   |    2 ++
 2 files changed, 24 insertions(+), 3 deletions(-)

diff --git a/src/BufferParams.cpp b/src/BufferParams.cpp
index 5ea6e15..0d1600c 100644
--- a/src/BufferParams.cpp
+++ b/src/BufferParams.cpp
@@ -2187,10 +2187,20 @@ bool BufferParams::writeLaTeX(otexstream & os, 
LaTeXFeatures & features,
                                // in a class or package)
                                os << "\\parskip=.5\\baselineskip plus 
2pt\\relax\n";
                } else {
-                       // load parskip package with required option
+                       // load parskip package with required options
+                       string psopts;
                        if (!psopt.empty())
-                               psopt = "[skip=" + psopt + "]";
-                       os << "\\usepackage" + psopt + "{parskip}\n";
+                               psopts = "skip=" + psopt;
+                       string const xpsopts = getPackageOptions("parskip");
+                       if (!xpsopts.empty()) {
+                               if (!psopts.empty())
+                                       psopts += ",";
+                               psopts += xpsopts;
+                       }
+                       os << "\\usepackage";
+                       if (!psopts.empty())
+                               os << "[" << psopts << "]";
+                       os << "{parskip}\n";
                }
        } else {
                // when separation by indentation
@@ -2971,6 +2981,15 @@ bool BufferParams::hasPackageOption(string const 
package, string const opt) cons
 }
 
 
+string BufferParams::getPackageOptions(string const package) const
+{
+       for (auto const & p : documentClass().packageOptions())
+               if (package == p.first)
+                       return p.second;
+       return string();
+}
+
+
 bool BufferParams::useBidiPackage(OutputParams const & rp) const
 {
        return (rp.use_polyglossia
diff --git a/src/BufferParams.h b/src/BufferParams.h
index 34b4447..489e053 100644
--- a/src/BufferParams.h
+++ b/src/BufferParams.h
@@ -197,6 +197,8 @@ public:
        bool isLiterate() const;
        /// Is this package option requested?
        bool hasPackageOption(std::string const package, std::string const opt) 
const;
+       /// Get the options requested for a given package
+       std::string getPackageOptions(std::string const package) const;
        /// Do we use the bidi package (which does some reordering and stuff)?
        bool useBidiPackage(OutputParams const & rp) const;
 
-- 
lyx-cvs mailing list
[email protected]
http://lists.lyx.org/mailman/listinfo/lyx-cvs

Reply via email to