]> git.lyx.org Git - features.git/commitdiff
Add missing empty line (par break) between pars with differing line spacing (#12638)
authorJuergen Spitzmueller <spitz@lyx.org>
Thu, 9 Feb 2023 16:23:18 +0000 (17:23 +0100)
committerJuergen Spitzmueller <spitz@lyx.org>
Thu, 9 Feb 2023 16:23:18 +0000 (17:23 +0100)
src/output_latex.cpp

index 04d63ae28906331ff14374b07c369bb42be800bf..c24a5320e117cdebdb48711c67772be31a5ae8a2 100644 (file)
@@ -1174,7 +1174,7 @@ void TeXOnePar(Buffer const & buf,
                                && (pit == 0 || !priorpar->hasSameLayout(par)))
                        {
                                os << from_ascii(par.params().spacing().writeEnvirBegin(useSetSpace))
-                                   << '\n';
+                                  << '\n';
                        }
 
                        if (style.isCommand()) {
@@ -1499,21 +1499,22 @@ void TeXOnePar(Buffer const & buf,
                Layout const & next_layout = nextpar->layout();
                if (!next_layout.isCommand()) {
                        // Here we now try to avoid spurious empty lines by
-                       // outputting a paragraph break only if: (case 1) the
-                       // paragraph style allows parbreaks and no \begin, \end
-                       // or \item tags are going to follow (i.e., if the next
-                       // isn't the first or the current isn't the last
-                       // paragraph of an environment or itemize) and the
-                       // depth and alignment of the following paragraph is
-                       // unchanged, or (case 2) the following is a
-                       // non-environment paragraph whose depth is increased
-                       // but whose alignment is unchanged, or (case 3) the
-                       // paragraph is not an environment and the next one is a
-                       // non-itemize-like env at lower depth, or (case 4) the
-                       // paragraph is a command not followed by an environment
-                       // and the alignment of the current and next paragraph
-                       // is unchanged, or (case 5) the current alignment is
-                       // changed and a standard paragraph follows.
+                       // outputting a paragraph break only if: 
+                       // (case 1) the paragraph style allows parbreaks and
+                       // no \begin, \end or \item tags are going to follow
+                       // (i.e., if the next isn't the first or the current
+                       // isn't the last paragraph of an environment or itemize)
+                       // and the depth and alignment of the following paragraph is
+                       // unchanged, or 
+                       // (case 2) the following is a non-environment paragraph
+                       // whose depth is increased but whose alignment is unchanged, or
+                       // (case 3) the paragraph is not an environment and the next one
+                       // is a non-itemize-like env at lower depth, or
+                       // (case 4) the paragraph is a command not followed by an
+                       // environment and the alignment of the current and next
+                       // paragraph is unchanged, or
+                       // (case 5) the current alignment is changed and a
+                       // standard paragraph follows.
                        DocumentClass const & tclass = bparams.documentClass();
                        if ((style == next_layout
                             && !style.parbreak_is_newline
@@ -1523,7 +1524,8 @@ void TeXOnePar(Buffer const & buf,
                             && style.latextype != LATEX_LIST_ENVIRONMENT
                             && style.align == par.getAlign(bparams)
                             && nextpar->getDepth() == par.getDepth()
-                            && nextpar->getAlign(bparams) == par.getAlign(bparams))
+                            && (nextpar->getAlign(bparams) == par.getAlign(bparams)
+                                || par.params().spacing() != nextpar->params().spacing()))
                            || (!next_layout.isEnvironment()
                                && nextpar->getDepth() > par.getDepth()
                                && nextpar->getAlign(bparams) == next_layout.align)