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
This commit is contained in:
Georg Baum 2007-01-17 22:01:08 +00:00
parent 7202474476
commit 439582ec6d

View File

@ -393,14 +393,13 @@ TeXOnePar(Buffer const & buf,
} else if (is_command) } else if (is_command)
os << '}'; os << '}';
bool pending_newline = false;
switch (style->latextype) { switch (style->latextype) {
case LATEX_ITEM_ENVIRONMENT: case LATEX_ITEM_ENVIRONMENT:
case LATEX_LIST_ENVIRONMENT: case LATEX_LIST_ENVIRONMENT:
if (boost::next(pit) != paragraphs.end() if (boost::next(pit) != paragraphs.end()
&& (pit->params().depth() < boost::next(pit)->params().depth())) { && (pit->params().depth() < boost::next(pit)->params().depth()))
os << '\n'; pending_newline = true;
texrow.newline();
}
break; break;
case LATEX_ENVIRONMENT: { case LATEX_ENVIRONMENT: {
// if its the last paragraph of the current environment // if its the last paragraph of the current environment
@ -416,10 +415,8 @@ TeXOnePar(Buffer const & buf,
// fall through possible // fall through possible
default: default:
// we don't need it for the last paragraph!!! // we don't need it for the last paragraph!!!
if (boost::next(pit) != paragraphs.end()) { if (boost::next(pit) != paragraphs.end())
os << '\n'; pending_newline = true;
texrow.newline();
}
} }
if (!pit->forceDefaultParagraphs()) { if (!pit->forceDefaultParagraphs()) {
@ -427,9 +424,12 @@ TeXOnePar(Buffer const & buf,
&& (boost::next(pit) == paragraphs.end() && (boost::next(pit) == paragraphs.end()
|| !boost::next(pit)->hasSameLayout(*pit))) || !boost::next(pit)->hasSameLayout(*pit)))
{ {
os << from_ascii(pit->params().spacing().writeEnvirEnd()) if (pending_newline) {
<< '\n'; os << '\n';
texrow.newline(); 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 // we need to reset the language at the end of footnote or
// float. // float.
if (pending_newline) {
os << '\n';
texrow.newline();
}
if (lyxrc.language_command_end.empty()) if (lyxrc.language_command_end.empty())
os << from_ascii(subst( os << from_ascii(subst(
lyxrc.language_command_begin, lyxrc.language_command_begin,
"$$lang", "$$lang",
doc_language->babel())) doc_language->babel()));
<< '\n';
else else
os << from_ascii(subst( os << from_ascii(subst(
lyxrc.language_command_end, lyxrc.language_command_end,
"$$lang", "$$lang",
language->babel())) language->babel()));
<< '\n'; pending_newline = true;
texrow.newline();
} }
// FIXME we switch from the encoding of this paragraph to the // 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. // to take the encoding of the next paragraph into account.
// This may result in some unneeded encoding changes. // This may result in some unneeded encoding changes.
basefont = pit->getLayoutFont(bparams, outerfont); basefont = pit->getLayoutFont(bparams, outerfont);
if (switchEncoding(os, bparams, *(basefont.language()->encoding()), switchEncoding(os, bparams, *(basefont.language()->encoding()),
outer_encoding)) { outer_encoding);
if (pending_newline) {
os << '\n'; os << '\n';
texrow.newline(); texrow.newline();
} }