From: Georg Baum Date: Wed, 17 Jan 2007 22:01:08 +0000 (+0000) Subject: Fix regression to 1.4.x: Additional vertical space if inputenc == auto X-Git-Tag: 1.6.10~11153 X-Git-Url: https://git.lyx.org/gitweb/?a=commitdiff_plain;h=439582ec6d627ee33477f0c05daa086cb07eba7c;p=features.git Fix regression to 1.4.x: Additional vertical space if inputenc == auto * src/output_latex.C (TeXOnePar): Postpone the output of newlines after the call of switchEncoding(), since we may get additional whitespace otherwise. git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@16740 a592a061-630c-0410-9148-cb99ea01b6c8 --- diff --git a/src/output_latex.C b/src/output_latex.C index 2b3e5befb8..e78773eea6 100644 --- a/src/output_latex.C +++ b/src/output_latex.C @@ -393,14 +393,13 @@ TeXOnePar(Buffer const & buf, } else if (is_command) os << '}'; + bool pending_newline = false; switch (style->latextype) { case LATEX_ITEM_ENVIRONMENT: case LATEX_LIST_ENVIRONMENT: if (boost::next(pit) != paragraphs.end() - && (pit->params().depth() < boost::next(pit)->params().depth())) { - os << '\n'; - texrow.newline(); - } + && (pit->params().depth() < boost::next(pit)->params().depth())) + pending_newline = true; break; case LATEX_ENVIRONMENT: { // if its the last paragraph of the current environment @@ -416,10 +415,8 @@ TeXOnePar(Buffer const & buf, // fall through possible default: // we don't need it for the last paragraph!!! - if (boost::next(pit) != paragraphs.end()) { - os << '\n'; - texrow.newline(); - } + if (boost::next(pit) != paragraphs.end()) + pending_newline = true; } if (!pit->forceDefaultParagraphs()) { @@ -427,9 +424,12 @@ TeXOnePar(Buffer const & buf, && (boost::next(pit) == paragraphs.end() || !boost::next(pit)->hasSameLayout(*pit))) { - os << from_ascii(pit->params().spacing().writeEnvirEnd()) - << '\n'; - texrow.newline(); + if (pending_newline) { + os << '\n'; + texrow.newline(); + } + os << from_ascii(pit->params().spacing().writeEnvirEnd()); + pending_newline = true; } } @@ -439,19 +439,21 @@ TeXOnePar(Buffer const & buf, // we need to reset the language at the end of footnote or // float. + if (pending_newline) { + os << '\n'; + texrow.newline(); + } if (lyxrc.language_command_end.empty()) os << from_ascii(subst( lyxrc.language_command_begin, "$$lang", - doc_language->babel())) - << '\n'; + doc_language->babel())); else os << from_ascii(subst( lyxrc.language_command_end, "$$lang", - language->babel())) - << '\n'; - texrow.newline(); + language->babel())); + pending_newline = true; } // FIXME we switch from the encoding of this paragraph to the @@ -459,8 +461,9 @@ TeXOnePar(Buffer const & buf, // to take the encoding of the next paragraph into account. // This may result in some unneeded encoding changes. basefont = pit->getLayoutFont(bparams, outerfont); - if (switchEncoding(os, bparams, *(basefont.language()->encoding()), - outer_encoding)) { + switchEncoding(os, bparams, *(basefont.language()->encoding()), + outer_encoding); + if (pending_newline) { os << '\n'; texrow.newline(); }