From: Juergen Spitzmueller Date: Thu, 9 Feb 2023 16:23:18 +0000 (+0100) Subject: Add missing empty line (par break) between pars with differing line spacing (#12638) X-Git-Url: https://git.lyx.org/gitweb/?a=commitdiff_plain;h=8c6db951353ae1bb622e0057fafd8adfae391c42;p=features.git Add missing empty line (par break) between pars with differing line spacing (#12638) --- diff --git a/src/output_latex.cpp b/src/output_latex.cpp index 04d63ae289..c24a5320e1 100644 --- a/src/output_latex.cpp +++ b/src/output_latex.cpp @@ -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)