From 1fa06296b66bc562ba8d21b6e5e97e87fd495977 Mon Sep 17 00:00:00 2001 From: Enrico Forestieri Date: Sat, 17 May 2014 22:05:07 +0200 Subject: [PATCH] Adapt output to the on-screen representation. LyX assumes that a standard paragraph following a layout with NextNoIndent==false has to be indented on screen, so output the necessary blank line to make it so also in the output. --- src/output_latex.cpp | 18 ++++++++++++++---- status.21x | 2 ++ 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/src/output_latex.cpp b/src/output_latex.cpp index 31211d1c85..1fd387ccf2 100644 --- a/src/output_latex.cpp +++ b/src/output_latex.cpp @@ -198,8 +198,10 @@ static TeXEnvironmentData prepareEnvironment(Buffer const & buf, } -static void finishEnvironment(otexstream & os, OutputParams const & runparams, - TeXEnvironmentData const & data) +static void finishEnvironment(Buffer const & buf, Text const & text, + pit_type nextpit, otexstream & os, + OutputParams const & runparams, + TeXEnvironmentData const & data) { if (open_encoding_ == CJK && data.cjk_nested) { // We need to close the encoding even if it does not change @@ -227,6 +229,14 @@ static void finishEnvironment(otexstream & os, OutputParams const & runparams, os << setEncoding(data.prev_encoding->iconvName()); } } + + // Check whether we should output a blank line after the environment + DocumentClass const & tclass = buf.params().documentClass(); + ParagraphList const & pars = text.paragraphs(); + bool next_style_is_default = (nextpit >= runparams.par_end) ? false + : tclass.isDefaultLayout(pars.constIterator(nextpit)->layout()); + if (!data.style->nextnoindent && next_style_is_default) + os << '\n'; } @@ -306,7 +316,7 @@ void TeXEnvironment(Buffer const & buf, Text const & text, prepareEnvironment(buf, text, par, os, runparams); // Recursive call to TeXEnvironment! TeXEnvironment(buf, text, runparams, pit, os); - finishEnvironment(os, runparams, data); + finishEnvironment(buf, text, pit + 1, os, runparams, data); } if (pit != runparams.par_end) @@ -1142,7 +1152,7 @@ void latexParagraphs(Buffer const & buf, prepareEnvironment(buf, text, par, os, runparams); // pit can be changed in TeXEnvironment. TeXEnvironment(buf, text, runparams, pit, os); - finishEnvironment(os, runparams, data); + finishEnvironment(buf, text, pit + 1, os, runparams, data); } if (pit == runparams.par_end) { diff --git a/status.21x b/status.21x index 5e7c88f26e..f08a5ca815 100644 --- a/status.21x +++ b/status.21x @@ -80,6 +80,8 @@ What's new - Fix table cell rotation conversion from 2.1 to 2.0 format. +- Honor the NextNoIndent layout parameter also in the exported output. + * USER INTERFACE