From 6c5dc39cd5ba1b3beed9d186f8b5393c9d0f8158 Mon Sep 17 00:00:00 2001 From: Juergen Spitzmueller Date: Mon, 30 Oct 2023 12:17:14 +0100 Subject: [PATCH] Amend 9de9ec1e88fab When setting halfline parskip with parskip provided, we still need to set this explicitly, as we don't know the current \parskip value. Also improve code readability. --- src/BufferParams.cpp | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/src/BufferParams.cpp b/src/BufferParams.cpp index 22f865458e..5ea6e15677 100644 --- a/src/BufferParams.cpp +++ b/src/BufferParams.cpp @@ -2153,6 +2153,7 @@ bool BufferParams::writeLaTeX(otexstream & os, LaTeXFeatures & features, if (paragraph_separation) { // when skip separation string psopt; + bool default_skip = false; switch (getDefSkip().kind()) { case VSpace::SMALLSKIP: psopt = "\\smallskipamount"; @@ -2165,6 +2166,7 @@ bool BufferParams::writeLaTeX(otexstream & os, LaTeXFeatures & features, break; case VSpace::HALFLINE: // default (no option) + default_skip = true; break; case VSpace::FULLLINE: psopt = "\\baselineskip"; @@ -2175,12 +2177,20 @@ bool BufferParams::writeLaTeX(otexstream & os, LaTeXFeatures & features, default: break; } - if (!features.isProvided("parskip")) { + if (features.isProvided("parskip")) { + // package already loaded (with arbitrary options) + // change parskip value only + if (!psopt.empty()) + os << "\\setlength{\\parskip}{" + psopt + "}\n"; + else if (default_skip) + // explicitly reset default (might have been changed + // in a class or package) + os << "\\parskip=.5\\baselineskip plus 2pt\\relax\n"; + } else { + // load parskip package with required option if (!psopt.empty()) psopt = "[skip=" + psopt + "]"; os << "\\usepackage" + psopt + "{parskip}\n"; - } else if (!psopt.empty()) { - os << "\\setlength{\\parskip}{" + psopt + "}\n"; } } else { // when separation by indentation -- 2.39.2