From 21f14a3a3e7d9d776577c4f0e34968aac08b3d03 Mon Sep 17 00:00:00 2001 From: Jean-Marc Lasgouttes Date: Tue, 28 Sep 2004 13:29:19 +0000 Subject: [PATCH] make sure language commands are the outermost ones when typesetting a paragraph (bug 1404) git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@9020 a592a061-630c-0410-9148-cb99ea01b6c8 --- src/ChangeLog | 6 +++ src/output_latex.C | 95 +++++++++++++++++++++++----------------------- 2 files changed, 54 insertions(+), 47 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index 94aa061314..c31f3fc607 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,9 @@ +2004-09-27 Jean-Marc Lasgouttes + + * output_latex.C (TeXOnePar): make sure font setting is the first + thing that gets output (and the last at the end). Should fix bug + 1404. + 2004-09-26 Lars Gullik Bjonnes * pch.h: use proper signal include diff --git a/src/output_latex.C b/src/output_latex.C index cc4a7fb921..f1fcc38d96 100644 --- a/src/output_latex.C +++ b/src/output_latex.C @@ -223,38 +223,12 @@ TeXOnePar(Buffer const & buf, bool further_blank_line = false; LyXLayout_ptr style; - // well we have to check if we are in an inset with unlimited - // length (all in one row) if that is true then we don't allow - // any special options in the paragraph and also we don't allow - // any environment other then "Standard" to be valid! - if (!pit->forceDefaultParagraphs()) { + // In an an inset with unlimited length (all in one row), + // force layout to default + if (!pit->forceDefaultParagraphs()) style = pit->layout(); - - if (pit->params().startOfAppendix()) { - os << "\\appendix\n"; - texrow.newline(); - } - - if (!pit->params().spacing().isDefault() - && (pit == paragraphs.begin() - || !boost::prior(pit)->hasSameLayout(*pit))) - { - os << pit->params().spacing().writeEnvirBegin() << '\n'; - texrow.newline(); - } - - if (style->isCommand()) { - os << '\n'; - texrow.newline(); - } - - if (further_blank_line) { - os << '\n'; - texrow.newline(); - } - } else { + else style = bparams.getLyXTextClass().defaultLayout(); - } Language const * language = pit->getParLanguage(bparams); Language const * doc_language = bparams.language; @@ -298,6 +272,33 @@ TeXOnePar(Buffer const & buf, texrow.newline(); } + // In an an inset with unlimited length (all in one row), + // don't allow any special options in the paragraph + if (!pit->forceDefaultParagraphs()) { + if (pit->params().startOfAppendix()) { + os << "\\appendix\n"; + texrow.newline(); + } + + if (!pit->params().spacing().isDefault() + && (pit == paragraphs.begin() + || !boost::prior(pit)->hasSameLayout(*pit))) + { + os << pit->params().spacing().writeEnvirBegin() << '\n'; + texrow.newline(); + } + + if (style->isCommand()) { + os << '\n'; + texrow.newline(); + } + + if (further_blank_line) { + os << '\n'; + texrow.newline(); + } + } + switch (style->latextype) { case LATEX_COMMAND: os << '\\' << style->latexname(); @@ -387,6 +388,23 @@ paragraphs); } } + if (!pit->forceDefaultParagraphs()) { + further_blank_line = false; + + if (further_blank_line) { + os << '\n'; + texrow.newline(); + } + + if (!pit->params().spacing().isDefault() + && (boost::next(pit) == paragraphs.end() + || !boost::next(pit)->hasSameLayout(*pit))) + { + os << pit->params().spacing().writeEnvirEnd() << '\n'; + texrow.newline(); + } + } + if (boost::next(pit) == const_cast(paragraphs).end() && language->babel() != doc_language->babel()) { // Since \selectlanguage write the language to the aux file, @@ -406,23 +424,6 @@ paragraphs); texrow.newline(); } - if (!pit->forceDefaultParagraphs()) { - further_blank_line = false; - - if (further_blank_line) { - os << '\n'; - texrow.newline(); - } - - if (!pit->params().spacing().isDefault() - && (boost::next(pit) == paragraphs.end() - || !boost::next(pit)->hasSameLayout(*pit))) - { - os << pit->params().spacing().writeEnvirEnd() << '\n'; - texrow.newline(); - } - } - // we don't need it for the last paragraph!!! // Note from JMarc: we will re-add a \n explicitely in // TeXEnvironment, because it is needed in this case -- 2.39.2